@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([[9614],{95815:(e,t,n)=>{n.d(t,{D:()=>u});var r=n(32735),a=n(83345),i=n(76881),o=n(26055),l=n(43820),s=n(86685),c="userManager.editSsoUserWarning";function u(e){var t=r.useContext(o.A);return r.createElement(s.W,null,r.createElement(a.x,{namespace:c,phrase:e.isNew?t===l.a.Curator?"ssoWarningCreateCurator":e.userType===i.Y.Learner?"ssoWarningCreateStudent":"ssoWarningCreateStaff":t===l.a.Curator?"ssoWarningEditCurator":"ssoWarningEditUser"}),!!e.helpArticle&&r.createElement("a",{className:"info-link d-block",href:e.helpArticle,target:"_blank"},r.createElement(a.x,{namespace:c,phrase:e.isNew?"kbArticleEdit":"kbArticleCreate"})))}},86685:(e,t,n)=>{n.d(t,{W:()=>l});var r=n(32735),a=n(83914),i=n(35223);const o={icon:"eCi4v"};function l(e){return r.createElement("div",{className:"alert alert-warning d-flex align-items-center px-2 mb-3 ".concat(e.className||"")},r.createElement(a.x,{svgName:i.vn.WarningOutline,className:"svg-container me-2 ".concat(o.icon)}),r.createElement("div",null,e.children))}},26055:(e,t,n)=>{n.d(t,{A:()=>r});var r=n(32735).createContext(null)},47973:(e,t,n)=>{n.d(t,{E:()=>u});var r=n(32735),a=n(9111),i=n(13876),o=n(11607);const l={selected:"zWik0",disabled:"bMSMv"};function s(e){var t,n,a,i,s,c="text-center cursor-pointer p-3 border rounded-3 mx-2 user-select-none w-50";return e.selected&&(c+=" border-info ".concat(l.selected)),(null===(t=e.option)||void 0===t?void 0:t.disabled)&&(c+=" ".concat(l.disabled)),r.createElement(o.L,{onClick:function(){var t;(null===(t=e.option)||void 0===t?void 0:t.disabled)||e.onSelect(e.option)},className:c},(null===(n=e.option)||void 0===n?void 0:n.imageUrl)&&r.createElement("img",{src:e.option.imageUrl,className:"img-fluid my-3 ".concat(null!==(a=e.option.imageClassName)&&void 0!==a?a:""),draggable:!1}),(null===(i=e.option)||void 0===i?void 0:i.title)&&r.createElement("h2",{className:"h3"},e.option.title),(null===(s=e.option)||void 0===s?void 0:s.description)&&r.createElement("p",{className:"mb-0",dangerouslySetInnerHTML:{__html:e.option.description}}),e.children)}function c(e){return r.createElement("div",{className:"d-flex mb-3 mx-n2"},e.options.map((function(t){var n;return r.createElement(s,{key:t.id,option:t,selected:(null===(n=e.selection)||void 0===n?void 0:n.id)===t.id,onSelect:e.selectOption})})))}function u(e){return r.createElement(a.G,{size:"lg",title:e.title,showLoadingSpinner:e.showLoadingSpinner,closePopup:e.closePopup},r.createElement(r.Fragment,null,!!e.warningComponent&&e.warningComponent,e.question&&r.createElement("h2",{className:"h5 text-center fw-semibold mb-3"},e.question),r.createElement(c,{options:e.options,selection:e.selection,selectOption:e.selectOption}),r.createElement(i.u,null,e.cancelButtonProps&&r.createElement(i.u.Cancel,Object.assign({},e.cancelButtonProps)),e.submitButtonProps&&r.createElement(i.u.Submit,Object.assign({},e.submitButtonProps)))))}},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={}))},19614:(e,t,n)=>{n.r(t),n.d(t,{AddNewUsersView:()=>C});var r=n(32735),a=n(20354),i=n(23481),o=n(81886),l=n(49985),s=n(65858),c=n(47973),u=n(76881),d=n(95815);const p={optionImage:"XpfxM"};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 g=i.T.encloseNamespace("userManager.addNewUsers");function v(e){var t,n,a=s.LZ[e.userType===u.Y.Learner?"StudentManager":"StaffManager"],i=(t=r.useState(null),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,o,l=[],s=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(r=i.call(n)).done)&&(l.push(r.value),l.length!==t);s=!0);}catch(e){c=!0,a=e}finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw a}}return l}}(t,n)||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}}(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),v=i[0],f=i[1],y=[{id:"create-manually",title:g("createManuallyTitle"),description:g(e.userType===u.Y.Learner?"createManuallyDescStudents":"createManuallyDescStaff"),imageUrl:e.createManuallyImageUrl,imageClassName:e.isLite?p.optionImage:""},{id:"upload-spreadsheet",title:g("uploadSpreadsheetTitle"),description:g(e.userType===u.Y.Learner?"uploadSpreadsheetDescStudents":"uploadSpreadsheetDescStaff"),imageUrl:e.uploadSpreadsheetImageUrl,imageClassName:e.isLite?p.optionImage:""}];return r.createElement(c.E,{title:g(e.userType===u.Y.Learner?"titleStudents":"titleStaff"),closePopup:e.closePopup,options:y,selection:v,selectOption:f,cancelButtonProps:{onClick:e.closePopup,text:g("cancel"),variant:"link"},submitButtonProps:{onClick:function(){if("create-manually"===v.id)return l.k.logUserAction({},{workflowPhase:s.eu.Start,actionType:s.Vw.Create,entity:s.py.User,location:a}),void o.Q.C$.trigger(e.appLinks.newUser);o.Q.C$.trigger(e.appLinks.userUploadPopup)},text:g("continue"),variant:"dark",disabled:!v},warningComponent:e.customerHasSso&&!e.isLite&&r.createElement(d.D,{isNew:!0,userType:e.userType,helpArticle:e.ssoHelpArticle})})}var f=n(99705),y=n(31949),b=n(12778),E=n(99742),S=n(47288),h=n(18087);function C(e){var t,n=a.a.useBasicFetch(y.N.currentUser()),i=a.a.useBasicFetch(!!n.data&&S.N.getIdentityProviders(n.data.customerId)),o=(0,h.Y)(e.userType);return r.createElement(v,{userType:e.userType,appLinks:o,closePopup:e.closePopup,createManuallyImageUrl:E.W.UserManager.CREATE_MANUALLY,uploadSpreadsheetImageUrl:E.W.UserManager.UPLOAD_SPREADSHEET,customerHasSso:!!(null===(t=i.data)||void 0===t?void 0:t.length),ssoHelpArticle:b.o.getLiteArticle(f.b.EditSsoAccounts),isLite:!0})}}}]);
2
- //# sourceMappingURL=9614-2bca60768e-lite.chunk.js.map
1
+ "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[9614],{95815:(e,t,n)=>{n.d(t,{D:()=>u});var r=n(32735),a=n(83345),i=n(76881),o=n(26055),l=n(43820),s=n(86685),c="userManager.editSsoUserWarning";function u(e){var t=r.useContext(o.A);return r.createElement(s.W,null,r.createElement(a.x,{namespace:c,phrase:e.isNew?t===l.a.Curator?"ssoWarningCreateCurator":e.userType===i.Y.Learner?"ssoWarningCreateStudent":"ssoWarningCreateStaff":t===l.a.Curator?"ssoWarningEditCurator":"ssoWarningEditUser"}),!!e.helpArticle&&r.createElement("a",{className:"info-link d-block",href:e.helpArticle,target:"_blank"},r.createElement(a.x,{namespace:c,phrase:e.isNew?"kbArticleEdit":"kbArticleCreate"})))}},86685:(e,t,n)=>{n.d(t,{W:()=>l});var r=n(32735),a=n(83914),i=n(35223);const o={icon:"eCi4v"};function l(e){return r.createElement("div",{className:"alert alert-warning d-flex align-items-center px-2 mb-3 ".concat(e.className||"")},r.createElement(a.x,{svgName:i.vn.WarningOutline,className:"svg-container me-2 ".concat(o.icon)}),r.createElement("div",null,e.children))}},26055:(e,t,n)=>{n.d(t,{A:()=>r});var r=n(32735).createContext(null)},47973:(e,t,n)=>{n.d(t,{E:()=>u});var r=n(32735),a=n(9111),i=n(13876),o=n(11607);const l={selected:"zWik0",disabled:"bMSMv"};function s(e){var t,n,a,i,s,c="text-center cursor-pointer p-3 border rounded-3 mx-2 user-select-none w-50";return e.selected&&(c+=" border-info ".concat(l.selected)),(null===(t=e.option)||void 0===t?void 0:t.disabled)&&(c+=" ".concat(l.disabled)),r.createElement(o.L,{onClick:function(){var t;(null===(t=e.option)||void 0===t?void 0:t.disabled)||e.onSelect(e.option)},className:c},(null===(n=e.option)||void 0===n?void 0:n.imageUrl)&&r.createElement("img",{src:e.option.imageUrl,className:"img-fluid my-3 ".concat(null!==(a=e.option.imageClassName)&&void 0!==a?a:""),draggable:!1}),(null===(i=e.option)||void 0===i?void 0:i.title)&&r.createElement("h2",{className:"h3"},e.option.title),(null===(s=e.option)||void 0===s?void 0:s.description)&&r.createElement("p",{className:"mb-0",dangerouslySetInnerHTML:{__html:e.option.description}}),e.children)}function c(e){return r.createElement("div",{className:"d-flex mb-3 mx-n2"},e.options.map((function(t){var n;return r.createElement(s,{key:t.id,option:t,selected:(null===(n=e.selection)||void 0===n?void 0:n.id)===t.id,onSelect:e.selectOption})})))}function u(e){return r.createElement(a.G,{size:"lg",title:e.title,showLoadingSpinner:e.showLoadingSpinner,closePopup:e.closePopup},r.createElement(r.Fragment,null,!!e.warningComponent&&e.warningComponent,e.question&&r.createElement("h2",{className:"h5 text-center fw-semibold mb-3"},e.question),r.createElement(c,{options:e.options,selection:e.selection,selectOption:e.selectOption}),r.createElement(i.u,null,e.cancelButtonProps&&r.createElement(i.u.Cancel,Object.assign({},e.cancelButtonProps)),e.submitButtonProps&&r.createElement(i.u.Submit,Object.assign({},e.submitButtonProps)))))}},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={}))},19614:(e,t,n)=>{n.r(t),n.d(t,{AddNewUsersView:()=>C});var r=n(32735),a=n(20354),i=n(23481),o=n(81886),l=n(49985),s=n(65858),c=n(47973),u=n(76881),d=n(95815);const p={optionImage:"XpfxM"};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 g=i.T.encloseNamespace("userManager.addNewUsers");function v(e){var t,n,a=s.LZ[e.userType===u.Y.Learner?"StudentManager":"StaffManager"],i=(t=r.useState(null),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,o,l=[],s=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(r=i.call(n)).done)&&(l.push(r.value),l.length!==t);s=!0);}catch(e){c=!0,a=e}finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw a}}return l}}(t,n)||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}}(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),v=i[0],f=i[1],y=[{id:"create-manually",title:g("createManuallyTitle"),description:g(e.userType===u.Y.Learner?"createManuallyDescStudents":"createManuallyDescStaff"),imageUrl:e.createManuallyImageUrl,imageClassName:e.isLite?p.optionImage:""},{id:"upload-spreadsheet",title:g("uploadSpreadsheetTitle"),description:g(e.userType===u.Y.Learner?"uploadSpreadsheetDescStudents":"uploadSpreadsheetDescStaff"),imageUrl:e.uploadSpreadsheetImageUrl,imageClassName:e.isLite?p.optionImage:""}];return r.createElement(c.E,{title:g(e.userType===u.Y.Learner?"titleStudents":"titleStaff"),closePopup:e.closePopup,options:y,selection:v,selectOption:f,cancelButtonProps:{onClick:e.closePopup,text:g("cancel"),variant:"link"},submitButtonProps:{onClick:function(){if("create-manually"===v.id)return l.k.logUserAction({},{workflowPhase:s.eu.Start,actionType:s.Vw.Create,entity:s.py.User,location:a}),void o.Q.C$.trigger(e.appLinks.newUser);o.Q.C$.trigger(e.appLinks.userUploadPopup)},text:g("continue"),variant:"dark",disabled:!v},warningComponent:e.customerHasSso&&!e.isLite&&r.createElement(d.D,{isNew:!0,userType:e.userType,helpArticle:e.ssoHelpArticle})})}var f=n(99705),y=n(31949),b=n(12778),E=n(99742),S=n(47288),h=n(18087);function C(e){var t,n=a.a.useBasicFetch(y.N.currentUser()),i=a.a.useBasicFetch(!!n.data&&S.N.getIdentityProviders(n.data.customerId)),o=(0,h.Y)(e.userType);return r.createElement(v,{userType:e.userType,appLinks:o,closePopup:e.closePopup,createManuallyImageUrl:E.W.UserManager.CREATE_MANUALLY,uploadSpreadsheetImageUrl:E.W.UserManager.UPLOAD_SPREADSHEET,customerHasSso:!!(null===(t=i.data)||void 0===t?void 0:t.length),ssoHelpArticle:b.o.getLiteArticle(f.b.EditSsoAccounts),isLite:!0})}}}]);
2
+ //# sourceMappingURL=9614-6e5babb89a-lite.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scripts/9614-2bca60768e-lite.chunk.js","mappings":"0MASMA,EAAY,iCAQZ,SAAUC,EAAmBC,GACjC,IAAMC,EAAS,aAAoC,KAanD,OACE,gBAAC,EAAAC,EAAY,KACX,gBAAC,IAAI,CACHJ,UAAWA,EACXK,OAdAH,EAAMI,MACJH,IAAW,YACN,0BAEFD,EAAMK,WAAa,YAAoB,0BAA4B,wBAGrEJ,IAAW,YAA4B,wBAA0B,yBASnED,EAAMM,aACP,qBACEC,UAAU,oBACVC,KAAMR,EAAMM,YACZG,OAAO,UAEP,gBAAC,IAAI,CAACX,UAAWA,EAAWK,OAAQH,EAAMI,MAAQ,gBAAkB,qBAK9E,C,wEC/CA,SAAgB,KAAO,SCcjB,SAAUM,EAAaV,GAC3B,OACE,uBAAKO,UAAS,kEAA6DP,EAAMO,WAAa,KAC5F,gBAACI,EAAA,EAAY,CACXC,QAAS,oBACTL,UAAS,6BAAwB,UAEnC,2BACGP,EAAMa,UAIf,C,uCCvBaC,E,SAA2B,cAAuC,K,kFCH/E,SAAgB,SAAW,QAAQ,SAAW,SCqBxC,SAAUC,EAAOf,G,cAQjBO,EAAY,6EAQhB,OANIP,EAAMgB,WACRT,GAAa,gBAAJ,OAAoB,cAEf,QAAZ,EAAAP,EAAMiB,cAAM,eAAEC,YAChBX,GAAa,IAAJ,OAAQ,aAGjB,gBAACY,EAAA,EAAS,CAACC,QAhBb,W,OACkB,QAAZ,EAAApB,EAAMiB,cAAM,eAAEC,WAGlBlB,EAAMqB,SAASrB,EAAMiB,OACvB,EAWgCV,UAAWA,IAC1B,QAAZ,EAAAP,EAAMiB,cAAM,eAAEK,WAAY,uBAAKC,IAAKvB,EAAMiB,OAAOK,SAAUf,UAAS,yBAA+C,QAA3B,EAAAP,EAAMiB,OAAOO,sBAAc,QAAI,IAAMC,WAAW,KAC5H,QAAZ,EAAAzB,EAAMiB,cAAM,eAAES,QAAS,sBAAInB,UAAU,MAAMP,EAAMiB,OAAOS,QAC5C,QAAZ,EAAA1B,EAAMiB,cAAM,eAAEU,cAAe,qBAAGpB,UAAU,OAAOqB,wBAAyB,CAAEC,OAAQ7B,EAAMiB,OAAOU,eACjG3B,EAAMa,SAGb,CAQM,SAAUiB,EAAQ9B,GACtB,OACE,uBAAKO,UAAU,qBACZP,EAAM+B,QAAQC,KAAI,SAAAC,G,MAAK,OACtB,gBAAClB,EAAM,CACLmB,IAAKD,EAAEE,GACPlB,OAAQgB,EACRjB,UAAyB,QAAf,EAAAhB,EAAMoC,iBAAS,eAAED,MAAOF,EAAEE,GACpCd,SAAUrB,EAAMqC,c,IAK1B,CC5CM,SAAUC,EAAatC,GAC3B,OACE,gBAACuC,EAAA,EAAK,CACJC,KAAK,KACLd,MAAO1B,EAAM0B,MACbe,mBAAoBzC,EAAMyC,mBAC1BC,WAAY1C,EAAM0C,YAElB,kCACK1C,EAAM2C,kBAAoB3C,EAAM2C,iBAElC3C,EAAM4C,UACL,sBAAIrC,UAAU,mCAAmCP,EAAM4C,UAGzD,gBAACd,EAAO,CACNC,QAAS/B,EAAM+B,QACfK,UAAWpC,EAAMoC,UACjBC,aAAcrC,EAAMqC,eAGtB,gBAACQ,EAAA,EAAY,KACV7C,EAAM8C,mBAAqB,gBAACD,EAAA,SAAmB,iBAAK7C,EAAM8C,oBAC1D9C,EAAM+C,mBAAqB,gBAACF,EAAA,SAAmB,iBAAK7C,EAAM+C,sBAKrE,C,kBCjDA,IAAYC,EAcAC,E,iBAdZ,SAAYD,GACV,+BACA,kCAGA,+BACA,6BACA,+BACA,uCACA,+BACA,8BACA,8BACD,CAZD,CAAYA,IAAAA,EAAoB,KAchC,SAAYC,GACV,+BACA,6BACA,kCACA,kCACA,yCACA,+BACA,uCACA,iCACA,sCACA,kCACA,qCACA,6BACA,mCACA,sCACA,2BACA,yCACD,CAjBD,CAAYA,IAAAA,EAAkB,I,+JCf9B,SAAgB,YAAc,S,sGCiB9B,IACMC,EAAYC,EAAA,mBADA,2BAaZ,SAAUC,EAAYpD,GAC1B,I,IAAMqD,EAAoB,KAAgBrD,EAAMK,WAAaiD,EAAA,UAAoB,iBAAmB,gBAEzB,G,EAAvC,WAAkC,M,EAAK,E,o4BAAnElB,EAAS,KAAEmB,EAAY,KAkBzBxB,EAAkD,CAAC,CACvDI,GAAI,kBACJT,MAAOwB,EAAU,uBACjBvB,YAAauB,EAAUlD,EAAMK,WAAaiD,EAAA,UAAoB,6BAA+B,2BAC7FhC,SAAUtB,EAAMwD,uBAChBhC,eAAgBxB,EAAMyD,OAAS,cAAqB,IACnD,CACDtB,GAAI,qBACJT,MAAOwB,EAAU,0BACjBvB,YAAauB,EAAUlD,EAAMK,WAAaiD,EAAA,UAAoB,gCAAkC,8BAChGhC,SAAUtB,EAAM0D,0BAChBlC,eAAgBxB,EAAMyD,OAAS,cAAqB,KAGtD,OACE,gBAACnB,EAAA,EAAY,CACXZ,MAAOwB,EAAUlD,EAAMK,WAAaiD,EAAA,UAAoB,gBAAkB,cAC1EZ,WAAY1C,EAAM0C,WAClBX,QAASA,EACTK,UAAWA,EACXC,aAAckB,EACdT,kBAAmB,CACjB1B,QAASpB,EAAM0C,WACfiB,KAAMT,EAAU,UAChBU,QAAS,QAEXb,kBAAmB,CACjB3B,QA3CN,WACE,GAAqB,oBAAjBgB,EAAUD,GASZ,OARA0B,EAAA,gBAA8B,CAAC,EAAG,CAChCC,cAAe,WACfC,WAAY,YACZC,OAAQ,UACRC,SAAUZ,SAGZ,eAA2BrD,EAAMkE,SAASC,SAI5C,eAA2BnE,EAAMkE,SAASE,gBAC5C,EA8BMT,KAAMT,EAAU,YAChBU,QAAS,OACT1C,UAAWkB,GAEbO,iBAAkB3C,EAAMqE,iBAAmBrE,EAAMyD,QAC/C,gBAAC1D,EAAA,EAAkB,CAACK,OAAK,EAACC,SAAUL,EAAMK,SAAUC,YAAaN,EAAMsE,kBAG/E,C,sECnEM,SAAUC,EAAgBvE,G,MACxBwE,EAAc,kBAAkCC,EAAA,iBAChDC,EAAoB,oBAAqDF,EAAYG,MACzFC,EAAA,uBAAyCJ,EAAYG,KAAKE,aAEtDX,GAAW,OAAuBlE,EAAMK,UAE9C,OACE,gBAAC+C,EAAW,CACV/C,SAAUL,EAAMK,SAChB6D,SAAUA,EACVxB,WAAY1C,EAAM0C,WAClBc,uBAAwBsB,EAAA,8BACxBpB,0BAA2BoB,EAAA,iCAC3BT,kBAAwC,QAAtB,EAAAK,EAAkBC,YAAI,eAAEI,QAC1CT,eAAgBU,EAAA,iBAA6B,qBAC7CvB,QAAM,GAGZ,C","sources":["file:///app/packages/libs/shared/src/apps/user-manager/components/edit-user-details/components/EditSsoUserWarning.tsx","file:///app/packages/libs/shared/src/apps/user-manager/components/warning-alert/warning-alert.scss","file:///app/packages/libs/shared/src/apps/user-manager/components/warning-alert/WarningAlert.tsx","file:///app/packages/libs/shared/src/apps/user-manager/context/UserManagerClientContext.ts","file:///app/packages/libs/shared/src/components/choices-popup/components/choices/choices.scss","file:///app/packages/libs/shared/src/components/choices-popup/components/choices/Choices.tsx","file:///app/packages/libs/shared/src/components/choices-popup/ChoicesPopup.tsx","file:///app/packages/libs/shared/src/enums/SupportArticle.ts","file:///app/packages/libs/shared/src/apps/user-manager/components/add-new-users/add-new-user.scss","file:///app/packages/libs/shared/src/apps/user-manager/components/add-new-users/AddNewUsers.tsx","file:///app/packages/projects/lite/src/apps/user-manager/views/add-new-users/AddNewUsersView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Text } from 'libs/shared/components/text/Text';\nimport { UserGroup } from 'libs/shared/enums/UserGroup';\n\nimport { UserManagerClientContext } from '../../../context/UserManagerClientContext';\nimport { UserManagerClient } from '../../../enums/UserManagerClient';\nimport { WarningAlert } from '../../warning-alert/WarningAlert';\n\nconst namespace = 'userManager.editSsoUserWarning';\n\ninterface EditSsoUserWarningProps {\n isNew: boolean;\n userType: UserGroup;\n helpArticle?: string;\n}\n\nexport function EditSsoUserWarning(props: EditSsoUserWarningProps): JSX.Element {\n const client = React.useContext<UserManagerClient>(UserManagerClientContext);\n\n function getPhraseKey(): string {\n if (props.isNew) {\n if (client === UserManagerClient.Curator)\n return 'ssoWarningCreateCurator';\n\n return props.userType === UserGroup.Learner ? 'ssoWarningCreateStudent' : 'ssoWarningCreateStaff';\n }\n\n return client === UserManagerClient.Curator ? 'ssoWarningEditCurator' : 'ssoWarningEditUser';\n }\n\n return (\n <WarningAlert>\n <Text\n namespace={namespace}\n phrase={getPhraseKey()}\n />\n {!!props.helpArticle && (\n <a\n className='info-link d-block'\n href={props.helpArticle}\n target='_blank'\n >\n <Text namespace={namespace} phrase={props.isNew ? 'kbArticleEdit' : 'kbArticleCreate'} />\n </a>\n )}\n </WarningAlert>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"icon\":\"eCi4v\"};","import React from 'react';\n\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './warning-alert.scss';\n\ninterface Props extends HashObject {\n className?: string;\n}\n\ntype WarningAlertProps = React.PropsWithChildren<Props>;\n\nexport function WarningAlert(props: WarningAlertProps): JSX.Element {\n return (\n <div className={`alert alert-warning d-flex align-items-center px-2 mb-3 ${props.className || ''}`}>\n <SvgContainer\n svgName={cvSvgLibrary.WarningOutline}\n className={`svg-container me-2 ${styles.icon}`}\n />\n <div>\n {props.children}\n </div>\n </div>\n );\n}","import React from 'react';\n\nimport { UserManagerClient } from 'libs/shared/apps/user-manager/enums/UserManagerClient';\n\nexport const UserManagerClientContext = React.createContext<UserManagerClient>(null);","// extracted by mini-css-extract-plugin\nexport default {\"selected\":\"zWik0\",\"disabled\":\"bMSMv\"};","import React from 'react';\n\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\n\nimport styles from './choices.scss';\n\nexport interface ChoicePopupOption {\n id: string;\n title?: string;\n description?: string;\n imageUrl?: string;\n disabled?: boolean;\n imageClassName?: string;\n}\n\n\ninterface ChoiceProps {\n option?: ChoicePopupOption;\n selected: boolean | ((selectedChoice: boolean) => boolean);\n onSelect: (option: ChoicePopupOption) => void;\n}\n\nexport function Choice(props: React.PropsWithChildren<ChoiceProps>): React.ReactElement {\n function onSelect(): void {\n if (props.option?.disabled)\n return;\n\n props.onSelect(props.option);\n }\n\n let className = 'text-center cursor-pointer p-3 border rounded-3 mx-2 user-select-none w-50';\n\n if (props.selected)\n className += ` border-info ${styles.selected}`;\n\n if (props.option?.disabled)\n className += ` ${styles.disabled}`;\n\n return (\n <DivButton onClick={onSelect} className={className}>\n {props.option?.imageUrl && <img src={props.option.imageUrl} className={`img-fluid my-3 ${props.option.imageClassName ?? ''}`} draggable={false} />}\n {props.option?.title && <h2 className='h3'>{props.option.title}</h2>}\n {props.option?.description && <p className='mb-0' dangerouslySetInnerHTML={{ __html: props.option.description }}></p>}\n {props.children}\n </DivButton>\n );\n}\n\ninterface ChoicesProps {\n options: [ChoicePopupOption, ChoicePopupOption];\n selection: ChoicePopupOption | null;\n selectOption: (option: ChoicePopupOption) => void;\n}\n\nexport function Choices(props: ChoicesProps): React.ReactElement {\n return (\n <div className='d-flex mb-3 mx-n2'>\n {props.options.map(o => (\n <Choice\n key={o.id}\n option={o}\n selected={props.selection?.id === o.id}\n onSelect={props.selectOption}\n />\n ))}\n </div>\n );\n}","import React from 'react';\n\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { PopupViewProps } from 'libs/shared/interfaces';\n\nimport { PopupButtons, PopupCancelButtonProps, PopupSubmitButtonProps } from '../popup/PopupButtons';\n\nimport { ChoicePopupOption, Choices } from './components/choices/Choices';\n\ninterface ChoicesPopupProps {\n title: string;\n options: [ChoicePopupOption, ChoicePopupOption];\n selection: ChoicePopupOption | null;\n selectOption: (choice: ChoicePopupOption) => void;\n question?: string;\n showLoadingSpinner?: boolean;\n submitButtonProps?: PopupSubmitButtonProps;\n cancelButtonProps?: PopupCancelButtonProps;\n warningComponent?: JSX.Element;\n}\n\ntype PropTypes = ChoicesPopupProps & PopupViewProps;\n\nexport function ChoicesPopup(props: PropTypes): JSX.Element {\n return (\n <Popup\n size='lg'\n title={props.title}\n showLoadingSpinner={props.showLoadingSpinner}\n closePopup={props.closePopup}\n >\n <>\n {!!props.warningComponent && props.warningComponent}\n\n {props.question &&\n <h2 className='h5 text-center fw-semibold mb-3'>{props.question}</h2>\n }\n\n <Choices\n options={props.options}\n selection={props.selection}\n selectOption={props.selectOption}\n />\n\n <PopupButtons>\n {props.cancelButtonProps && <PopupButtons.Cancel {...props.cancelButtonProps} />}\n {props.submitButtonProps && <PopupButtons.Submit {...props.submitButtonProps} />}\n </PopupButtons>\n </>\n </Popup>\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","// extracted by mini-css-extract-plugin\nexport default {\"optionImage\":\"XpfxM\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { EntityType, LocationContext, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { UserManagerAppLinks } from 'libs/shared/apps/user-manager/interfaces';\nimport { ChoicesPopup } from 'libs/shared/components/choices-popup/ChoicesPopup';\nimport { ChoicePopupOption } from 'libs/shared/components/choices-popup/components/choices/Choices';\nimport { UserGroup } from 'libs/shared/enums/UserGroup';\nimport { PropsWithPopupViewProps } from 'libs/shared/interfaces';\n\nimport { EditSsoUserWarning } from '../edit-user-details/components/EditSsoUserWarning';\n\nimport styles from './add-new-user.scss';\n\nconst namespace = 'userManager.addNewUsers';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface AddNewUsersProps {\n appLinks: UserManagerAppLinks;\n userType: UserGroup;\n createManuallyImageUrl: string;\n uploadSpreadsheetImageUrl: string;\n customerHasSso: boolean;\n ssoHelpArticle?: string;\n isLite?: boolean;\n}\n\nexport function AddNewUsers(props: PropsWithPopupViewProps<AddNewUsersProps>): JSX.Element {\n const analyticsLocation = LocationContext[props.userType === UserGroup.Learner ? 'StudentManager' : 'StaffManager'];\n\n const [ selection, setSelection ] = React.useState<ChoicePopupOption>(null);\n\n function onClickContinue(): void {\n if (selection.id === 'create-manually') {\n AnalyticsHelper.logUserAction({}, {\n workflowPhase: WorkflowPhase.Start,\n actionType: UserAction.Create,\n entity: EntityType.User,\n location: analyticsLocation\n });\n\n Core.AppLinkHelper.trigger(props.appLinks.newUser);\n return;\n }\n\n Core.AppLinkHelper.trigger(props.appLinks.userUploadPopup);\n }\n\n const options: [ChoicePopupOption, ChoicePopupOption] = [{\n id: 'create-manually',\n title: getPhrase('createManuallyTitle'),\n description: getPhrase(props.userType === UserGroup.Learner ? 'createManuallyDescStudents' : 'createManuallyDescStaff'),\n imageUrl: props.createManuallyImageUrl,\n imageClassName: props.isLite ? styles.optionImage : ''\n }, {\n id: 'upload-spreadsheet',\n title: getPhrase('uploadSpreadsheetTitle'),\n description: getPhrase(props.userType === UserGroup.Learner ? 'uploadSpreadsheetDescStudents' : 'uploadSpreadsheetDescStaff'),\n imageUrl: props.uploadSpreadsheetImageUrl,\n imageClassName: props.isLite ? styles.optionImage : ''\n }];\n\n return (\n <ChoicesPopup\n title={getPhrase(props.userType === UserGroup.Learner ? 'titleStudents' : 'titleStaff')}\n closePopup={props.closePopup}\n options={options}\n selection={selection}\n selectOption={setSelection}\n cancelButtonProps={{\n onClick: props.closePopup,\n text: getPhrase('cancel'),\n variant: 'link'\n }}\n submitButtonProps={{\n onClick: onClickContinue,\n text: getPhrase('continue'),\n variant: 'dark',\n disabled: !selection\n }}\n warningComponent={props.customerHasSso && !props.isLite &&\n <EditSsoUserWarning isNew userType={props.userType} helpArticle={props.ssoHelpArticle} />}\n />\n );\n}","import React from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { AddNewUsers } from 'libs/shared/apps/user-manager/components/add-new-users/AddNewUsers';\nimport { GetIdentityProvidersResponse } from 'libs/shared/apps/user-manager/interfaces/GetIdentityProvidersResponse';\nimport { LiteSupportArticle } from 'libs/shared/enums/SupportArticle';\nimport { UserGroup } from 'libs/shared/enums/UserGroup';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { CurrentUser, PropsWithPopupViewProps } from 'libs/shared/interfaces';\nimport { ArticleHelper } from 'libs/shared/utils/ArticleHelper';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nimport { UserManagerRequests } from 'apps/user-manager/flight-requests/UserManagerRequests';\nimport { getUserManagerAppLinks } from 'apps/user-manager/utils/LiteUserManagerAppLinks';\n\ninterface AddNewUsersViewProps {\n userType: UserGroup;\n}\n\nexport function AddNewUsersView(props: PropsWithPopupViewProps<AddNewUsersViewProps>): JSX.Element {\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const identityProviders = Flight.useBasicFetch<GetIdentityProvidersResponse>(!!currentUser.data &&\n UserManagerRequests.getIdentityProviders(currentUser.data.customerId));\n\n const appLinks = getUserManagerAppLinks(props.userType);\n\n return (\n <AddNewUsers\n userType={props.userType}\n appLinks={appLinks}\n closePopup={props.closePopup}\n createManuallyImageUrl={ImageUrls.UserManager.CREATE_MANUALLY}\n uploadSpreadsheetImageUrl={ImageUrls.UserManager.UPLOAD_SPREADSHEET}\n customerHasSso={!!identityProviders.data?.length}\n ssoHelpArticle={ArticleHelper.getLiteArticle(LiteSupportArticle.EditSsoAccounts)}\n isLite\n />\n );\n}"],"names":["namespace","EditSsoUserWarning","props","client","W","phrase","isNew","userType","helpArticle","className","href","target","WarningAlert","SvgContainer","svgName","children","UserManagerClientContext","Choice","selected","option","disabled","DivButton","onClick","onSelect","imageUrl","src","imageClassName","draggable","title","description","dangerouslySetInnerHTML","__html","Choices","options","map","o","key","id","selection","selectOption","ChoicesPopup","Popup","size","showLoadingSpinner","closePopup","warningComponent","question","PopupButtons","cancelButtonProps","submitButtonProps","OnlineSupportArticle","LiteSupportArticle","getPhrase","LanguageService","AddNewUsers","analyticsLocation","UserGroup","setSelection","createManuallyImageUrl","isLite","uploadSpreadsheetImageUrl","text","variant","AnalyticsHelper","workflowPhase","actionType","entity","location","appLinks","newUser","userUploadPopup","customerHasSso","ssoHelpArticle","AddNewUsersView","currentUser","UserRequests","identityProviders","data","UserManagerRequests","customerId","ImageUrls","length","ArticleHelper"],"sourceRoot":""}
1
+ {"version":3,"file":"scripts/9614-6e5babb89a-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/apps/user-manager/components/edit-user-details/components/EditSsoUserWarning.tsx","file:///app/packages/libs/shared/src/apps/user-manager/components/warning-alert/warning-alert.scss","file:///app/packages/libs/shared/src/apps/user-manager/components/warning-alert/WarningAlert.tsx","file:///app/packages/libs/shared/src/apps/user-manager/context/UserManagerClientContext.ts","file:///app/packages/libs/shared/src/components/choices-popup/components/choices/choices.scss","file:///app/packages/libs/shared/src/components/choices-popup/components/choices/Choices.tsx","file:///app/packages/libs/shared/src/components/choices-popup/ChoicesPopup.tsx","file:///app/packages/libs/shared/src/enums/SupportArticle.ts","file:///app/packages/libs/shared/src/apps/user-manager/components/add-new-users/add-new-user.scss","file:///app/packages/libs/shared/src/apps/user-manager/components/add-new-users/AddNewUsers.tsx","file:///app/packages/projects/lite/src/apps/user-manager/views/add-new-users/AddNewUsersView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Text } from 'libs/shared/components/text/Text';\nimport { UserGroup } from 'libs/shared/enums/UserGroup';\n\nimport { UserManagerClientContext } from '../../../context/UserManagerClientContext';\nimport { UserManagerClient } from '../../../enums/UserManagerClient';\nimport { WarningAlert } from '../../warning-alert/WarningAlert';\n\nconst namespace = 'userManager.editSsoUserWarning';\n\ninterface EditSsoUserWarningProps {\n isNew: boolean;\n userType: UserGroup;\n helpArticle?: string;\n}\n\nexport function EditSsoUserWarning(props: EditSsoUserWarningProps): JSX.Element {\n const client = React.useContext<UserManagerClient>(UserManagerClientContext);\n\n function getPhraseKey(): string {\n if (props.isNew) {\n if (client === UserManagerClient.Curator)\n return 'ssoWarningCreateCurator';\n\n return props.userType === UserGroup.Learner ? 'ssoWarningCreateStudent' : 'ssoWarningCreateStaff';\n }\n\n return client === UserManagerClient.Curator ? 'ssoWarningEditCurator' : 'ssoWarningEditUser';\n }\n\n return (\n <WarningAlert>\n <Text\n namespace={namespace}\n phrase={getPhraseKey()}\n />\n {!!props.helpArticle && (\n <a\n className='info-link d-block'\n href={props.helpArticle}\n target='_blank'\n >\n <Text namespace={namespace} phrase={props.isNew ? 'kbArticleEdit' : 'kbArticleCreate'} />\n </a>\n )}\n </WarningAlert>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"icon\":\"eCi4v\"};","import React from 'react';\n\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './warning-alert.scss';\n\ninterface Props extends HashObject {\n className?: string;\n}\n\ntype WarningAlertProps = React.PropsWithChildren<Props>;\n\nexport function WarningAlert(props: WarningAlertProps): JSX.Element {\n return (\n <div className={`alert alert-warning d-flex align-items-center px-2 mb-3 ${props.className || ''}`}>\n <SvgContainer\n svgName={cvSvgLibrary.WarningOutline}\n className={`svg-container me-2 ${styles.icon}`}\n />\n <div>\n {props.children}\n </div>\n </div>\n );\n}","import React from 'react';\n\nimport { UserManagerClient } from 'libs/shared/apps/user-manager/enums/UserManagerClient';\n\nexport const UserManagerClientContext = React.createContext<UserManagerClient>(null);","// extracted by mini-css-extract-plugin\nexport default {\"selected\":\"zWik0\",\"disabled\":\"bMSMv\"};","import React from 'react';\n\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\n\nimport styles from './choices.scss';\n\nexport interface ChoicePopupOption {\n id: string;\n title?: string;\n description?: string;\n imageUrl?: string;\n disabled?: boolean;\n imageClassName?: string;\n}\n\n\ninterface ChoiceProps {\n option?: ChoicePopupOption;\n selected: boolean | ((selectedChoice: boolean) => boolean);\n onSelect: (option: ChoicePopupOption) => void;\n}\n\nexport function Choice(props: React.PropsWithChildren<ChoiceProps>): React.ReactElement {\n function onSelect(): void {\n if (props.option?.disabled)\n return;\n\n props.onSelect(props.option);\n }\n\n let className = 'text-center cursor-pointer p-3 border rounded-3 mx-2 user-select-none w-50';\n\n if (props.selected)\n className += ` border-info ${styles.selected}`;\n\n if (props.option?.disabled)\n className += ` ${styles.disabled}`;\n\n return (\n <DivButton onClick={onSelect} className={className}>\n {props.option?.imageUrl && <img src={props.option.imageUrl} className={`img-fluid my-3 ${props.option.imageClassName ?? ''}`} draggable={false} />}\n {props.option?.title && <h2 className='h3'>{props.option.title}</h2>}\n {props.option?.description && <p className='mb-0' dangerouslySetInnerHTML={{ __html: props.option.description }}></p>}\n {props.children}\n </DivButton>\n );\n}\n\ninterface ChoicesProps {\n options: [ChoicePopupOption, ChoicePopupOption];\n selection: ChoicePopupOption | null;\n selectOption: (option: ChoicePopupOption) => void;\n}\n\nexport function Choices(props: ChoicesProps): React.ReactElement {\n return (\n <div className='d-flex mb-3 mx-n2'>\n {props.options.map(o => (\n <Choice\n key={o.id}\n option={o}\n selected={props.selection?.id === o.id}\n onSelect={props.selectOption}\n />\n ))}\n </div>\n );\n}","import React from 'react';\n\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { PopupViewProps } from 'libs/shared/interfaces';\n\nimport { PopupButtons, PopupCancelButtonProps, PopupSubmitButtonProps } from '../popup/PopupButtons';\n\nimport { ChoicePopupOption, Choices } from './components/choices/Choices';\n\ninterface ChoicesPopupProps {\n title: string;\n options: [ChoicePopupOption, ChoicePopupOption];\n selection: ChoicePopupOption | null;\n selectOption: (choice: ChoicePopupOption) => void;\n question?: string;\n showLoadingSpinner?: boolean;\n submitButtonProps?: PopupSubmitButtonProps;\n cancelButtonProps?: PopupCancelButtonProps;\n warningComponent?: JSX.Element;\n}\n\ntype PropTypes = ChoicesPopupProps & PopupViewProps;\n\nexport function ChoicesPopup(props: PropTypes): JSX.Element {\n return (\n <Popup\n size='lg'\n title={props.title}\n showLoadingSpinner={props.showLoadingSpinner}\n closePopup={props.closePopup}\n >\n <>\n {!!props.warningComponent && props.warningComponent}\n\n {props.question &&\n <h2 className='h5 text-center fw-semibold mb-3'>{props.question}</h2>\n }\n\n <Choices\n options={props.options}\n selection={props.selection}\n selectOption={props.selectOption}\n />\n\n <PopupButtons>\n {props.cancelButtonProps && <PopupButtons.Cancel {...props.cancelButtonProps} />}\n {props.submitButtonProps && <PopupButtons.Submit {...props.submitButtonProps} />}\n </PopupButtons>\n </>\n </Popup>\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","// extracted by mini-css-extract-plugin\nexport default {\"optionImage\":\"XpfxM\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { EntityType, LocationContext, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { UserManagerAppLinks } from 'libs/shared/apps/user-manager/interfaces';\nimport { ChoicesPopup } from 'libs/shared/components/choices-popup/ChoicesPopup';\nimport { ChoicePopupOption } from 'libs/shared/components/choices-popup/components/choices/Choices';\nimport { UserGroup } from 'libs/shared/enums/UserGroup';\nimport { PropsWithPopupViewProps } from 'libs/shared/interfaces';\n\nimport { EditSsoUserWarning } from '../edit-user-details/components/EditSsoUserWarning';\n\nimport styles from './add-new-user.scss';\n\nconst namespace = 'userManager.addNewUsers';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface AddNewUsersProps {\n appLinks: UserManagerAppLinks;\n userType: UserGroup;\n createManuallyImageUrl: string;\n uploadSpreadsheetImageUrl: string;\n customerHasSso: boolean;\n ssoHelpArticle?: string;\n isLite?: boolean;\n}\n\nexport function AddNewUsers(props: PropsWithPopupViewProps<AddNewUsersProps>): JSX.Element {\n const analyticsLocation = LocationContext[props.userType === UserGroup.Learner ? 'StudentManager' : 'StaffManager'];\n\n const [ selection, setSelection ] = React.useState<ChoicePopupOption>(null);\n\n function onClickContinue(): void {\n if (selection.id === 'create-manually') {\n AnalyticsHelper.logUserAction({}, {\n workflowPhase: WorkflowPhase.Start,\n actionType: UserAction.Create,\n entity: EntityType.User,\n location: analyticsLocation\n });\n\n Core.AppLinkHelper.trigger(props.appLinks.newUser);\n return;\n }\n\n Core.AppLinkHelper.trigger(props.appLinks.userUploadPopup);\n }\n\n const options: [ChoicePopupOption, ChoicePopupOption] = [{\n id: 'create-manually',\n title: getPhrase('createManuallyTitle'),\n description: getPhrase(props.userType === UserGroup.Learner ? 'createManuallyDescStudents' : 'createManuallyDescStaff'),\n imageUrl: props.createManuallyImageUrl,\n imageClassName: props.isLite ? styles.optionImage : ''\n }, {\n id: 'upload-spreadsheet',\n title: getPhrase('uploadSpreadsheetTitle'),\n description: getPhrase(props.userType === UserGroup.Learner ? 'uploadSpreadsheetDescStudents' : 'uploadSpreadsheetDescStaff'),\n imageUrl: props.uploadSpreadsheetImageUrl,\n imageClassName: props.isLite ? styles.optionImage : ''\n }];\n\n return (\n <ChoicesPopup\n title={getPhrase(props.userType === UserGroup.Learner ? 'titleStudents' : 'titleStaff')}\n closePopup={props.closePopup}\n options={options}\n selection={selection}\n selectOption={setSelection}\n cancelButtonProps={{\n onClick: props.closePopup,\n text: getPhrase('cancel'),\n variant: 'link'\n }}\n submitButtonProps={{\n onClick: onClickContinue,\n text: getPhrase('continue'),\n variant: 'dark',\n disabled: !selection\n }}\n warningComponent={props.customerHasSso && !props.isLite &&\n <EditSsoUserWarning isNew userType={props.userType} helpArticle={props.ssoHelpArticle} />}\n />\n );\n}","import React from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { AddNewUsers } from 'libs/shared/apps/user-manager/components/add-new-users/AddNewUsers';\nimport { GetIdentityProvidersResponse } from 'libs/shared/apps/user-manager/interfaces/GetIdentityProvidersResponse';\nimport { LiteSupportArticle } from 'libs/shared/enums/SupportArticle';\nimport { UserGroup } from 'libs/shared/enums/UserGroup';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { CurrentUser, PropsWithPopupViewProps } from 'libs/shared/interfaces';\nimport { ArticleHelper } from 'libs/shared/utils/ArticleHelper';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nimport { UserManagerRequests } from 'apps/user-manager/flight-requests/UserManagerRequests';\nimport { getUserManagerAppLinks } from 'apps/user-manager/utils/LiteUserManagerAppLinks';\n\ninterface AddNewUsersViewProps {\n userType: UserGroup;\n}\n\nexport function AddNewUsersView(props: PropsWithPopupViewProps<AddNewUsersViewProps>): JSX.Element {\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const identityProviders = Flight.useBasicFetch<GetIdentityProvidersResponse>(!!currentUser.data &&\n UserManagerRequests.getIdentityProviders(currentUser.data.customerId));\n\n const appLinks = getUserManagerAppLinks(props.userType);\n\n return (\n <AddNewUsers\n userType={props.userType}\n appLinks={appLinks}\n closePopup={props.closePopup}\n createManuallyImageUrl={ImageUrls.UserManager.CREATE_MANUALLY}\n uploadSpreadsheetImageUrl={ImageUrls.UserManager.UPLOAD_SPREADSHEET}\n customerHasSso={!!identityProviders.data?.length}\n ssoHelpArticle={ArticleHelper.getLiteArticle(LiteSupportArticle.EditSsoAccounts)}\n isLite\n />\n );\n}"],"names":["namespace","EditSsoUserWarning","props","client","W","phrase","isNew","userType","helpArticle","className","href","target","WarningAlert","SvgContainer","svgName","children","UserManagerClientContext","Choice","selected","option","disabled","DivButton","onClick","onSelect","imageUrl","src","imageClassName","draggable","title","description","dangerouslySetInnerHTML","__html","Choices","options","map","o","key","id","selection","selectOption","ChoicesPopup","Popup","size","showLoadingSpinner","closePopup","warningComponent","question","PopupButtons","cancelButtonProps","submitButtonProps","OnlineSupportArticle","LiteSupportArticle","getPhrase","LanguageService","AddNewUsers","analyticsLocation","UserGroup","setSelection","createManuallyImageUrl","isLite","uploadSpreadsheetImageUrl","text","variant","AnalyticsHelper","workflowPhase","actionType","entity","location","appLinks","newUser","userUploadPopup","customerHasSso","ssoHelpArticle","AddNewUsersView","currentUser","UserRequests","identityProviders","data","UserManagerRequests","customerId","ImageUrls","length","ArticleHelper"],"sourceRoot":""}
@@ -1,3 +1,3 @@
1
- /*! For license information please see 9719-0e59bf30a5-lite.chunk.js.LICENSE.txt */
2
- "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[9719],{49935:(e,t,n)=>{n.d(t,{Oo:()=>h,b2:()=>v});var r=n(32735),a=n(23481),i=n(36848),o=n(86764),c=n(3747),l=n(5859),s=n(35223),u=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,i,o,c=[],l=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=i.call(n)).done)&&(c.push(r.value),c.length!==t);l=!0);}catch(e){s=!0,a=e}finally{try{if(!l&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(s)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,o=n.appLink,c=n.active,l=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(i.F,{appLink:o,ref:t},l&&r.createElement(u.x,{svgName:s.vn.ChevronLeft,size:u.S.Small}),r.createElement("span",{className:l?"ms-2":""},m)))})),h=function(e){var t=e.breadcrumbs,n=(0,c.a)(o.r.XS),a=(null==t?void 0:t.length)||0,i=m(r.useState(!1),2),l=i[0],s=i[1],u=m(r.useState(!1),2),d=u[0],h=u[1],v=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&&s(!0)}),[null==t?void 0:t.length]),r.useLayoutEffect((function(){var e;d&&(null===(e=v.current)||void 0===e||e.focus())}),[v.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 g=r.createElement(p,{breadcrumb:t[0]}),b=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),E=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"},g,b,l?r.createElement("li",{className:"breadcrumb-item"},r.createElement("button",{className:"btn-link",onClick:function(){s(!1),h(!0)},"aria-label":f("expand")},"...")):S.map((function(e,t){return r.createElement(p,{key:t,breadcrumb:e,ref:0===t?v:null})})),y,E))},v=r.memo((function(e){var t=e.numItems,n=void 0===t?3:t;return(0,c.a)(o.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"},l.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"}}))}))))}))},41661:(e,t,n)=>{var r;n.d(t,{D:()=>r}),function(e){e.GoogleClassroom="google-classroom",e.MicrosoftTeams="microsoft-teams",e.Vivi="vivi",e.AppleTv="apply-tv"}(r||(r={}))},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:()=>i});var a={numItems:5,minWidth:50,maxWidth:100},i={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),i=n(23481),o=n(49935),c=n(22902),l=n(14070),s=n(97291),u=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,u.e)();if(e)return t(e);var r=a.Q.C$.getCurrentAppLink();return r.application!==s.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:s.O.SETTINGS,action:l.e.Settings.HOME},{replace:!0})}),[n]),!n)return r.createElement(r.Fragment,null);var c,u=e.breadcrumbs.map((function(t,n){return{name:t,appLink:{application:s.O.SETTINGS,action:l.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(o.Oo,{breadcrumbs:[{name:i.T.getPhrase(d,"settingsBreadcrumb"),appLink:{application:s.O.SETTINGS,action:l.e.Settings.HOME}}].concat((c=u,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)}},28611:(e,t,n)=>{n.d(t,{i:()=>i});var r=n(32735);const a={numberContainer:"JBRDi"};function i(e){var t=e.number,n=e.children,i=e.className,o=void 0===i?"":i;return r.createElement("div",{className:"d-flex align-items-center mb-3 ".concat(o)},r.createElement("div",{className:"d-flex align-items-center justify-content-center bg-dark rounded-circle ".concat(a.numberContainer)},r.createElement("span",{className:"text-light"},t)),r.createElement("div",{className:"ms-2"},n))}},99719:(e,t,n)=>{n.r(t),n.d(t,{ViviSettingsView:()=>K});var r=n(32735),a=n(70680),i=n(39202),o=n(23481),c=n(97395),l=n(20354),s=n(49985),u=n(65858),m=n(41661),d=n(33514),f=n(16714),p=n(77963),h=n(65728),v=n(99705),g=n(39151),b=n(2744),y=n(31949),E=n(69883),S=n(37802),w=n(12778),x=n(81803),N=n(10874),C=n(83914),k=n(83345),L=n(83523),I=n(35223),A=n(99742),T=n(28611);const O={image:"pt8vC"};var P="settings.viviSettings.connectedState";function j(e){var t=e.studentCastingEnabled,n=e.onDisconnect,a=e.onToggleStudentCasting;return r.createElement(r.Fragment,null,r.createElement("div",{className:"text-center d-flex flex-column align-items-center pt-5"},r.createElement("img",{className:"".concat(O.image," img-fluid"),role:"presentation",src:A.W.Devices.VIVI_CONNECTED}),r.createElement("h2",{className:"h3 mt-3"},r.createElement(k.x,{namespace:P,phrase:"connectedStateHeading"})),r.createElement("p",{className:"mb-3 w-50"},r.createElement(k.x,{namespace:P,phrase:"connectedStateInfo"})),r.createElement(N.h,{svgName:I.vn.Delete,className:"btn btn-outline-dark",onClick:n},r.createElement(k.x,{namespace:P,phrase:"disconnectViviButton"})),r.createElement("div",null,r.createElement("div",{className:"rounded-3 px-4 py-3 mt-3 bg-light-blue text-info text-dark text-start"},r.createElement("h3",{className:"h6 mb-3"},r.createElement(k.x,{namespace:P,phrase:"instructionsHeading"})),r.createElement(T.i,{number:1},r.createElement(k.x,{namespace:P,phrase:"instructionsStep1"})),r.createElement(T.i,{number:2,className:"mt-2"},r.createElement(k.x,{namespace:P,phrase:"instructionsStep2Fragment1"}),r.createElement(C.x,{svgName:I.vn.Vivi,size:C.S.Small}),r.createElement(k.x,{namespace:P,phrase:"instructionsStep2Fragment2"})),r.createElement(T.i,{number:3,className:"mt-2"},r.createElement(k.x,{namespace:P,phrase:"instructionsStep3"})),r.createElement(T.i,{number:4,className:"my-2"},r.createElement(k.x,{namespace:P,phrase:"instructionsStep4Fragment1"}),r.createElement(C.x,{svgName:I.vn.Cast,size:C.S.Small}),r.createElement(k.x,{namespace:P,phrase:"instructionsStep4Fragment2"})),r.createElement("a",{href:w.o.getLiteArticle(v.b.ViviIntegration),target:"_blank",className:"text-info"},r.createElement(k.x,{namespace:P,phrase:"learnMore"}))),r.createElement("div",{className:"rounded-3 px-4 py-3 mt-3 border text-dark text-start"},r.createElement("div",{className:"d-flex flex-row"},r.createElement("div",{className:"flex-grow-1"},r.createElement("h3",{className:"h6 mb-2"},r.createElement(k.x,{namespace:P,phrase:"studentCastingHeading"})),r.createElement("p",{className:"mb-0"},r.createElement(k.x,{namespace:P,phrase:"studentCastingInfo"}))),r.createElement("div",{className:"ms-3"},r.createElement(L.Z,{onClick:function(){a()},on:t,disabled:!1})))))))}var F=n(9111),_=n(13876),V="settings.viviSettings.disconnectPopup",M=o.T.encloseNamespace(V);function G(e){var t=e.showSpinner,n=e.onClickConfirm;return r.createElement(F.G,{title:M("disconnectPopupTitle"),closePopup:e.closePopup},r.createElement("p",null,r.createElement(k.x,{namespace:V,phrase:"disconnectPopupWarning"})),r.createElement("p",null,r.createElement(k.x,{namespace:V,phrase:"disconnectPopupSubWarning"})),r.createElement(_.u,null,r.createElement(_.u.Cancel,{onClick:e.closePopup}),r.createElement(_.u.Submit,{variant:"danger",text:M("disconnectPopupConfirmButton"),onClick:n,showSpinner:t})))}const B={image:"XPUBh"};var U="settings.viviSettings.disconnectedState",D=o.T.encloseNamespace(U);function H(e){var t=e.onConnect,n=e.onTroubleshoot;return r.createElement("div",{className:"text-center d-flex flex-column align-items-center pt-5"},r.createElement("img",{className:"".concat(B.image," img-fluid"),role:"presentation",src:A.W.Devices.VIVI_DISCONNECTED}),r.createElement("h2",{className:"h3 mt-3"},D("disconnectedStateHeading")),r.createElement("p",{className:"mb-3 w-50"},D("disconnectedStateInfo")),r.createElement(N.h,{svgName:I.vn.NewWindow,className:"btn btn-dark mb-3",onClick:t},D("connectViviButton")),r.createElement("a",{onClick:n,className:"text-info",role:"button"},r.createElement(k.x,{namespace:U,phrase:"troubleshootLink"})))}const W={container:"vgMQp",image:"cZeWA",heading:"ESuYg",button:"zFxDC"};function R(){return r.createElement("div",{className:"".concat(W.container," pt-5")},r.createElement("div",{className:"".concat(W.image," partial-loading-background mb-2 rounded")}),r.createElement("div",{className:"".concat(W.heading," partial-loading-background mb-2 rounded")}),r.createElement("div",{className:"".concat(W.button," partial-loading-background mb-2 rounded")}))}function z(e){return z="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},z(e)}function $(){$=function(){return t};var e,t={},n=Object.prototype,r=n.hasOwnProperty,a=Object.defineProperty||function(e,t,n){e[t]=n.value},i="function"==typeof Symbol?Symbol:{},o=i.iterator||"@@iterator",c=i.asyncIterator||"@@asyncIterator",l=i.toStringTag||"@@toStringTag";function s(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{s({},"")}catch(e){s=function(e,t,n){return e[t]=n}}function u(e,t,n,r){var i=t&&t.prototype instanceof g?t:g,o=Object.create(i.prototype),c=new T(r||[]);return a(o,"_invoke",{value:k(e,n,c)}),o}function m(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}t.wrap=u;var d="suspendedStart",f="suspendedYield",p="executing",h="completed",v={};function g(){}function b(){}function y(){}var E={};s(E,o,(function(){return this}));var S=Object.getPrototypeOf,w=S&&S(S(O([])));w&&w!==n&&r.call(w,o)&&(E=w);var x=y.prototype=g.prototype=Object.create(E);function N(e){["next","throw","return"].forEach((function(t){s(e,t,(function(e){return this._invoke(t,e)}))}))}function C(e,t){function n(a,i,o,c){var l=m(e[a],e,i);if("throw"!==l.type){var s=l.arg,u=s.value;return u&&"object"==z(u)&&r.call(u,"__await")?t.resolve(u.__await).then((function(e){n("next",e,o,c)}),(function(e){n("throw",e,o,c)})):t.resolve(u).then((function(e){s.value=e,o(s)}),(function(e){return n("throw",e,o,c)}))}c(l.arg)}var i;a(this,"_invoke",{value:function(e,r){function a(){return new t((function(t,a){n(e,r,t,a)}))}return i=i?i.then(a,a):a()}})}function k(t,n,r){var a=d;return function(i,o){if(a===p)throw Error("Generator is already running");if(a===h){if("throw"===i)throw o;return{value:e,done:!0}}for(r.method=i,r.arg=o;;){var c=r.delegate;if(c){var l=L(c,r);if(l){if(l===v)continue;return l}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(a===d)throw a=h,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);a=p;var s=m(t,n,r);if("normal"===s.type){if(a=r.done?h:f,s.arg===v)continue;return{value:s.arg,done:r.done}}"throw"===s.type&&(a=h,r.method="throw",r.arg=s.arg)}}}function L(t,n){var r=n.method,a=t.iterator[r];if(a===e)return n.delegate=null,"throw"===r&&t.iterator.return&&(n.method="return",n.arg=e,L(t,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),v;var i=m(a,t.iterator,n.arg);if("throw"===i.type)return n.method="throw",n.arg=i.arg,n.delegate=null,v;var o=i.arg;return o?o.done?(n[t.resultName]=o.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,v):o:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,v)}function I(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function A(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function T(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(I,this),this.reset(!0)}function O(t){if(t||""===t){var n=t[o];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var a=-1,i=function n(){for(;++a<t.length;)if(r.call(t,a))return n.value=t[a],n.done=!1,n;return n.value=e,n.done=!0,n};return i.next=i}}throw new TypeError(z(t)+" is not iterable")}return b.prototype=y,a(x,"constructor",{value:y,configurable:!0}),a(y,"constructor",{value:b,configurable:!0}),b.displayName=s(y,l,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===b||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,y):(e.__proto__=y,s(e,l,"GeneratorFunction")),e.prototype=Object.create(x),e},t.awrap=function(e){return{__await:e}},N(C.prototype),s(C.prototype,c,(function(){return this})),t.AsyncIterator=C,t.async=function(e,n,r,a,i){void 0===i&&(i=Promise);var o=new C(u(e,n,r,a),i);return t.isGeneratorFunction(n)?o:o.next().then((function(e){return e.done?e.value:o.next()}))},N(x),s(x,l,"Generator"),s(x,o,(function(){return this})),s(x,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},t.values=O,T.prototype={constructor:T,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(A),!t)for(var n in this)"t"===n.charAt(0)&&r.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var n=this;function a(r,a){return c.type="throw",c.arg=t,n.next=r,a&&(n.method="next",n.arg=e),!!a}for(var i=this.tryEntries.length-1;i>=0;--i){var o=this.tryEntries[i],c=o.completion;if("root"===o.tryLoc)return a("end");if(o.tryLoc<=this.prev){var l=r.call(o,"catchLoc"),s=r.call(o,"finallyLoc");if(l&&s){if(this.prev<o.catchLoc)return a(o.catchLoc,!0);if(this.prev<o.finallyLoc)return a(o.finallyLoc)}else if(l){if(this.prev<o.catchLoc)return a(o.catchLoc,!0)}else{if(!s)throw Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return a(o.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var a=this.tryEntries[n];if(a.tryLoc<=this.prev&&r.call(a,"finallyLoc")&&this.prev<a.finallyLoc){var i=a;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var o=i?i.completion:{};return o.type=e,o.arg=t,i?(this.method="next",this.next=i.finallyLoc,v):this.complete(o)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),v},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),A(n),v}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var a=r.arg;A(n)}return a}}throw Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:O(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),v}},t}function q(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,o,c=[],l=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=i.call(n)).done)&&(c.push(r.value),c.length!==t);l=!0);}catch(e){s=!0,a=e}finally{try{if(!l&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw a}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return Z(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)?Z(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 Z(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 Y=function(e,t,n,r){return new(n||(n=Promise))((function(a,i){function o(e){try{l(r.next(e))}catch(e){i(e)}}function c(e){try{l(r.throw(e))}catch(e){i(e)}}function l(e){var t;e.done?a(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,c)}l((r=r.apply(e,t||[])).next())}))},Q="vivi/connect",X="settings/integrations/vivi",J=o.T.encloseNamespace("settings.viviSettings");function K(e){var t,n=e.queryParams,o=q(r.useState(!1),2),N=o[0],C=o[1],k=q(r.useState(!1),2),L=k[0],I=k[1],A=l.a.useBasicFetch(y.N.currentUser()),T=l.a.useBasicFetch(g.L.config()),O=l.a.useBasicFetch((null===(t=A.data)||void 0===t?void 0:t.isAuthenticated)&&b.z.getViviIntegrationStatus()),P=(0,S.r)(u.LZ.Settings),F=P.hasEnabledViviPlayback,_=P.hasEnabledViviStudentCasting,V=P.isLoadingSettings,M=P.updateSetting,B=(0,E.Z)(),U=(0,a.I0)(),D=A.isFetching,W=O.isFetching,z=!W&&O.data===d.I.Connected,Z=!W&&!z;return r.useEffect((function(){var e;if(!(D||W||V||"true"!==(null==n?void 0:n.success)||O.data!==d.I.Connected||F)){var t={name:h.E.HasEnabledViviPlayback,value:!0,kind:p.g.Temporary};M(null===(e=A.data)||void 0===e?void 0:e.customerId,t,(function(){return B.success(J("enableViviSuccess"))}),(function(){return B.error(J("enableViviError"))}))}}),[D,W,V]),r.createElement(x.d,{heading:J("heading"),breadcrumbs:[J("heading")],requiredPermissions:f.C.ManageIntegrations},N&&r.createElement(G,{showSpinner:L,onClickConfirm:function(){return Y(this,void 0,void 0,$().mark((function e(){return $().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(A.data.isAuthenticated){e.next=2;break}return e.abrupt("return");case 2:return e.prev=2,I(!0),e.next=6,l.a.fetchAsync(U,b.z.disconnectViviAccount());case 6:C(!1),B.success(J("disconnectPopupSuccessMessage")),e.next=14;break;case 10:e.prev=10,e.t0=e.catch(2),console.error(e.t0),B.error(J("disconnectPopupErrorMessage"));case 14:return e.prev=14,I(!1),e.finish(14);case 17:case"end":return e.stop()}}),e,null,[[2,10,14,17]])})))},closePopup:function(){return C(!1)}}),W&&r.createElement(R,null),z&&r.createElement(j,{studentCastingEnabled:_,onDisconnect:function(){return C(!0)},onToggleStudentCasting:function(){var e,t=!_,n=t?"enableStudentCastingSuccess":"disableStudentCastingSuccess",r=t?"enableStudentCastingError":"disableStudentCastingError",a={name:h.E.HasEnabledViviStudentCasting,value:t,kind:p.g.Temporary};M(null===(e=A.data)||void 0===e?void 0:e.customerId,a,(function(){return B.success(J(n))}),(function(){return B.error(J(r))}))}}),Z&&r.createElement(H,{onConnect:function(){var e;if(!T.isFetching){var t=c._.safeUrlConcat(null!==(e=T.data.integrationsApiUrl)&&void 0!==e?e:"",Q),n=c._.safeUrlConcat(location.origin,X),r=c._.urlBuilder(t,{returnUrl:n});location.href=r}},onTroubleshoot:function(){s.k.logUserAction({id:m.D.Vivi,status:O.data},{entity:u.py.Integration,actionType:u.Vw.Click,workflowPhase:u.eu.Complete,location:u.LZ.Settings,descriptor:u.N3.Troubleshoot,eventVersion:u.eq.V1}),i.Ab.PageLoad("".concat(w.o.getLiteArticle(v.b.ViviIntegration),"#troubleshooting"),!0)}}))}}}]);
3
- //# sourceMappingURL=9719-0e59bf30a5-lite.chunk.js.map
1
+ /*! For license information please see 9719-28c14a0783-lite.chunk.js.LICENSE.txt */
2
+ "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[9719],{49935:(e,t,n)=>{n.d(t,{Oo:()=>h,b2:()=>v});var r=n(32735),a=n(23481),i=n(36848),o=n(86764),c=n(3747),l=n(5859),s=n(35223),u=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,i,o,c=[],l=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=i.call(n)).done)&&(c.push(r.value),c.length!==t);l=!0);}catch(e){s=!0,a=e}finally{try{if(!l&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(s)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,o=n.appLink,c=n.active,l=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(i.F,{appLink:o,ref:t},l&&r.createElement(u.x,{svgName:s.vn.ChevronLeft,size:u.S.Small}),r.createElement("span",{className:l?"ms-2":""},m)))})),h=function(e){var t=e.breadcrumbs,n=(0,c.a)(o.r.XS),a=(null==t?void 0:t.length)||0,i=m(r.useState(!1),2),l=i[0],s=i[1],u=m(r.useState(!1),2),d=u[0],h=u[1],v=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&&s(!0)}),[null==t?void 0:t.length]),r.useLayoutEffect((function(){var e;d&&(null===(e=v.current)||void 0===e||e.focus())}),[v.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 g=r.createElement(p,{breadcrumb:t[0]}),b=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),E=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"},g,b,l?r.createElement("li",{className:"breadcrumb-item"},r.createElement("button",{className:"btn-link",onClick:function(){s(!1),h(!0)},"aria-label":f("expand")},"...")):S.map((function(e,t){return r.createElement(p,{key:t,breadcrumb:e,ref:0===t?v:null})})),y,E))},v=r.memo((function(e){var t=e.numItems,n=void 0===t?3:t;return(0,c.a)(o.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"},l.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"}}))}))))}))},41661:(e,t,n)=>{var r;n.d(t,{D:()=>r}),function(e){e.GoogleClassroom="google-classroom",e.MicrosoftTeams="microsoft-teams",e.Vivi="vivi",e.AppleTv="apply-tv"}(r||(r={}))},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:()=>i});var a={numItems:5,minWidth:50,maxWidth:100},i={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),i=n(23481),o=n(49935),c=n(22902),l=n(14070),s=n(97291),u=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,u.e)();if(e)return t(e);var r=a.Q.C$.getCurrentAppLink();return r.application!==s.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:s.O.SETTINGS,action:l.e.Settings.HOME},{replace:!0})}),[n]),!n)return r.createElement(r.Fragment,null);var c,u=e.breadcrumbs.map((function(t,n){return{name:t,appLink:{application:s.O.SETTINGS,action:l.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(o.Oo,{breadcrumbs:[{name:i.T.getPhrase(d,"settingsBreadcrumb"),appLink:{application:s.O.SETTINGS,action:l.e.Settings.HOME}}].concat((c=u,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)}},28611:(e,t,n)=>{n.d(t,{i:()=>i});var r=n(32735);const a={numberContainer:"JBRDi"};function i(e){var t=e.number,n=e.children,i=e.className,o=void 0===i?"":i;return r.createElement("div",{className:"d-flex align-items-center mb-3 ".concat(o)},r.createElement("div",{className:"d-flex align-items-center justify-content-center bg-dark rounded-circle ".concat(a.numberContainer)},r.createElement("span",{className:"text-light"},t)),r.createElement("div",{className:"ms-2"},n))}},99719:(e,t,n)=>{n.r(t),n.d(t,{ViviSettingsView:()=>K});var r=n(32735),a=n(70680),i=n(39202),o=n(23481),c=n(97395),l=n(20354),s=n(49985),u=n(65858),m=n(41661),d=n(33514),f=n(16714),p=n(77963),h=n(65728),v=n(99705),g=n(39151),b=n(2744),y=n(31949),E=n(69883),S=n(37802),w=n(12778),x=n(81803),N=n(10874),C=n(83914),k=n(83345),L=n(83523),I=n(35223),A=n(99742),T=n(28611);const O={image:"pt8vC"};var P="settings.viviSettings.connectedState";function j(e){var t=e.studentCastingEnabled,n=e.onDisconnect,a=e.onToggleStudentCasting;return r.createElement(r.Fragment,null,r.createElement("div",{className:"text-center d-flex flex-column align-items-center pt-5"},r.createElement("img",{className:"".concat(O.image," img-fluid"),role:"presentation",src:A.W.Devices.VIVI_CONNECTED}),r.createElement("h2",{className:"h3 mt-3"},r.createElement(k.x,{namespace:P,phrase:"connectedStateHeading"})),r.createElement("p",{className:"mb-3 w-50"},r.createElement(k.x,{namespace:P,phrase:"connectedStateInfo"})),r.createElement(N.h,{svgName:I.vn.Delete,className:"btn btn-outline-dark",onClick:n},r.createElement(k.x,{namespace:P,phrase:"disconnectViviButton"})),r.createElement("div",null,r.createElement("div",{className:"rounded-3 px-4 py-3 mt-3 bg-light-blue text-info text-dark text-start"},r.createElement("h3",{className:"h6 mb-3"},r.createElement(k.x,{namespace:P,phrase:"instructionsHeading"})),r.createElement(T.i,{number:1},r.createElement(k.x,{namespace:P,phrase:"instructionsStep1"})),r.createElement(T.i,{number:2,className:"mt-2"},r.createElement(k.x,{namespace:P,phrase:"instructionsStep2Fragment1"}),r.createElement(C.x,{svgName:I.vn.Vivi,size:C.S.Small}),r.createElement(k.x,{namespace:P,phrase:"instructionsStep2Fragment2"})),r.createElement(T.i,{number:3,className:"mt-2"},r.createElement(k.x,{namespace:P,phrase:"instructionsStep3"})),r.createElement(T.i,{number:4,className:"my-2"},r.createElement(k.x,{namespace:P,phrase:"instructionsStep4Fragment1"}),r.createElement(C.x,{svgName:I.vn.Cast,size:C.S.Small}),r.createElement(k.x,{namespace:P,phrase:"instructionsStep4Fragment2"})),r.createElement("a",{href:w.o.getLiteArticle(v.b.ViviIntegration),target:"_blank",className:"text-info"},r.createElement(k.x,{namespace:P,phrase:"learnMore"}))),r.createElement("div",{className:"rounded-3 px-4 py-3 mt-3 border text-dark text-start"},r.createElement("div",{className:"d-flex flex-row"},r.createElement("div",{className:"flex-grow-1"},r.createElement("h3",{className:"h6 mb-2"},r.createElement(k.x,{namespace:P,phrase:"studentCastingHeading"})),r.createElement("p",{className:"mb-0"},r.createElement(k.x,{namespace:P,phrase:"studentCastingInfo"}))),r.createElement("div",{className:"ms-3"},r.createElement(L.Z,{onClick:function(){a()},on:t,disabled:!1})))))))}var F=n(9111),_=n(13876),V="settings.viviSettings.disconnectPopup",M=o.T.encloseNamespace(V);function G(e){var t=e.showSpinner,n=e.onClickConfirm;return r.createElement(F.G,{title:M("disconnectPopupTitle"),closePopup:e.closePopup},r.createElement("p",null,r.createElement(k.x,{namespace:V,phrase:"disconnectPopupWarning"})),r.createElement("p",null,r.createElement(k.x,{namespace:V,phrase:"disconnectPopupSubWarning"})),r.createElement(_.u,null,r.createElement(_.u.Cancel,{onClick:e.closePopup}),r.createElement(_.u.Submit,{variant:"danger",text:M("disconnectPopupConfirmButton"),onClick:n,showSpinner:t})))}const B={image:"XPUBh"};var U="settings.viviSettings.disconnectedState",D=o.T.encloseNamespace(U);function H(e){var t=e.onConnect,n=e.onTroubleshoot;return r.createElement("div",{className:"text-center d-flex flex-column align-items-center pt-5"},r.createElement("img",{className:"".concat(B.image," img-fluid"),role:"presentation",src:A.W.Devices.VIVI_DISCONNECTED}),r.createElement("h2",{className:"h3 mt-3"},D("disconnectedStateHeading")),r.createElement("p",{className:"mb-3 w-50"},D("disconnectedStateInfo")),r.createElement(N.h,{svgName:I.vn.NewWindow,className:"btn btn-dark mb-3",onClick:t},D("connectViviButton")),r.createElement("a",{onClick:n,className:"text-info",role:"button"},r.createElement(k.x,{namespace:U,phrase:"troubleshootLink"})))}const W={container:"vgMQp",image:"cZeWA",heading:"ESuYg",button:"zFxDC"};function R(){return r.createElement("div",{className:"".concat(W.container," pt-5")},r.createElement("div",{className:"".concat(W.image," partial-loading-background mb-2 rounded")}),r.createElement("div",{className:"".concat(W.heading," partial-loading-background mb-2 rounded")}),r.createElement("div",{className:"".concat(W.button," partial-loading-background mb-2 rounded")}))}function z(e){return z="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},z(e)}function $(){$=function(){return t};var e,t={},n=Object.prototype,r=n.hasOwnProperty,a=Object.defineProperty||function(e,t,n){e[t]=n.value},i="function"==typeof Symbol?Symbol:{},o=i.iterator||"@@iterator",c=i.asyncIterator||"@@asyncIterator",l=i.toStringTag||"@@toStringTag";function s(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{s({},"")}catch(e){s=function(e,t,n){return e[t]=n}}function u(e,t,n,r){var i=t&&t.prototype instanceof g?t:g,o=Object.create(i.prototype),c=new T(r||[]);return a(o,"_invoke",{value:k(e,n,c)}),o}function m(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}t.wrap=u;var d="suspendedStart",f="suspendedYield",p="executing",h="completed",v={};function g(){}function b(){}function y(){}var E={};s(E,o,(function(){return this}));var S=Object.getPrototypeOf,w=S&&S(S(O([])));w&&w!==n&&r.call(w,o)&&(E=w);var x=y.prototype=g.prototype=Object.create(E);function N(e){["next","throw","return"].forEach((function(t){s(e,t,(function(e){return this._invoke(t,e)}))}))}function C(e,t){function n(a,i,o,c){var l=m(e[a],e,i);if("throw"!==l.type){var s=l.arg,u=s.value;return u&&"object"==z(u)&&r.call(u,"__await")?t.resolve(u.__await).then((function(e){n("next",e,o,c)}),(function(e){n("throw",e,o,c)})):t.resolve(u).then((function(e){s.value=e,o(s)}),(function(e){return n("throw",e,o,c)}))}c(l.arg)}var i;a(this,"_invoke",{value:function(e,r){function a(){return new t((function(t,a){n(e,r,t,a)}))}return i=i?i.then(a,a):a()}})}function k(t,n,r){var a=d;return function(i,o){if(a===p)throw Error("Generator is already running");if(a===h){if("throw"===i)throw o;return{value:e,done:!0}}for(r.method=i,r.arg=o;;){var c=r.delegate;if(c){var l=L(c,r);if(l){if(l===v)continue;return l}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(a===d)throw a=h,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);a=p;var s=m(t,n,r);if("normal"===s.type){if(a=r.done?h:f,s.arg===v)continue;return{value:s.arg,done:r.done}}"throw"===s.type&&(a=h,r.method="throw",r.arg=s.arg)}}}function L(t,n){var r=n.method,a=t.iterator[r];if(a===e)return n.delegate=null,"throw"===r&&t.iterator.return&&(n.method="return",n.arg=e,L(t,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),v;var i=m(a,t.iterator,n.arg);if("throw"===i.type)return n.method="throw",n.arg=i.arg,n.delegate=null,v;var o=i.arg;return o?o.done?(n[t.resultName]=o.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,v):o:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,v)}function I(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function A(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function T(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(I,this),this.reset(!0)}function O(t){if(t||""===t){var n=t[o];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var a=-1,i=function n(){for(;++a<t.length;)if(r.call(t,a))return n.value=t[a],n.done=!1,n;return n.value=e,n.done=!0,n};return i.next=i}}throw new TypeError(z(t)+" is not iterable")}return b.prototype=y,a(x,"constructor",{value:y,configurable:!0}),a(y,"constructor",{value:b,configurable:!0}),b.displayName=s(y,l,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===b||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,y):(e.__proto__=y,s(e,l,"GeneratorFunction")),e.prototype=Object.create(x),e},t.awrap=function(e){return{__await:e}},N(C.prototype),s(C.prototype,c,(function(){return this})),t.AsyncIterator=C,t.async=function(e,n,r,a,i){void 0===i&&(i=Promise);var o=new C(u(e,n,r,a),i);return t.isGeneratorFunction(n)?o:o.next().then((function(e){return e.done?e.value:o.next()}))},N(x),s(x,l,"Generator"),s(x,o,(function(){return this})),s(x,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},t.values=O,T.prototype={constructor:T,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(A),!t)for(var n in this)"t"===n.charAt(0)&&r.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var n=this;function a(r,a){return c.type="throw",c.arg=t,n.next=r,a&&(n.method="next",n.arg=e),!!a}for(var i=this.tryEntries.length-1;i>=0;--i){var o=this.tryEntries[i],c=o.completion;if("root"===o.tryLoc)return a("end");if(o.tryLoc<=this.prev){var l=r.call(o,"catchLoc"),s=r.call(o,"finallyLoc");if(l&&s){if(this.prev<o.catchLoc)return a(o.catchLoc,!0);if(this.prev<o.finallyLoc)return a(o.finallyLoc)}else if(l){if(this.prev<o.catchLoc)return a(o.catchLoc,!0)}else{if(!s)throw Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return a(o.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var a=this.tryEntries[n];if(a.tryLoc<=this.prev&&r.call(a,"finallyLoc")&&this.prev<a.finallyLoc){var i=a;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var o=i?i.completion:{};return o.type=e,o.arg=t,i?(this.method="next",this.next=i.finallyLoc,v):this.complete(o)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),v},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),A(n),v}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var a=r.arg;A(n)}return a}}throw Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:O(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),v}},t}function q(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,o,c=[],l=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=i.call(n)).done)&&(c.push(r.value),c.length!==t);l=!0);}catch(e){s=!0,a=e}finally{try{if(!l&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw a}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return Z(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)?Z(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 Z(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 Y=function(e,t,n,r){return new(n||(n=Promise))((function(a,i){function o(e){try{l(r.next(e))}catch(e){i(e)}}function c(e){try{l(r.throw(e))}catch(e){i(e)}}function l(e){var t;e.done?a(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,c)}l((r=r.apply(e,t||[])).next())}))},Q="vivi/connect",X="settings/integrations/vivi",J=o.T.encloseNamespace("settings.viviSettings");function K(e){var t,n=e.queryParams,o=q(r.useState(!1),2),N=o[0],C=o[1],k=q(r.useState(!1),2),L=k[0],I=k[1],A=l.a.useBasicFetch(y.N.currentUser()),T=l.a.useBasicFetch(g.L.config()),O=l.a.useBasicFetch((null===(t=A.data)||void 0===t?void 0:t.isAuthenticated)&&b.z.getViviIntegrationStatus()),P=(0,S.r)(u.LZ.Settings),F=P.hasEnabledViviPlayback,_=P.hasEnabledViviStudentCasting,V=P.isLoadingSettings,M=P.updateSetting,B=(0,E.Z)(),U=(0,a.I0)(),D=A.isFetching,W=O.isFetching,z=!W&&O.data===d.I.Connected,Z=!W&&!z;return r.useEffect((function(){var e;if(!(D||W||V||"true"!==(null==n?void 0:n.success)||O.data!==d.I.Connected||F)){var t={name:h.E.HasEnabledViviPlayback,value:!0,kind:p.g.Temporary};M(null===(e=A.data)||void 0===e?void 0:e.customerId,t,(function(){return B.success(J("enableViviSuccess"))}),(function(){return B.error(J("enableViviError"))}))}}),[D,W,V]),r.createElement(x.d,{heading:J("heading"),breadcrumbs:[J("heading")],requiredPermissions:f.C.ManageIntegrations},N&&r.createElement(G,{showSpinner:L,onClickConfirm:function(){return Y(this,void 0,void 0,$().mark((function e(){return $().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(A.data.isAuthenticated){e.next=2;break}return e.abrupt("return");case 2:return e.prev=2,I(!0),e.next=6,l.a.fetchAsync(U,b.z.disconnectViviAccount());case 6:C(!1),B.success(J("disconnectPopupSuccessMessage")),e.next=14;break;case 10:e.prev=10,e.t0=e.catch(2),console.error(e.t0),B.error(J("disconnectPopupErrorMessage"));case 14:return e.prev=14,I(!1),e.finish(14);case 17:case"end":return e.stop()}}),e,null,[[2,10,14,17]])})))},closePopup:function(){return C(!1)}}),W&&r.createElement(R,null),z&&r.createElement(j,{studentCastingEnabled:_,onDisconnect:function(){return C(!0)},onToggleStudentCasting:function(){var e,t=!_,n=t?"enableStudentCastingSuccess":"disableStudentCastingSuccess",r=t?"enableStudentCastingError":"disableStudentCastingError",a={name:h.E.HasEnabledViviStudentCasting,value:t,kind:p.g.Temporary};M(null===(e=A.data)||void 0===e?void 0:e.customerId,a,(function(){return B.success(J(n))}),(function(){return B.error(J(r))}))}}),Z&&r.createElement(H,{onConnect:function(){var e;if(!T.isFetching){var t=c._.safeUrlConcat(null!==(e=T.data.integrationsApiUrl)&&void 0!==e?e:"",Q),n=c._.safeUrlConcat(location.origin,X),r=c._.urlBuilder(t,{returnUrl:n});location.href=r}},onTroubleshoot:function(){s.k.logUserAction({id:m.D.Vivi,status:O.data},{entity:u.py.Integration,actionType:u.Vw.Click,workflowPhase:u.eu.Complete,location:u.LZ.Settings,descriptor:u.N3.Troubleshoot,eventVersion:u.eq.V1}),i.Ab.PageLoad("".concat(w.o.getLiteArticle(v.b.ViviIntegration),"#troubleshooting"),!0)}}))}}}]);
3
+ //# sourceMappingURL=9719-28c14a0783-lite.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scripts/9719-0e59bf30a5-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/IntegrationId.ts","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/components/settings-ordered-list-item/settings-ordered-list-item.scss","file:///app/packages/projects/lite/src/apps/settings/components/settings-ordered-list-item/SettingsOrderedListItem.tsx","file:///app/packages/projects/lite/src/apps/settings/views/integration-settings/vivi-settings/connected-state/vivi-settings-connected-state.scss","file:///app/packages/projects/lite/src/apps/settings/views/integration-settings/vivi-settings/connected-state/ViviSettingsConnectedState.tsx","file:///app/packages/projects/lite/src/apps/settings/views/integration-settings/vivi-settings/disconnect-popup/ViviSettingsDisconnectPopup.tsx","file:///app/packages/projects/lite/src/apps/settings/views/integration-settings/vivi-settings/disconnected-state/vivi-settings-connected-state.scss","file:///app/packages/projects/lite/src/apps/settings/views/integration-settings/vivi-settings/disconnected-state/ViviSettingsDisconnectedState.tsx","file:///app/packages/projects/lite/src/apps/settings/views/integration-settings/vivi-settings/partial-loading-state/vivi-settings-partial-loaded-state.scss","file:///app/packages/projects/lite/src/apps/settings/views/integration-settings/vivi-settings/partial-loading-state/VIviSettingsPartialLoadingState.tsx","file:///app/packages/projects/lite/src/apps/settings/views/integration-settings/vivi-settings/ViviSettingsView.tsx"],"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});","export enum IntegrationId {\n GoogleClassroom = 'google-classroom',\n MicrosoftTeams = 'microsoft-teams',\n Vivi = 'vivi',\n AppleTv = 'apply-tv'\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 {\"numberContainer\":\"JBRDi\"};","import React from 'react';\n\nimport styles from './settings-ordered-list-item.scss';\n\ninterface SettingsOrderedListItemProps {\n number: number;\n children: React.ReactNode;\n className?: string;\n}\n\nexport function SettingsOrderedListItem({ number, children, className = '' }: SettingsOrderedListItemProps): JSX.Element {\n return (\n <div className={`d-flex align-items-center mb-3 ${className}`}>\n <div className={`d-flex align-items-center justify-content-center bg-dark rounded-circle ${styles.numberContainer}`}>\n <span className='text-light'>{number}</span>\n </div>\n <div className='ms-2'>\n {children}\n </div>\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"image\":\"pt8vC\"};","import React from 'react';\n\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { ToggleSwitch } from 'libs/shared/components/toggle-switch/ToggleSwitch';\nimport { LiteSupportArticle } from 'libs/shared/enums/SupportArticle';\nimport { ArticleHelper } from 'libs/shared/utils/ArticleHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nimport { SettingsOrderedListItem } from 'apps/settings/components/settings-ordered-list-item/SettingsOrderedListItem';\n\nimport styles from './vivi-settings-connected-state.scss';\n\nconst namespace = 'settings.viviSettings.connectedState';\n\ninterface ViviSettingsConnectedStateProps {\n studentCastingEnabled: boolean;\n onDisconnect: () => void;\n onToggleStudentCasting: () => void;\n}\n\nexport function ViviSettingsConnectedState({\n studentCastingEnabled,\n onDisconnect,\n onToggleStudentCasting\n}: ViviSettingsConnectedStateProps): JSX.Element {\n return (\n <>\n <div className='text-center d-flex flex-column align-items-center pt-5'>\n <img className={`${styles.image} img-fluid`} role='presentation' src={ImageUrls.Devices.VIVI_CONNECTED} />\n\n <h2 className='h3 mt-3'>\n <Text namespace={namespace} phrase='connectedStateHeading' />\n </h2>\n\n <p className='mb-3 w-50'>\n <Text namespace={namespace} phrase='connectedStateInfo' />\n </p>\n\n <IconButton\n svgName={cvSvgLibrary.Delete}\n className='btn btn-outline-dark'\n onClick={onDisconnect}\n >\n <Text namespace={namespace} phrase='disconnectViviButton' />\n </IconButton>\n \n <div>\n <div className='rounded-3 px-4 py-3 mt-3 bg-light-blue text-info text-dark text-start'>\n <h3 className='h6 mb-3'>\n <Text namespace={namespace} phrase='instructionsHeading' />\n </h3>\n\n <SettingsOrderedListItem number={1}>\n <Text namespace={namespace} phrase='instructionsStep1' />\n </SettingsOrderedListItem>\n\n <SettingsOrderedListItem number={2} className='mt-2'>\n <Text namespace={namespace} phrase='instructionsStep2Fragment1' />\n <SvgContainer svgName={cvSvgLibrary.Vivi} size={SvgContainerSize.Small} />\n <Text namespace={namespace} phrase='instructionsStep2Fragment2' />\n </SettingsOrderedListItem>\n\n <SettingsOrderedListItem number={3} className='mt-2'>\n <Text namespace={namespace} phrase='instructionsStep3' />\n </SettingsOrderedListItem>\n\n <SettingsOrderedListItem number={4} className='my-2'>\n <Text namespace={namespace} phrase='instructionsStep4Fragment1' />\n <SvgContainer svgName={cvSvgLibrary.Cast} size={SvgContainerSize.Small} />\n <Text namespace={namespace} phrase='instructionsStep4Fragment2' />\n </SettingsOrderedListItem>\n\n <a\n href={ArticleHelper.getLiteArticle(LiteSupportArticle.ViviIntegration)}\n target='_blank'\n className='text-info'\n >\n <Text namespace={namespace} phrase='learnMore' />\n </a>\n </div>\n <div className='rounded-3 px-4 py-3 mt-3 border text-dark text-start'>\n <div className='d-flex flex-row'>\n <div className='flex-grow-1'>\n <h3 className='h6 mb-2'>\n <Text namespace={namespace} phrase='studentCastingHeading' />\n </h3>\n <p className='mb-0'>\n <Text namespace={namespace} phrase='studentCastingInfo' />\n </p>\n </div>\n <div className='ms-3'>\n <ToggleSwitch\n onClick={() => {\n onToggleStudentCasting();\n }}\n on={studentCastingEnabled}\n disabled={false}\n />\n </div>\n </div>\n </div>\n </div>\n </div>\n </>\n );\n}\n","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { PopupViewProps } from 'libs/shared/interfaces';\n\nconst namespace = 'settings.viviSettings.disconnectPopup';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface ViviSettingsDisconnectPopupProps extends PopupViewProps {\n showSpinner: boolean;\n onClickConfirm: () => void;\n}\n\nexport function ViviSettingsDisconnectPopup(props: ViviSettingsDisconnectPopupProps): JSX.Element {\n const { showSpinner, onClickConfirm } = props;\n\n return (\n <Popup title={getPhrase('disconnectPopupTitle')} closePopup={props.closePopup}>\n <p>\n <Text namespace={namespace} phrase='disconnectPopupWarning' />\n </p>\n\n <p>\n <Text namespace={namespace} phrase='disconnectPopupSubWarning' />\n </p>\n\n <PopupButtons>\n <PopupButtons.Cancel onClick={props.closePopup} />\n <PopupButtons.Submit\n variant='danger'\n text={getPhrase('disconnectPopupConfirmButton')}\n onClick={onClickConfirm}\n showSpinner={showSpinner}\n />\n </PopupButtons>\n </Popup>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"image\":\"XPUBh\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nimport styles from './vivi-settings-connected-state.scss';\n\nconst namespace = 'settings.viviSettings.disconnectedState';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface ViviSettingsDisconnectedStateProps {\n onConnect: () => void;\n onTroubleshoot: () => void;\n}\n\nexport function ViviSettingsDisconnectedState({\n onConnect,\n onTroubleshoot\n}: ViviSettingsDisconnectedStateProps): JSX.Element {\n return (\n <div className='text-center d-flex flex-column align-items-center pt-5'>\n <img className={`${styles.image} img-fluid`} role='presentation' src={ImageUrls.Devices.VIVI_DISCONNECTED} />\n\n <h2 className='h3 mt-3'>\n {getPhrase('disconnectedStateHeading')}\n </h2>\n\n <p className='mb-3 w-50'>\n {getPhrase('disconnectedStateInfo')}\n </p>\n\n <IconButton\n svgName={cvSvgLibrary.NewWindow}\n className='btn btn-dark mb-3'\n onClick={onConnect}\n >\n {getPhrase('connectViviButton')}\n </IconButton>\n\n <a\n onClick={onTroubleshoot}\n className='text-info'\n role='button'\n >\n <Text namespace={namespace} phrase='troubleshootLink' />\n </a>\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"vgMQp\",\"image\":\"cZeWA\",\"heading\":\"ESuYg\",\"button\":\"zFxDC\"};","import React from 'react';\n\nimport styles from './vivi-settings-partial-loaded-state.scss';\n\nexport function ViviSettingsPartialLoadingState(): JSX.Element {\n return (\n <div className={`${styles.container} pt-5`}>\n <div className={`${styles.image} partial-loading-background mb-2 rounded`} />\n <div className={`${styles.heading} partial-loading-background mb-2 rounded`} />\n <div className={`${styles.button} partial-loading-background mb-2 rounded`} />\n </div>\n );\n}","import React from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { LocationUtils } from 'libs/common/backbone/core';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { EntityType, EventVersion, IntegrationsDescriptor, LocationContext, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { IntegrationId } from 'libs/shared/enums/IntegrationId';\nimport { IntegrationStatus } from 'libs/shared/enums/IntegrationStatus';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { SettingKind } from 'libs/shared/enums/SettingKind';\nimport { SettingName } from 'libs/shared/enums/SettingName';\nimport { LiteSupportArticle } from 'libs/shared/enums/SupportArticle';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { PlayerIntegrationsRequests } from 'libs/shared/flight-requests/PlayerIntegrationsRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { Config, CurrentUser } from 'libs/shared/interfaces';\nimport { ViviSettingsViewQueryParams } from 'libs/shared/interfaces/query-params/ViviSettingsViewQueryParams';\nimport { ArticleHelper } from 'libs/shared/utils/ArticleHelper';\n\nimport { SettingsLayout } from 'apps/settings/components/settings-layout/SettingsLayout';\n\nimport { ViviSettingsConnectedState } from './connected-state/ViviSettingsConnectedState';\nimport { ViviSettingsDisconnectPopup } from './disconnect-popup/ViviSettingsDisconnectPopup';\nimport { ViviSettingsDisconnectedState } from './disconnected-state/ViviSettingsDisconnectedState';\nimport { ViviSettingsPartialLoadingState } from './partial-loading-state/VIviSettingsPartialLoadingState';\n\n// Don't alter the Vivi constants below without consulting with Cam or Boris\nconst VIVI_CONNECT_ENDPOINT = 'vivi/connect';\nconst VIVI_OAUTH_RETURN_URL_PATH = 'settings/integrations/vivi';\n\nconst namespace = 'settings.viviSettings';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface ViviSettingsViewProps {\n queryParams?: ViviSettingsViewQueryParams;\n}\n\nexport function ViviSettingsView({ queryParams }: ViviSettingsViewProps): JSX.Element {\n const [ showDisconnectPopup, setShowDisconnectPopup ] = React.useState(false);\n const [ showSpinner, setShowSpinner ] = React.useState(false);\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const viviStatus = Flight.useBasicFetch<IntegrationStatus>(\n currentUser.data?.isAuthenticated && PlayerIntegrationsRequests.getViviIntegrationStatus()\n );\n const {\n hasEnabledViviPlayback,\n hasEnabledViviStudentCasting,\n isLoadingSettings,\n updateSetting\n } = useSettings(LocationContext.Settings);\n const alerts = useAlerts();\n const dispatch = useDispatch();\n\n const isLoadingUser = currentUser.isFetching;\n const isLoadingStatus = viviStatus.isFetching;\n const isConnected = !isLoadingStatus && viviStatus.data === IntegrationStatus.Connected;\n const requiresConnection = !isLoadingStatus && !isConnected;\n\n /*\n * This effect will try to enable the Vivi playback setting domain option \n * when (and if) the OAuth flow successfully completes. It does not enable the domain \n * setting if the user just navigates to the Vivi settings page via normal browsing.\n */\n React.useEffect(() => {\n // Ensure all data has been loaded\n if (isLoadingUser || isLoadingStatus || isLoadingSettings) return;\n\n // Ensure we have just returned from a successful OAuth flow\n if (queryParams?.success !== 'true') return;\n\n // Ensure the integration's status is connected\n if (viviStatus.data !== IntegrationStatus.Connected) return;\n\n // Ensure the domain option is not already enabled (avoid unnecessary API calls)\n if (hasEnabledViviPlayback) return;\n\n const viviPlaybackSetting = {\n name: SettingName.HasEnabledViviPlayback,\n value: true,\n kind: SettingKind.Temporary\n };\n\n const onSuccess = () => alerts.success(getPhrase('enableViviSuccess'));\n const onError = () => alerts.error(getPhrase('enableViviError'));\n\n updateSetting(currentUser.data?.customerId, viviPlaybackSetting, onSuccess, onError);\n }, [ isLoadingUser, isLoadingStatus, isLoadingSettings ]);\n\n /**\n * This function will kick-off the Vivi OAuth flow. It will redirect the user to the Vivi login page.\n * After the user has logged in, they will be redirected back to the Lite app.\n */\n function connectToVivi(): void {\n if (config.isFetching) return;\n \n const connectEndpoint = UrlHelper.safeUrlConcat(config.data.integrationsApiUrl ?? '', VIVI_CONNECT_ENDPOINT);\n const returnUrl = UrlHelper.safeUrlConcat(location.origin, VIVI_OAUTH_RETURN_URL_PATH);\n const connectUrl = UrlHelper.urlBuilder(connectEndpoint, { returnUrl });\n \n location.href = connectUrl;\n }\n\n async function disconnectVivi(): Promise<void> {\n if (!currentUser.data.isAuthenticated)\n return;\n\n try {\n setShowSpinner(true);\n await Flight.fetchAsync(dispatch, PlayerIntegrationsRequests.disconnectViviAccount());\n setShowDisconnectPopup(false);\n \n alerts.success(getPhrase('disconnectPopupSuccessMessage'));\n } catch (e) {\n console.error(e);\n alerts.error(getPhrase('disconnectPopupErrorMessage'));\n } finally {\n setShowSpinner(false);\n }\n }\n\n function openTroubleshootingArticle(): void {\n AnalyticsHelper.logUserAction({\n id: IntegrationId.Vivi,\n status: viviStatus.data\n }, {\n entity: EntityType.Integration,\n actionType: UserAction.Click,\n workflowPhase: WorkflowPhase.Complete,\n location: LocationContext.Settings,\n descriptor: IntegrationsDescriptor.Troubleshoot,\n eventVersion: EventVersion.V1\n });\n\n LocationUtils.PageLoad(`${ArticleHelper.getLiteArticle(LiteSupportArticle.ViviIntegration)}#troubleshooting`, true);\n }\n\n function toggleViviStudentCasting(): void {\n const enable = !hasEnabledViviStudentCasting;\n const successPhraseKey = enable ? 'enableStudentCastingSuccess' : 'disableStudentCastingSuccess';\n const errorPhraseKey = enable ? 'enableStudentCastingError' : 'disableStudentCastingError';\n\n const viviStudentCastingSetting = {\n name: SettingName.HasEnabledViviStudentCasting,\n value: enable,\n kind: SettingKind.Temporary\n };\n\n const onSuccess = () => alerts.success(getPhrase(successPhraseKey));\n const onError = () => alerts.error(getPhrase(errorPhraseKey));\n\n updateSetting(currentUser.data?.customerId, viviStudentCastingSetting, onSuccess, onError);\n }\n\n return (\n <SettingsLayout\n heading={getPhrase('heading')}\n breadcrumbs={[getPhrase('heading')]}\n requiredPermissions={PermissionName.ManageIntegrations}\n >\n { showDisconnectPopup &&\n <ViviSettingsDisconnectPopup\n showSpinner={showSpinner}\n onClickConfirm={disconnectVivi}\n closePopup={() => setShowDisconnectPopup(false)}\n /> }\n { isLoadingStatus && <ViviSettingsPartialLoadingState /> }\n { isConnected &&\n <ViviSettingsConnectedState\n studentCastingEnabled={hasEnabledViviStudentCasting}\n onDisconnect={() => setShowDisconnectPopup(true)}\n onToggleStudentCasting={toggleViviStudentCasting}\n /> }\n { requiresConnection &&\n <ViviSettingsDisconnectedState\n onConnect={connectToVivi}\n onTroubleshoot={openTroubleshootingArticle}\n /> }\n </SettingsLayout>\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","IntegrationId","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","SettingsOrderedListItem","number","ViviSettingsConnectedState","studentCastingEnabled","onDisconnect","onToggleStudentCasting","role","src","ImageUrls","Text","phrase","IconButton","SvgContainer","href","ArticleHelper","target","ToggleSwitch","on","disabled","LanguageService","ViviSettingsDisconnectPopup","showSpinner","onClickConfirm","Popup","closePopup","PopupButtons","variant","text","ViviSettingsDisconnectedState","onConnect","onTroubleshoot","ViviSettingsPartialLoadingState","VIVI_CONNECT_ENDPOINT","VIVI_OAUTH_RETURN_URL_PATH","ViviSettingsView","queryParams","showDisconnectPopup","setShowDisconnectPopup","setShowSpinner","currentUser","UserRequests","config","ConfigRequests","viviStatus","data","isAuthenticated","PlayerIntegrationsRequests","useSettings","hasEnabledViviPlayback","hasEnabledViviStudentCasting","isLoadingSettings","updateSetting","alerts","dispatch","isLoadingUser","isFetching","isLoadingStatus","isConnected","IntegrationStatus","I","requiresConnection","success","viviPlaybackSetting","SettingName","value","kind","SettingKind","customerId","error","PermissionName","console","enable","successPhraseKey","errorPhraseKey","viviStudentCastingSetting","connectEndpoint","UrlHelper","integrationsApiUrl","returnUrl","location","origin","connectUrl","AnalyticsHelper","id","status","entity","actionType","workflowPhase","descriptor","eventVersion"],"sourceRoot":""}
1
+ {"version":3,"file":"scripts/9719-28c14a0783-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/IntegrationId.ts","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/components/settings-ordered-list-item/settings-ordered-list-item.scss","file:///app/packages/projects/lite/src/apps/settings/components/settings-ordered-list-item/SettingsOrderedListItem.tsx","file:///app/packages/projects/lite/src/apps/settings/views/integration-settings/vivi-settings/connected-state/vivi-settings-connected-state.scss","file:///app/packages/projects/lite/src/apps/settings/views/integration-settings/vivi-settings/connected-state/ViviSettingsConnectedState.tsx","file:///app/packages/projects/lite/src/apps/settings/views/integration-settings/vivi-settings/disconnect-popup/ViviSettingsDisconnectPopup.tsx","file:///app/packages/projects/lite/src/apps/settings/views/integration-settings/vivi-settings/disconnected-state/vivi-settings-connected-state.scss","file:///app/packages/projects/lite/src/apps/settings/views/integration-settings/vivi-settings/disconnected-state/ViviSettingsDisconnectedState.tsx","file:///app/packages/projects/lite/src/apps/settings/views/integration-settings/vivi-settings/partial-loading-state/vivi-settings-partial-loaded-state.scss","file:///app/packages/projects/lite/src/apps/settings/views/integration-settings/vivi-settings/partial-loading-state/VIviSettingsPartialLoadingState.tsx","file:///app/packages/projects/lite/src/apps/settings/views/integration-settings/vivi-settings/ViviSettingsView.tsx"],"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});","export enum IntegrationId {\n GoogleClassroom = 'google-classroom',\n MicrosoftTeams = 'microsoft-teams',\n Vivi = 'vivi',\n AppleTv = 'apply-tv'\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 {\"numberContainer\":\"JBRDi\"};","import React from 'react';\n\nimport styles from './settings-ordered-list-item.scss';\n\ninterface SettingsOrderedListItemProps {\n number: number;\n children: React.ReactNode;\n className?: string;\n}\n\nexport function SettingsOrderedListItem({ number, children, className = '' }: SettingsOrderedListItemProps): JSX.Element {\n return (\n <div className={`d-flex align-items-center mb-3 ${className}`}>\n <div className={`d-flex align-items-center justify-content-center bg-dark rounded-circle ${styles.numberContainer}`}>\n <span className='text-light'>{number}</span>\n </div>\n <div className='ms-2'>\n {children}\n </div>\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"image\":\"pt8vC\"};","import React from 'react';\n\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { ToggleSwitch } from 'libs/shared/components/toggle-switch/ToggleSwitch';\nimport { LiteSupportArticle } from 'libs/shared/enums/SupportArticle';\nimport { ArticleHelper } from 'libs/shared/utils/ArticleHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nimport { SettingsOrderedListItem } from 'apps/settings/components/settings-ordered-list-item/SettingsOrderedListItem';\n\nimport styles from './vivi-settings-connected-state.scss';\n\nconst namespace = 'settings.viviSettings.connectedState';\n\ninterface ViviSettingsConnectedStateProps {\n studentCastingEnabled: boolean;\n onDisconnect: () => void;\n onToggleStudentCasting: () => void;\n}\n\nexport function ViviSettingsConnectedState({\n studentCastingEnabled,\n onDisconnect,\n onToggleStudentCasting\n}: ViviSettingsConnectedStateProps): JSX.Element {\n return (\n <>\n <div className='text-center d-flex flex-column align-items-center pt-5'>\n <img className={`${styles.image} img-fluid`} role='presentation' src={ImageUrls.Devices.VIVI_CONNECTED} />\n\n <h2 className='h3 mt-3'>\n <Text namespace={namespace} phrase='connectedStateHeading' />\n </h2>\n\n <p className='mb-3 w-50'>\n <Text namespace={namespace} phrase='connectedStateInfo' />\n </p>\n\n <IconButton\n svgName={cvSvgLibrary.Delete}\n className='btn btn-outline-dark'\n onClick={onDisconnect}\n >\n <Text namespace={namespace} phrase='disconnectViviButton' />\n </IconButton>\n \n <div>\n <div className='rounded-3 px-4 py-3 mt-3 bg-light-blue text-info text-dark text-start'>\n <h3 className='h6 mb-3'>\n <Text namespace={namespace} phrase='instructionsHeading' />\n </h3>\n\n <SettingsOrderedListItem number={1}>\n <Text namespace={namespace} phrase='instructionsStep1' />\n </SettingsOrderedListItem>\n\n <SettingsOrderedListItem number={2} className='mt-2'>\n <Text namespace={namespace} phrase='instructionsStep2Fragment1' />\n <SvgContainer svgName={cvSvgLibrary.Vivi} size={SvgContainerSize.Small} />\n <Text namespace={namespace} phrase='instructionsStep2Fragment2' />\n </SettingsOrderedListItem>\n\n <SettingsOrderedListItem number={3} className='mt-2'>\n <Text namespace={namespace} phrase='instructionsStep3' />\n </SettingsOrderedListItem>\n\n <SettingsOrderedListItem number={4} className='my-2'>\n <Text namespace={namespace} phrase='instructionsStep4Fragment1' />\n <SvgContainer svgName={cvSvgLibrary.Cast} size={SvgContainerSize.Small} />\n <Text namespace={namespace} phrase='instructionsStep4Fragment2' />\n </SettingsOrderedListItem>\n\n <a\n href={ArticleHelper.getLiteArticle(LiteSupportArticle.ViviIntegration)}\n target='_blank'\n className='text-info'\n >\n <Text namespace={namespace} phrase='learnMore' />\n </a>\n </div>\n <div className='rounded-3 px-4 py-3 mt-3 border text-dark text-start'>\n <div className='d-flex flex-row'>\n <div className='flex-grow-1'>\n <h3 className='h6 mb-2'>\n <Text namespace={namespace} phrase='studentCastingHeading' />\n </h3>\n <p className='mb-0'>\n <Text namespace={namespace} phrase='studentCastingInfo' />\n </p>\n </div>\n <div className='ms-3'>\n <ToggleSwitch\n onClick={() => {\n onToggleStudentCasting();\n }}\n on={studentCastingEnabled}\n disabled={false}\n />\n </div>\n </div>\n </div>\n </div>\n </div>\n </>\n );\n}\n","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { PopupViewProps } from 'libs/shared/interfaces';\n\nconst namespace = 'settings.viviSettings.disconnectPopup';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface ViviSettingsDisconnectPopupProps extends PopupViewProps {\n showSpinner: boolean;\n onClickConfirm: () => void;\n}\n\nexport function ViviSettingsDisconnectPopup(props: ViviSettingsDisconnectPopupProps): JSX.Element {\n const { showSpinner, onClickConfirm } = props;\n\n return (\n <Popup title={getPhrase('disconnectPopupTitle')} closePopup={props.closePopup}>\n <p>\n <Text namespace={namespace} phrase='disconnectPopupWarning' />\n </p>\n\n <p>\n <Text namespace={namespace} phrase='disconnectPopupSubWarning' />\n </p>\n\n <PopupButtons>\n <PopupButtons.Cancel onClick={props.closePopup} />\n <PopupButtons.Submit\n variant='danger'\n text={getPhrase('disconnectPopupConfirmButton')}\n onClick={onClickConfirm}\n showSpinner={showSpinner}\n />\n </PopupButtons>\n </Popup>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"image\":\"XPUBh\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nimport styles from './vivi-settings-connected-state.scss';\n\nconst namespace = 'settings.viviSettings.disconnectedState';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface ViviSettingsDisconnectedStateProps {\n onConnect: () => void;\n onTroubleshoot: () => void;\n}\n\nexport function ViviSettingsDisconnectedState({\n onConnect,\n onTroubleshoot\n}: ViviSettingsDisconnectedStateProps): JSX.Element {\n return (\n <div className='text-center d-flex flex-column align-items-center pt-5'>\n <img className={`${styles.image} img-fluid`} role='presentation' src={ImageUrls.Devices.VIVI_DISCONNECTED} />\n\n <h2 className='h3 mt-3'>\n {getPhrase('disconnectedStateHeading')}\n </h2>\n\n <p className='mb-3 w-50'>\n {getPhrase('disconnectedStateInfo')}\n </p>\n\n <IconButton\n svgName={cvSvgLibrary.NewWindow}\n className='btn btn-dark mb-3'\n onClick={onConnect}\n >\n {getPhrase('connectViviButton')}\n </IconButton>\n\n <a\n onClick={onTroubleshoot}\n className='text-info'\n role='button'\n >\n <Text namespace={namespace} phrase='troubleshootLink' />\n </a>\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"vgMQp\",\"image\":\"cZeWA\",\"heading\":\"ESuYg\",\"button\":\"zFxDC\"};","import React from 'react';\n\nimport styles from './vivi-settings-partial-loaded-state.scss';\n\nexport function ViviSettingsPartialLoadingState(): JSX.Element {\n return (\n <div className={`${styles.container} pt-5`}>\n <div className={`${styles.image} partial-loading-background mb-2 rounded`} />\n <div className={`${styles.heading} partial-loading-background mb-2 rounded`} />\n <div className={`${styles.button} partial-loading-background mb-2 rounded`} />\n </div>\n );\n}","import React from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { LocationUtils } from 'libs/common/backbone/core';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { EntityType, EventVersion, IntegrationsDescriptor, LocationContext, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { IntegrationId } from 'libs/shared/enums/IntegrationId';\nimport { IntegrationStatus } from 'libs/shared/enums/IntegrationStatus';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { SettingKind } from 'libs/shared/enums/SettingKind';\nimport { SettingName } from 'libs/shared/enums/SettingName';\nimport { LiteSupportArticle } from 'libs/shared/enums/SupportArticle';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { PlayerIntegrationsRequests } from 'libs/shared/flight-requests/PlayerIntegrationsRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { Config, CurrentUser } from 'libs/shared/interfaces';\nimport { ViviSettingsViewQueryParams } from 'libs/shared/interfaces/query-params/ViviSettingsViewQueryParams';\nimport { ArticleHelper } from 'libs/shared/utils/ArticleHelper';\n\nimport { SettingsLayout } from 'apps/settings/components/settings-layout/SettingsLayout';\n\nimport { ViviSettingsConnectedState } from './connected-state/ViviSettingsConnectedState';\nimport { ViviSettingsDisconnectPopup } from './disconnect-popup/ViviSettingsDisconnectPopup';\nimport { ViviSettingsDisconnectedState } from './disconnected-state/ViviSettingsDisconnectedState';\nimport { ViviSettingsPartialLoadingState } from './partial-loading-state/VIviSettingsPartialLoadingState';\n\n// Don't alter the Vivi constants below without consulting with Cam or Boris\nconst VIVI_CONNECT_ENDPOINT = 'vivi/connect';\nconst VIVI_OAUTH_RETURN_URL_PATH = 'settings/integrations/vivi';\n\nconst namespace = 'settings.viviSettings';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface ViviSettingsViewProps {\n queryParams?: ViviSettingsViewQueryParams;\n}\n\nexport function ViviSettingsView({ queryParams }: ViviSettingsViewProps): JSX.Element {\n const [ showDisconnectPopup, setShowDisconnectPopup ] = React.useState(false);\n const [ showSpinner, setShowSpinner ] = React.useState(false);\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const viviStatus = Flight.useBasicFetch<IntegrationStatus>(\n currentUser.data?.isAuthenticated && PlayerIntegrationsRequests.getViviIntegrationStatus()\n );\n const {\n hasEnabledViviPlayback,\n hasEnabledViviStudentCasting,\n isLoadingSettings,\n updateSetting\n } = useSettings(LocationContext.Settings);\n const alerts = useAlerts();\n const dispatch = useDispatch();\n\n const isLoadingUser = currentUser.isFetching;\n const isLoadingStatus = viviStatus.isFetching;\n const isConnected = !isLoadingStatus && viviStatus.data === IntegrationStatus.Connected;\n const requiresConnection = !isLoadingStatus && !isConnected;\n\n /*\n * This effect will try to enable the Vivi playback setting domain option \n * when (and if) the OAuth flow successfully completes. It does not enable the domain \n * setting if the user just navigates to the Vivi settings page via normal browsing.\n */\n React.useEffect(() => {\n // Ensure all data has been loaded\n if (isLoadingUser || isLoadingStatus || isLoadingSettings) return;\n\n // Ensure we have just returned from a successful OAuth flow\n if (queryParams?.success !== 'true') return;\n\n // Ensure the integration's status is connected\n if (viviStatus.data !== IntegrationStatus.Connected) return;\n\n // Ensure the domain option is not already enabled (avoid unnecessary API calls)\n if (hasEnabledViviPlayback) return;\n\n const viviPlaybackSetting = {\n name: SettingName.HasEnabledViviPlayback,\n value: true,\n kind: SettingKind.Temporary\n };\n\n const onSuccess = () => alerts.success(getPhrase('enableViviSuccess'));\n const onError = () => alerts.error(getPhrase('enableViviError'));\n\n updateSetting(currentUser.data?.customerId, viviPlaybackSetting, onSuccess, onError);\n }, [ isLoadingUser, isLoadingStatus, isLoadingSettings ]);\n\n /**\n * This function will kick-off the Vivi OAuth flow. It will redirect the user to the Vivi login page.\n * After the user has logged in, they will be redirected back to the Lite app.\n */\n function connectToVivi(): void {\n if (config.isFetching) return;\n \n const connectEndpoint = UrlHelper.safeUrlConcat(config.data.integrationsApiUrl ?? '', VIVI_CONNECT_ENDPOINT);\n const returnUrl = UrlHelper.safeUrlConcat(location.origin, VIVI_OAUTH_RETURN_URL_PATH);\n const connectUrl = UrlHelper.urlBuilder(connectEndpoint, { returnUrl });\n \n location.href = connectUrl;\n }\n\n async function disconnectVivi(): Promise<void> {\n if (!currentUser.data.isAuthenticated)\n return;\n\n try {\n setShowSpinner(true);\n await Flight.fetchAsync(dispatch, PlayerIntegrationsRequests.disconnectViviAccount());\n setShowDisconnectPopup(false);\n \n alerts.success(getPhrase('disconnectPopupSuccessMessage'));\n } catch (e) {\n console.error(e);\n alerts.error(getPhrase('disconnectPopupErrorMessage'));\n } finally {\n setShowSpinner(false);\n }\n }\n\n function openTroubleshootingArticle(): void {\n AnalyticsHelper.logUserAction({\n id: IntegrationId.Vivi,\n status: viviStatus.data\n }, {\n entity: EntityType.Integration,\n actionType: UserAction.Click,\n workflowPhase: WorkflowPhase.Complete,\n location: LocationContext.Settings,\n descriptor: IntegrationsDescriptor.Troubleshoot,\n eventVersion: EventVersion.V1\n });\n\n LocationUtils.PageLoad(`${ArticleHelper.getLiteArticle(LiteSupportArticle.ViviIntegration)}#troubleshooting`, true);\n }\n\n function toggleViviStudentCasting(): void {\n const enable = !hasEnabledViviStudentCasting;\n const successPhraseKey = enable ? 'enableStudentCastingSuccess' : 'disableStudentCastingSuccess';\n const errorPhraseKey = enable ? 'enableStudentCastingError' : 'disableStudentCastingError';\n\n const viviStudentCastingSetting = {\n name: SettingName.HasEnabledViviStudentCasting,\n value: enable,\n kind: SettingKind.Temporary\n };\n\n const onSuccess = () => alerts.success(getPhrase(successPhraseKey));\n const onError = () => alerts.error(getPhrase(errorPhraseKey));\n\n updateSetting(currentUser.data?.customerId, viviStudentCastingSetting, onSuccess, onError);\n }\n\n return (\n <SettingsLayout\n heading={getPhrase('heading')}\n breadcrumbs={[getPhrase('heading')]}\n requiredPermissions={PermissionName.ManageIntegrations}\n >\n { showDisconnectPopup &&\n <ViviSettingsDisconnectPopup\n showSpinner={showSpinner}\n onClickConfirm={disconnectVivi}\n closePopup={() => setShowDisconnectPopup(false)}\n /> }\n { isLoadingStatus && <ViviSettingsPartialLoadingState /> }\n { isConnected &&\n <ViviSettingsConnectedState\n studentCastingEnabled={hasEnabledViviStudentCasting}\n onDisconnect={() => setShowDisconnectPopup(true)}\n onToggleStudentCasting={toggleViviStudentCasting}\n /> }\n { requiresConnection &&\n <ViviSettingsDisconnectedState\n onConnect={connectToVivi}\n onTroubleshoot={openTroubleshootingArticle}\n /> }\n </SettingsLayout>\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","IntegrationId","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","SettingsOrderedListItem","number","ViviSettingsConnectedState","studentCastingEnabled","onDisconnect","onToggleStudentCasting","role","src","ImageUrls","Text","phrase","IconButton","SvgContainer","href","ArticleHelper","target","ToggleSwitch","on","disabled","LanguageService","ViviSettingsDisconnectPopup","showSpinner","onClickConfirm","Popup","closePopup","PopupButtons","variant","text","ViviSettingsDisconnectedState","onConnect","onTroubleshoot","ViviSettingsPartialLoadingState","VIVI_CONNECT_ENDPOINT","VIVI_OAUTH_RETURN_URL_PATH","ViviSettingsView","queryParams","showDisconnectPopup","setShowDisconnectPopup","setShowSpinner","currentUser","UserRequests","config","ConfigRequests","viviStatus","data","isAuthenticated","PlayerIntegrationsRequests","useSettings","hasEnabledViviPlayback","hasEnabledViviStudentCasting","isLoadingSettings","updateSetting","alerts","dispatch","isLoadingUser","isFetching","isLoadingStatus","isConnected","IntegrationStatus","I","requiresConnection","success","viviPlaybackSetting","SettingName","value","kind","SettingKind","customerId","error","PermissionName","console","enable","successPhraseKey","errorPhraseKey","viviStudentCastingSetting","connectEndpoint","UrlHelper","integrationsApiUrl","returnUrl","location","origin","connectUrl","AnalyticsHelper","id","status","entity","actionType","workflowPhase","descriptor","eventVersion"],"sourceRoot":""}