@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([[1340],{99705:(e,t,a)=>{var n,r;a.d(t,{b:()=>r}),function(e){e.AddToPlaylist="115005679748",e.EditSsoAccounts="8202508040345",e.LibraryEditor="360001974533",e.VideoAccess="360000153947",e.AddFromOnline="360011718234",e.UploadToLibraryEditor="360012069334",e.PBTErrorCodes="360012421153",e.ManuelReview="360020004534",e.LibraryReview="360000163788"}(n||(n={})),function(e){e.Integrations="4407268725529",e.Classrooms="4405362551833",e.MakeInteractive="4405370510873",e.EditSsoAccounts="8202605666073",e.UploadToLibraryEditor="10672936659865",e.AddFromLite="10671345281561",e.ManageSsoYearGroups="14691130889241",e.ContentReview="18525199576601",e.ContentPermissions="14692125209497",e.AccessSettings="22110291468057",e.ContentGuidelines="24133696186009",e.FoxtelFaq="24133519542169",e.ViviIntegration="23826297956377",e.AppleTvIntegration="25832373739929",e.RssFeed="32567445635097",e.ManageGroupPermissions="35407217335705"}(r||(r={}))},11340:(e,t,a)=>{a.r(t),a.d(t,{SsoAddUserConfirmView:()=>S});var n=a(32735),r=a(81886),s=a(23481),i=a(49985),o=a(65858),c=a(9111),l=a(13876),u=a(83345),d=a(99705),m=a(76881),p=a(12778),g=a(99742),f=a(18087);const C={image:"NVCzP"};var E="userManager.ssoAddUsersConfirm",k=s.T.encloseNamespace(E);function S(e){var t=(0,f.Y)(e.userType),a=o.LZ[e.userType===m.Y.Learner?"StudentManager":"StaffManager"],s=e.userType===m.Y.Learner;return n.createElement(c.G,{size:"md",title:k(s?"titleStudents":"titleStaff"),closePopup:e.closePopup,bodyClassName:"text-center"},n.createElement(n.Fragment,null,n.createElement("img",{src:g.W.UserManager.SSO_WARNING,className:"".concat(C.image," img-fluid my-3"),draggable:!1}),n.createElement("h1",{className:"h4"},n.createElement(u.x,{namespace:E,phrase:s?"ssoWarningCreateStudentTitle":"ssoWarningCreateStaffTitle"})),n.createElement("p",null,n.createElement(u.x,{namespace:E,phrase:s?"ssoWarningCreateStudent":"ssoWarningCreateStaff"})),n.createElement("a",{className:"info-link d-block mb-3",href:p.o.getLiteArticle(d.b.EditSsoAccounts),target:"_blank"},n.createElement(u.x,{namespace:E,phrase:"kbArticleCreate"})),n.createElement(l.u,null,n.createElement(l.u.Cancel,{onClick:function(){i.k.logUserAction({},{workflowPhase:o.eu.Discard,actionType:o.Vw.Create,entity:o.py.User,location:a}),e.closePopup()},text:k("cancel")}),n.createElement(l.u.Submit,{variant:"dark",onClick:function(){i.k.logUserAction({},{workflowPhase:o.eu.Next,actionType:o.Vw.Create,entity:o.py.User,location:a}),r.Q.C$.trigger(t.addNewUsers)},text:k("continue")}))))}}}]);
2
- //# sourceMappingURL=1340-3f5e7d4623-lite.chunk.js.map
1
+ "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[1340],{99705:(e,t,a)=>{var n,r;a.d(t,{b:()=>r}),function(e){e.AddToPlaylist="115005679748",e.EditSsoAccounts="8202508040345",e.LibraryEditor="360001974533",e.VideoAccess="360000153947",e.AddFromOnline="360011718234",e.UploadToLibraryEditor="360012069334",e.PBTErrorCodes="360012421153",e.ManuelReview="360020004534",e.LibraryReview="360000163788"}(n||(n={})),function(e){e.Integrations="4407268725529",e.Classrooms="4405362551833",e.MakeInteractive="4405370510873",e.EditSsoAccounts="8202605666073",e.UploadToLibraryEditor="10672936659865",e.AddFromLite="10671345281561",e.ManageSsoYearGroups="14691130889241",e.ContentReview="18525199576601",e.ContentPermissions="14692125209497",e.AccessSettings="27927466562201",e.ContentGuidelines="24133696186009",e.FoxtelFaq="24133519542169",e.ViviIntegration="23826297956377",e.AppleTvIntegration="25832373739929",e.RssFeed="32567445635097",e.ManageGroupPermissions="35407217335705"}(r||(r={}))},11340:(e,t,a)=>{a.r(t),a.d(t,{SsoAddUserConfirmView:()=>S});var n=a(32735),r=a(81886),s=a(23481),i=a(49985),o=a(65858),c=a(9111),l=a(13876),u=a(83345),d=a(99705),m=a(76881),p=a(12778),g=a(99742),f=a(18087);const C={image:"NVCzP"};var E="userManager.ssoAddUsersConfirm",k=s.T.encloseNamespace(E);function S(e){var t=(0,f.Y)(e.userType),a=o.LZ[e.userType===m.Y.Learner?"StudentManager":"StaffManager"],s=e.userType===m.Y.Learner;return n.createElement(c.G,{size:"md",title:k(s?"titleStudents":"titleStaff"),closePopup:e.closePopup,bodyClassName:"text-center"},n.createElement(n.Fragment,null,n.createElement("img",{src:g.W.UserManager.SSO_WARNING,className:"".concat(C.image," img-fluid my-3"),draggable:!1}),n.createElement("h1",{className:"h4"},n.createElement(u.x,{namespace:E,phrase:s?"ssoWarningCreateStudentTitle":"ssoWarningCreateStaffTitle"})),n.createElement("p",null,n.createElement(u.x,{namespace:E,phrase:s?"ssoWarningCreateStudent":"ssoWarningCreateStaff"})),n.createElement("a",{className:"info-link d-block mb-3",href:p.o.getLiteArticle(d.b.EditSsoAccounts),target:"_blank"},n.createElement(u.x,{namespace:E,phrase:"kbArticleCreate"})),n.createElement(l.u,null,n.createElement(l.u.Cancel,{onClick:function(){i.k.logUserAction({},{workflowPhase:o.eu.Discard,actionType:o.Vw.Create,entity:o.py.User,location:a}),e.closePopup()},text:k("cancel")}),n.createElement(l.u.Submit,{variant:"dark",onClick:function(){i.k.logUserAction({},{workflowPhase:o.eu.Next,actionType:o.Vw.Create,entity:o.py.User,location:a}),r.Q.C$.trigger(t.addNewUsers)},text:k("continue")}))))}}}]);
2
+ //# sourceMappingURL=1340-c78a7acd0d-lite.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scripts/1340-3f5e7d4623-lite.chunk.js","mappings":"mHAEA,IAAYA,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,gNCf9B,SAAgB,MAAQ,SCqBxB,IAAMC,EAAY,iCACZC,EAAYC,EAAA,mBAAiCF,GAM7C,SAAUG,EAAsBC,GACpC,IAAMC,GAAW,OAAuBD,EAAME,UACxCC,EAAoB,KAAgBH,EAAME,WAAaE,EAAA,UAAoB,iBAAmB,gBAwB9FC,EAAYL,EAAME,WAAaE,EAAA,UAErC,OAEE,gBAACE,EAAA,EAAK,CACJC,KAAK,KACLC,MAAmBX,EAAZQ,EAAsB,gBAA6B,cAC1DI,WAAYT,EAAMS,WAClBC,cAAc,eAEd,gCACE,uBAAKC,IAAKC,EAAA,0BAAmCC,UAAS,UAAK,QAAY,mBAAmBC,WAAW,IAErG,sBAAID,UAAU,MACZ,gBAACE,EAAA,EAAI,CAACnB,UAAWA,EAAWoB,OAAQX,EAAY,+BAAiC,gCAEnF,yBACE,gBAACU,EAAA,EAAI,CAACnB,UAAWA,EAAWoB,OAAQX,EAAY,0BAA4B,2BAG9E,qBACEQ,UAAU,yBACVI,KAAMC,EAAA,iBAA6B,qBACnCC,OAAO,UAEP,gBAACJ,EAAA,EAAI,CAACnB,UAAWA,EAAWoB,OAAO,qBAGrC,gBAACI,EAAA,EAAY,KACX,gBAACA,EAAA,SAAmB,CAACC,QAvC7B,WACEC,EAAA,gBAA8B,CAAC,EAAG,CAChCC,cAAe,aACfC,WAAa,YACbC,OAAQ,UACRC,SAAUvB,IAEZH,EAAMS,YACR,EA+BoDkB,KAAM9B,EAAU,YAC5D,gBAACuB,EAAA,SAAmB,CAACQ,QAAQ,OAAOP,QApD5C,WACEC,EAAA,gBAA8B,CAAC,EAAG,CAChCC,cAAe,UACfC,WAAa,YACbC,OAAQ,UACRC,SAAUvB,IAGZ,eAA2BF,EAAS4B,YAEtC,EA0CsEF,KAAM9B,EAAU,gBAKxF,C","sources":["file:///app/packages/libs/shared/src/enums/SupportArticle.ts","file:///app/packages/projects/lite/src/apps/user-manager/views/sso-add-user-confirm/sso-add-user.scss","file:///app/packages/projects/lite/src/apps/user-manager/views/sso-add-user-confirm/SsoAddUserConfirmView.tsx"],"sourcesContent":["// 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 {\"image\":\"NVCzP\"};","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { EntityType, LocationContext, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\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 { LiteSupportArticle } from 'libs/shared/enums/SupportArticle';\nimport { UserGroup } from 'libs/shared/enums/UserGroup';\nimport { PropsWithPopupViewProps } from 'libs/shared/interfaces';\nimport { ArticleHelper } from 'libs/shared/utils/ArticleHelper';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nimport { getUserManagerAppLinks } from 'apps/user-manager/utils/LiteUserManagerAppLinks';\n\nimport styles from './sso-add-user.scss';\n\nconst namespace = 'userManager.ssoAddUsersConfirm';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface SsoAddUserConfirmViewProps {\n userType: UserGroup;\n}\n\nexport function SsoAddUserConfirmView(props: PropsWithPopupViewProps<SsoAddUserConfirmViewProps>): JSX.Element {\n const appLinks = getUserManagerAppLinks(props.userType);\n const analyticsLocation = LocationContext[props.userType === UserGroup.Learner ? 'StudentManager' : 'StaffManager'];\n\n function onClickContinue(): void {\n AnalyticsHelper.logUserAction({}, {\n workflowPhase: WorkflowPhase.Next,\n actionType: UserAction.Create,\n entity: EntityType.User,\n location: analyticsLocation\n });\n\n Core.AppLinkHelper.trigger(appLinks.addNewUsers);\n return;\n }\n\n function onClickClose(): void {\n AnalyticsHelper.logUserAction({}, {\n workflowPhase: WorkflowPhase.Discard,\n actionType: UserAction.Create,\n entity: EntityType.User,\n location: analyticsLocation\n });\n props.closePopup();\n }\n\n const isLearner = props.userType === UserGroup.Learner;\n\n return (\n\n <Popup\n size='md'\n title={isLearner ? getPhrase('titleStudents') : getPhrase('titleStaff')}\n closePopup={props.closePopup}\n bodyClassName='text-center'\n >\n <>\n <img src={ImageUrls.UserManager.SSO_WARNING} className={`${styles.image} img-fluid my-3`} draggable={false} />\n\n <h1 className='h4'>\n <Text namespace={namespace} phrase={isLearner ? 'ssoWarningCreateStudentTitle' : 'ssoWarningCreateStaffTitle'}></Text>\n </h1>\n <p>\n <Text namespace={namespace} phrase={isLearner ? 'ssoWarningCreateStudent' : 'ssoWarningCreateStaff'}></Text>\n </p>\n\n <a\n className='info-link d-block mb-3'\n href={ArticleHelper.getLiteArticle(LiteSupportArticle.EditSsoAccounts)}\n target='_blank'\n >\n <Text namespace={namespace} phrase='kbArticleCreate' />\n </a>\n \n <PopupButtons>\n <PopupButtons.Cancel onClick={onClickClose} text={getPhrase('cancel')} />\n <PopupButtons.Submit variant='dark' onClick={onClickContinue} text={getPhrase('continue')} />\n </PopupButtons>\n </>\n </Popup>\n );\n}"],"names":["OnlineSupportArticle","LiteSupportArticle","namespace","getPhrase","LanguageService","SsoAddUserConfirmView","props","appLinks","userType","analyticsLocation","UserGroup","isLearner","Popup","size","title","closePopup","bodyClassName","src","ImageUrls","className","draggable","Text","phrase","href","ArticleHelper","target","PopupButtons","onClick","AnalyticsHelper","workflowPhase","actionType","entity","location","text","variant","addNewUsers"],"sourceRoot":""}
1
+ {"version":3,"file":"scripts/1340-c78a7acd0d-lite.chunk.js","mappings":"mHAEA,IAAYA,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,gNCf9B,SAAgB,MAAQ,SCqBxB,IAAMC,EAAY,iCACZC,EAAYC,EAAA,mBAAiCF,GAM7C,SAAUG,EAAsBC,GACpC,IAAMC,GAAW,OAAuBD,EAAME,UACxCC,EAAoB,KAAgBH,EAAME,WAAaE,EAAA,UAAoB,iBAAmB,gBAwB9FC,EAAYL,EAAME,WAAaE,EAAA,UAErC,OAEE,gBAACE,EAAA,EAAK,CACJC,KAAK,KACLC,MAAmBX,EAAZQ,EAAsB,gBAA6B,cAC1DI,WAAYT,EAAMS,WAClBC,cAAc,eAEd,gCACE,uBAAKC,IAAKC,EAAA,0BAAmCC,UAAS,UAAK,QAAY,mBAAmBC,WAAW,IAErG,sBAAID,UAAU,MACZ,gBAACE,EAAA,EAAI,CAACnB,UAAWA,EAAWoB,OAAQX,EAAY,+BAAiC,gCAEnF,yBACE,gBAACU,EAAA,EAAI,CAACnB,UAAWA,EAAWoB,OAAQX,EAAY,0BAA4B,2BAG9E,qBACEQ,UAAU,yBACVI,KAAMC,EAAA,iBAA6B,qBACnCC,OAAO,UAEP,gBAACJ,EAAA,EAAI,CAACnB,UAAWA,EAAWoB,OAAO,qBAGrC,gBAACI,EAAA,EAAY,KACX,gBAACA,EAAA,SAAmB,CAACC,QAvC7B,WACEC,EAAA,gBAA8B,CAAC,EAAG,CAChCC,cAAe,aACfC,WAAa,YACbC,OAAQ,UACRC,SAAUvB,IAEZH,EAAMS,YACR,EA+BoDkB,KAAM9B,EAAU,YAC5D,gBAACuB,EAAA,SAAmB,CAACQ,QAAQ,OAAOP,QApD5C,WACEC,EAAA,gBAA8B,CAAC,EAAG,CAChCC,cAAe,UACfC,WAAa,YACbC,OAAQ,UACRC,SAAUvB,IAGZ,eAA2BF,EAAS4B,YAEtC,EA0CsEF,KAAM9B,EAAU,gBAKxF,C","sources":["file:///app/packages/libs/shared/src/enums/SupportArticle.ts","file:///app/packages/projects/lite/src/apps/user-manager/views/sso-add-user-confirm/sso-add-user.scss","file:///app/packages/projects/lite/src/apps/user-manager/views/sso-add-user-confirm/SsoAddUserConfirmView.tsx"],"sourcesContent":["// 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 {\"image\":\"NVCzP\"};","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { EntityType, LocationContext, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\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 { LiteSupportArticle } from 'libs/shared/enums/SupportArticle';\nimport { UserGroup } from 'libs/shared/enums/UserGroup';\nimport { PropsWithPopupViewProps } from 'libs/shared/interfaces';\nimport { ArticleHelper } from 'libs/shared/utils/ArticleHelper';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nimport { getUserManagerAppLinks } from 'apps/user-manager/utils/LiteUserManagerAppLinks';\n\nimport styles from './sso-add-user.scss';\n\nconst namespace = 'userManager.ssoAddUsersConfirm';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface SsoAddUserConfirmViewProps {\n userType: UserGroup;\n}\n\nexport function SsoAddUserConfirmView(props: PropsWithPopupViewProps<SsoAddUserConfirmViewProps>): JSX.Element {\n const appLinks = getUserManagerAppLinks(props.userType);\n const analyticsLocation = LocationContext[props.userType === UserGroup.Learner ? 'StudentManager' : 'StaffManager'];\n\n function onClickContinue(): void {\n AnalyticsHelper.logUserAction({}, {\n workflowPhase: WorkflowPhase.Next,\n actionType: UserAction.Create,\n entity: EntityType.User,\n location: analyticsLocation\n });\n\n Core.AppLinkHelper.trigger(appLinks.addNewUsers);\n return;\n }\n\n function onClickClose(): void {\n AnalyticsHelper.logUserAction({}, {\n workflowPhase: WorkflowPhase.Discard,\n actionType: UserAction.Create,\n entity: EntityType.User,\n location: analyticsLocation\n });\n props.closePopup();\n }\n\n const isLearner = props.userType === UserGroup.Learner;\n\n return (\n\n <Popup\n size='md'\n title={isLearner ? getPhrase('titleStudents') : getPhrase('titleStaff')}\n closePopup={props.closePopup}\n bodyClassName='text-center'\n >\n <>\n <img src={ImageUrls.UserManager.SSO_WARNING} className={`${styles.image} img-fluid my-3`} draggable={false} />\n\n <h1 className='h4'>\n <Text namespace={namespace} phrase={isLearner ? 'ssoWarningCreateStudentTitle' : 'ssoWarningCreateStaffTitle'}></Text>\n </h1>\n <p>\n <Text namespace={namespace} phrase={isLearner ? 'ssoWarningCreateStudent' : 'ssoWarningCreateStaff'}></Text>\n </p>\n\n <a\n className='info-link d-block mb-3'\n href={ArticleHelper.getLiteArticle(LiteSupportArticle.EditSsoAccounts)}\n target='_blank'\n >\n <Text namespace={namespace} phrase='kbArticleCreate' />\n </a>\n \n <PopupButtons>\n <PopupButtons.Cancel onClick={onClickClose} text={getPhrase('cancel')} />\n <PopupButtons.Submit variant='dark' onClick={onClickContinue} text={getPhrase('continue')} />\n </PopupButtons>\n </>\n </Popup>\n );\n}"],"names":["OnlineSupportArticle","LiteSupportArticle","namespace","getPhrase","LanguageService","SsoAddUserConfirmView","props","appLinks","userType","analyticsLocation","UserGroup","isLearner","Popup","size","title","closePopup","bodyClassName","src","ImageUrls","className","draggable","Text","phrase","href","ArticleHelper","target","PopupButtons","onClick","AnalyticsHelper","workflowPhase","actionType","entity","location","text","variant","addNewUsers"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
- "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[154],{49935:(e,t,n)=>{n.d(t,{Oo:()=>f,b2:()=>v});var a=n(32735),r=n(23481),i=n(36848),c=n(86764),l=n(3747),o=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 a,r,i,c,l=[],o=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;o=!1}else for(;!(o=(a=i.call(n)).done)&&(l.push(a.value),l.length!==t);o=!0);}catch(e){s=!0,r=e}finally{try{if(!o&&null!=n.return&&(c=n.return(),Object(c)!==c))return}finally{if(s)throw r}}return l}}(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,a=Array(t);n<t;n++)a[n]=e[n];return a}var b=r.T.encloseNamespace("shared.breadcrumbComponent"),p=a.forwardRef((function(e,t){var n=e.breadcrumb,r=n.name,c=n.appLink,l=n.active,o=e.withBackIcon,m=r,d=null;return m.length>48&&(m=r.slice(0,48)+"...",d=r),a.createElement("li",{className:"breadcrumb-item".concat(l?" active":""),title:d},l?a.createElement("strong",null,m):a.createElement(i.F,{appLink:c,ref:t},o&&a.createElement(u.x,{svgName:s.vn.ChevronLeft,size:u.S.Small}),a.createElement("span",{className:o?"ms-2":""},m)))})),f=function(e){var t=e.breadcrumbs,n=(0,l.a)(c.r.XS),r=(null==t?void 0:t.length)||0,i=m(a.useState(!1),2),o=i[0],s=i[1],u=m(a.useState(!1),2),d=u[0],f=u[1],v=a.useRef();if(a.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;r>4&&n>64&&s(!0)}),[null==t?void 0:t.length]),a.useLayoutEffect((function(){var e;d&&(null===(e=v.current)||void 0===e||e.focus())}),[v.current,d]),!r||n&&r<2)return a.createElement(a.Fragment,null);if(n)return a.createElement("nav",{"aria-label":"breadcrumb"},a.createElement("ol",{className:"breadcrumb m-0 p-0"},a.createElement(p,{breadcrumb:t[r-2],withBackIcon:!0})));var g=a.createElement(p,{breadcrumb:t[0]}),y=r>2?a.createElement(p,{breadcrumb:t[1]}):a.createElement(a.Fragment,null),E=r>3?a.createElement(p,{breadcrumb:t[r-2]}):a.createElement(a.Fragment,null),S=r>1?a.createElement(p,{breadcrumb:t[r-1]}):a.createElement(a.Fragment,null),h=t.slice(2,r-2);return a.createElement("nav",{"aria-label":"breadcrumb"},a.createElement("ol",{className:"breadcrumb m-0 p-0"},g,y,o?a.createElement("li",{className:"breadcrumb-item"},a.createElement("button",{className:"btn-link",onClick:function(){s(!1),f(!0)},"aria-label":b("expand")},"...")):h.map((function(e,t){return a.createElement(p,{key:t,breadcrumb:e,ref:0===t?v:null})})),E,S))},v=a.memo((function(e){var t=e.numItems,n=void 0===t?3:t;return(0,l.a)(c.r.XS)?a.createElement("div",{className:"partial-loading-background",style:{height:"1.3125rem",width:"6rem"}}):a.createElement("nav",{"aria-label":"breadcrumb"},a.createElement("ol",{className:"breadcrumb m-0 p-0"},o.u.getPartialLoadingItems({numItems:n}).map((function(e,t){var n=e.width;return a.createElement("li",{key:t,className:"breadcrumb-item"},a.createElement("span",{className:"d-inline-block partial-loading-background",style:{width:n},dangerouslySetInnerHTML:{__html:"&nbsp"}}))}))))}))},38502:(e,t,n)=>{n.d(t,{r:()=>m});var a=n(32735),r=n(49985),i=n(36848),c=n(18559),l=n(11607),o=n(83914),s=n(87432);function u(e){return a.createElement(a.Fragment,null,!!e.tab.svgName&&a.createElement("div",{className:e.tab.name?"pe-1":""},a.createElement(o.x,{svgName:e.tab.svgName})),e.tab.name,"number"==typeof e.tab.count&&a.createElement("div",{className:"ps-2"},a.createElement(c.C,{type:c.g.Count,data:e.tab.count})))}function m(e){var t;return a.createElement("nav",{className:null!==(t=e.className)&&void 0!==t?t:"",ref:e.containerRef},a.createElement("ul",{className:"\n list-unstyled d-inline-block m-0 ".concat(s.Z.pillTabSelector,"\n ").concat(e.borderRadius?s.Z.radiusSmall:"","\n ").concat(e.listClassName,"\n ")},e.tabs.map((function(e,t){return a.createElement("li",{className:"\n p-0 ".concat(s.Z.tab," ").concat(e.active?"btn btn-dark":"btn btn-outline-dark","\n ").concat(e.name?s.Z.minWidth:""," ").concat(e.className,"\n "),key:t},e.appLink?a.createElement(i.F,{appLink:e.appLink,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,className:"\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ".concat(s.Z.tabLink,"\n ")},a.createElement(u,{tab:e})):a.createElement(l.L,{className:"\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ".concat(s.Z.tabLink,"\n "),onClick:function(){return function(e){!e.active&&e.onSelect&&(e.onSelect(),e.analyticsData&&e.analyticsOptions&&r.k.logUserAction(e.analyticsData,e.analyticsOptions))}(e)}},a.createElement(u,{tab:e})))}))))}m.defaultProps={borderRadius:"lg"}},99705:(e,t,n)=>{var a,r;n.d(t,{b:()=>r}),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"}(a||(a={})),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"}(r||(r={}))},5859:(e,t,n)=>{function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}n.d(t,{u:()=>i});var r={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({},r),t);return(e=Array(n.numItems),function(e){if(Array.isArray(e))return a(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return a(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?a(e,t):void 0}}(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")}}))}}},23224:(e,t,n)=>{n.d(t,{j:()=>b});var a=n(32735),r=n(39202),i=n(23481),c=n(65858),l=n(38502),o=n(14070),s=n(97291),u="settings.restrictedVideosTabs",m=i.T.encloseNamespace(u),d={restrictedVideos:{application:s.O.SETTINGS,action:o.e.Settings.VIDEO_RESTRICTIONS},contentReview:{application:s.O.SETTINGS,action:o.e.Settings.CONTENT_REVIEW},contentReviewSettings:{application:s.O.SETTINGS,action:o.e.Settings.CONTENT_REVIEW_SETTINGS}};function b(e){return a.createElement("div",{className:"mb-3"},a.createElement(l.r,{tabs:[{name:m("restrictedVideos"),appLink:d.restrictedVideos,active:"restricted-videos"===e.active,analyticsData:{name:m("restrictedVideos"),url:r.C$.getHref(d.restrictedVideos)},analyticsOptions:{actionType:c.Vw.Click,entity:c.py.Url,location:c.LZ.MagicTabs}},{name:m("contentReview"),appLink:d.contentReview,active:"content-review"===e.active,analyticsData:{name:i.T.getPhrase(u,"contentReview"),url:r.C$.getHref(d.contentReview)},analyticsOptions:{actionType:c.Vw.Click,entity:c.py.Url,location:c.LZ.MagicTabs}},{name:m("contentReviewSettings"),appLink:d.contentReviewSettings,active:"content-review-settings"===e.active,analyticsData:{name:i.T.getPhrase(u,"contentReviewSettings"),url:r.C$.getHref(d.contentReviewSettings)},analyticsOptions:{actionType:c.Vw.Click,entity:c.py.Url,location:c.LZ.MagicTabs}}]}))}},81803:(e,t,n)=>{n.d(t,{d:()=>p});var a=n(32735),r=n(81886),i=n(23481),c=n(49935),l=n(22902),o=n(14070),s=n(97291),u=n(96368);function m(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var d="settings.settingsLayout",b=function(e){var t=(0,l.T)().hasPermissions,n=(0,u.e)();if(e)return t(e);var a=r.Q.C$.getCurrentAppLink();return a.application!==s.O.SETTINGS||n.some((function(e){return e.modules.some((function(e){return"appLink"in e&&e.appLink.action===a.action}))}))};function p(e){var t,n=b(e.requiredPermissions);if(a.useEffect((function(){n||r.Q.C$.trigger({application:s.O.SETTINGS,action:o.e.Settings.HOME},{replace:!0})}),[n]),!n)return a.createElement(a.Fragment,null);var l,u=e.breadcrumbs.map((function(t,n){return{name:t,appLink:{application:s.O.SETTINGS,action:o.e.Settings.HOME},active:n===e.breadcrumbs.length-1}}));return a.createElement("div",{className:"px-3"},a.createElement("div",{className:"d-flex align-items-center justify-content-between"},a.createElement("h1",{className:"h2"},e.heading),null===(t=e.headingButton)||void 0===t?void 0:t.call(e)),a.createElement("div",{className:"pb-3"},a.createElement(c.Oo,{breadcrumbs:[{name:i.T.getPhrase(d,"settingsBreadcrumb"),appLink:{application:s.O.SETTINGS,action:o.e.Settings.HOME}}].concat((l=u,function(e){if(Array.isArray(e))return m(e)}(l)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(l)||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}}(l)||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&&a.createElement(a.Fragment,null,a.createElement("p",null,e.description),a.createElement("hr",null)),e.children)}},87432:(e,t,n)=>{n.d(t,{Z:()=>a});const a={pillTabSelector:"Hdi6o",tab:"RvNxr",minWidth:"GHSz9",radiusSmall:"VhJJa",tabLink:"WFyvo"}}}]);
2
- //# sourceMappingURL=154-81a4eabaae-lite.chunk.js.map
1
+ "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[154],{49935:(e,t,n)=>{n.d(t,{Oo:()=>f,b2:()=>v});var a=n(32735),r=n(23481),i=n(36848),c=n(86764),l=n(3747),o=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 a,r,i,c,l=[],o=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;o=!1}else for(;!(o=(a=i.call(n)).done)&&(l.push(a.value),l.length!==t);o=!0);}catch(e){s=!0,r=e}finally{try{if(!o&&null!=n.return&&(c=n.return(),Object(c)!==c))return}finally{if(s)throw r}}return l}}(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,a=Array(t);n<t;n++)a[n]=e[n];return a}var b=r.T.encloseNamespace("shared.breadcrumbComponent"),p=a.forwardRef((function(e,t){var n=e.breadcrumb,r=n.name,c=n.appLink,l=n.active,o=e.withBackIcon,m=r,d=null;return m.length>48&&(m=r.slice(0,48)+"...",d=r),a.createElement("li",{className:"breadcrumb-item".concat(l?" active":""),title:d},l?a.createElement("strong",null,m):a.createElement(i.F,{appLink:c,ref:t},o&&a.createElement(u.x,{svgName:s.vn.ChevronLeft,size:u.S.Small}),a.createElement("span",{className:o?"ms-2":""},m)))})),f=function(e){var t=e.breadcrumbs,n=(0,l.a)(c.r.XS),r=(null==t?void 0:t.length)||0,i=m(a.useState(!1),2),o=i[0],s=i[1],u=m(a.useState(!1),2),d=u[0],f=u[1],v=a.useRef();if(a.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;r>4&&n>64&&s(!0)}),[null==t?void 0:t.length]),a.useLayoutEffect((function(){var e;d&&(null===(e=v.current)||void 0===e||e.focus())}),[v.current,d]),!r||n&&r<2)return a.createElement(a.Fragment,null);if(n)return a.createElement("nav",{"aria-label":"breadcrumb"},a.createElement("ol",{className:"breadcrumb m-0 p-0"},a.createElement(p,{breadcrumb:t[r-2],withBackIcon:!0})));var g=a.createElement(p,{breadcrumb:t[0]}),y=r>2?a.createElement(p,{breadcrumb:t[1]}):a.createElement(a.Fragment,null),E=r>3?a.createElement(p,{breadcrumb:t[r-2]}):a.createElement(a.Fragment,null),S=r>1?a.createElement(p,{breadcrumb:t[r-1]}):a.createElement(a.Fragment,null),h=t.slice(2,r-2);return a.createElement("nav",{"aria-label":"breadcrumb"},a.createElement("ol",{className:"breadcrumb m-0 p-0"},g,y,o?a.createElement("li",{className:"breadcrumb-item"},a.createElement("button",{className:"btn-link",onClick:function(){s(!1),f(!0)},"aria-label":b("expand")},"...")):h.map((function(e,t){return a.createElement(p,{key:t,breadcrumb:e,ref:0===t?v:null})})),E,S))},v=a.memo((function(e){var t=e.numItems,n=void 0===t?3:t;return(0,l.a)(c.r.XS)?a.createElement("div",{className:"partial-loading-background",style:{height:"1.3125rem",width:"6rem"}}):a.createElement("nav",{"aria-label":"breadcrumb"},a.createElement("ol",{className:"breadcrumb m-0 p-0"},o.u.getPartialLoadingItems({numItems:n}).map((function(e,t){var n=e.width;return a.createElement("li",{key:t,className:"breadcrumb-item"},a.createElement("span",{className:"d-inline-block partial-loading-background",style:{width:n},dangerouslySetInnerHTML:{__html:"&nbsp"}}))}))))}))},38502:(e,t,n)=>{n.d(t,{r:()=>m});var a=n(32735),r=n(49985),i=n(36848),c=n(18559),l=n(11607),o=n(83914),s=n(87432);function u(e){return a.createElement(a.Fragment,null,!!e.tab.svgName&&a.createElement("div",{className:e.tab.name?"pe-1":""},a.createElement(o.x,{svgName:e.tab.svgName})),e.tab.name,"number"==typeof e.tab.count&&a.createElement("div",{className:"ps-2"},a.createElement(c.C,{type:c.g.Count,data:e.tab.count})))}function m(e){var t;return a.createElement("nav",{className:null!==(t=e.className)&&void 0!==t?t:"",ref:e.containerRef},a.createElement("ul",{className:"\n list-unstyled d-inline-block m-0 ".concat(s.Z.pillTabSelector,"\n ").concat(e.borderRadius?s.Z.radiusSmall:"","\n ").concat(e.listClassName,"\n ")},e.tabs.map((function(e,t){return a.createElement("li",{className:"\n p-0 ".concat(s.Z.tab," ").concat(e.active?"btn btn-dark":"btn btn-outline-dark","\n ").concat(e.name?s.Z.minWidth:""," ").concat(e.className,"\n "),key:t},e.appLink?a.createElement(i.F,{appLink:e.appLink,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,className:"\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ".concat(s.Z.tabLink,"\n ")},a.createElement(u,{tab:e})):a.createElement(l.L,{className:"\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ".concat(s.Z.tabLink,"\n "),onClick:function(){return function(e){!e.active&&e.onSelect&&(e.onSelect(),e.analyticsData&&e.analyticsOptions&&r.k.logUserAction(e.analyticsData,e.analyticsOptions))}(e)}},a.createElement(u,{tab:e})))}))))}m.defaultProps={borderRadius:"lg"}},99705:(e,t,n)=>{var a,r;n.d(t,{b:()=>r}),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"}(a||(a={})),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"}(r||(r={}))},5859:(e,t,n)=>{function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}n.d(t,{u:()=>i});var r={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({},r),t);return(e=Array(n.numItems),function(e){if(Array.isArray(e))return a(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return a(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?a(e,t):void 0}}(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")}}))}}},23224:(e,t,n)=>{n.d(t,{j:()=>b});var a=n(32735),r=n(39202),i=n(23481),c=n(65858),l=n(38502),o=n(14070),s=n(97291),u="settings.restrictedVideosTabs",m=i.T.encloseNamespace(u),d={restrictedVideos:{application:s.O.SETTINGS,action:o.e.Settings.VIDEO_RESTRICTIONS},contentReview:{application:s.O.SETTINGS,action:o.e.Settings.CONTENT_REVIEW},contentReviewSettings:{application:s.O.SETTINGS,action:o.e.Settings.CONTENT_REVIEW_SETTINGS}};function b(e){return a.createElement("div",{className:"mb-3"},a.createElement(l.r,{tabs:[{name:m("restrictedVideos"),appLink:d.restrictedVideos,active:"restricted-videos"===e.active,analyticsData:{name:m("restrictedVideos"),url:r.C$.getHref(d.restrictedVideos)},analyticsOptions:{actionType:c.Vw.Click,entity:c.py.Url,location:c.LZ.MagicTabs}},{name:m("contentReview"),appLink:d.contentReview,active:"content-review"===e.active,analyticsData:{name:i.T.getPhrase(u,"contentReview"),url:r.C$.getHref(d.contentReview)},analyticsOptions:{actionType:c.Vw.Click,entity:c.py.Url,location:c.LZ.MagicTabs}},{name:m("contentReviewSettings"),appLink:d.contentReviewSettings,active:"content-review-settings"===e.active,analyticsData:{name:i.T.getPhrase(u,"contentReviewSettings"),url:r.C$.getHref(d.contentReviewSettings)},analyticsOptions:{actionType:c.Vw.Click,entity:c.py.Url,location:c.LZ.MagicTabs}}]}))}},81803:(e,t,n)=>{n.d(t,{d:()=>p});var a=n(32735),r=n(81886),i=n(23481),c=n(49935),l=n(22902),o=n(14070),s=n(97291),u=n(96368);function m(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var d="settings.settingsLayout",b=function(e){var t=(0,l.T)().hasPermissions,n=(0,u.e)();if(e)return t(e);var a=r.Q.C$.getCurrentAppLink();return a.application!==s.O.SETTINGS||n.some((function(e){return e.modules.some((function(e){return"appLink"in e&&e.appLink.action===a.action}))}))};function p(e){var t,n=b(e.requiredPermissions);if(a.useEffect((function(){n||r.Q.C$.trigger({application:s.O.SETTINGS,action:o.e.Settings.HOME},{replace:!0})}),[n]),!n)return a.createElement(a.Fragment,null);var l,u=e.breadcrumbs.map((function(t,n){return{name:t,appLink:{application:s.O.SETTINGS,action:o.e.Settings.HOME},active:n===e.breadcrumbs.length-1}}));return a.createElement("div",{className:"px-3"},a.createElement("div",{className:"d-flex align-items-center justify-content-between"},a.createElement("h1",{className:"h2"},e.heading),null===(t=e.headingButton)||void 0===t?void 0:t.call(e)),a.createElement("div",{className:"pb-3"},a.createElement(c.Oo,{breadcrumbs:[{name:i.T.getPhrase(d,"settingsBreadcrumb"),appLink:{application:s.O.SETTINGS,action:o.e.Settings.HOME}}].concat((l=u,function(e){if(Array.isArray(e))return m(e)}(l)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(l)||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}}(l)||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&&a.createElement(a.Fragment,null,a.createElement("p",null,e.description),a.createElement("hr",null)),e.children)}},87432:(e,t,n)=>{n.d(t,{Z:()=>a});const a={pillTabSelector:"Hdi6o",tab:"RvNxr",minWidth:"GHSz9",radiusSmall:"VhJJa",tabLink:"WFyvo"}}}]);
2
+ //# sourceMappingURL=154-fa5b45d1bf-lite.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scripts/154-81a4eabaae-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/components/pill-tab-selector/PillTabSelector.tsx","file:///app/packages/libs/shared/src/enums/SupportArticle.ts","file:///app/packages/libs/shared/src/utils/PartialLoadingHelper.ts","file:///app/packages/projects/lite/src/apps/settings/components/restricted-videos-tabs/RestrictedVideosTabs.tsx","file:///app/packages/projects/lite/src/apps/settings/components/settings-layout/SettingsLayout.tsx","file:///app/packages/libs/shared/src/components/pill-tab-selector/pill-tab-selector.scss"],"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});","import React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Badge, BadgeType } from 'libs/shared/components/badges/Badge';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\n\nimport { SvgContainer } from '../svg-container/SvgContainer';\n\nimport styles from './pill-tab-selector.scss';\n\ninterface TabContentsProps {\n tab: PillTab;\n}\n\nfunction TabContents(props: TabContentsProps): JSX.Element {\n return (\n <>\n {!!props.tab.svgName && (\n <div className={props.tab.name ? 'pe-1' : ''}>\n <SvgContainer svgName={props.tab.svgName} />\n </div>\n )}\n\n {props.tab.name}\n\n {typeof (props.tab.count) === 'number' && (\n <div className='ps-2'>\n <Badge type={BadgeType.Count} data={props.tab.count} />\n </div>\n )}\n </>\n );\n}\n\nexport interface PillTab {\n name: string;\n active: boolean;\n svgName?: string;\n\n className?: string;\n\n appLink?: Core.AppLink;\n onSelect?: () => void;\n\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n\n count?: number;\n}\n\ninterface PillTabSelectorProps {\n tabs: PillTab[];\n containerRef?: (el: HTMLElement) => void;\n listClassName?: string;\n className?: string;\n borderRadius?: 'sm' | 'lg'\n}\n\nPillTabSelector.defaultProps = {\n borderRadius: 'lg'\n};\n\nexport function PillTabSelector(props: PillTabSelectorProps): JSX.Element {\n function onSelectTab(tab: PillTab): void {\n if (tab.active || !tab.onSelect)\n return;\n\n tab.onSelect();\n\n if (tab.analyticsData && tab.analyticsOptions)\n AnalyticsHelper.logUserAction(tab.analyticsData, tab.analyticsOptions);\n }\n\n return (\n <nav className={props.className ?? ''} ref={props.containerRef}>\n <ul className={`\n list-unstyled d-inline-block m-0 ${styles.pillTabSelector}\n ${props.borderRadius ? styles.radiusSmall : ''}\n ${props.listClassName}\n `}>\n {props.tabs.map((tab, index) => {\n return (\n <li\n className={`\n p-0 ${styles.tab} ${tab.active ? 'btn btn-dark' : 'btn btn-outline-dark'}\n ${tab.name ? styles.minWidth : ''} ${tab.className}\n `}\n key={index}\n >\n {tab.appLink ? (\n <AppLink\n appLink={tab.appLink}\n analyticsData={tab.analyticsData}\n analyticsOptions={tab.analyticsOptions}\n className={`\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ${styles.tabLink}\n `}\n >\n <TabContents tab={tab} />\n </AppLink>\n ) : (\n <DivButton\n className={`\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ${styles.tabLink}\n `}\n onClick={() => onSelectTab(tab)}\n >\n <TabContents tab={tab} />\n </DivButton>\n )}\n </li>\n );\n })}\n </ul>\n </nav>\n );\n}\n","// Article name mapped to article ID on support site. Used by `ArticleHelper`\n\nexport enum OnlineSupportArticle {\n AddToPlaylist = '115005679748',\n EditSsoAccounts = '8202508040345',\n\n // LE\n LibraryEditor = '360001974533',\n VideoAccess = '360000153947',\n AddFromOnline = '360011718234',\n UploadToLibraryEditor = '360012069334',\n PBTErrorCodes = '360012421153',\n ManuelReview = '360020004534',\n LibraryReview = '360000163788',\n}\n\nexport enum LiteSupportArticle {\n Integrations = '4407268725529',\n Classrooms = '4405362551833',\n MakeInteractive = '4405370510873',\n EditSsoAccounts = '8202605666073',\n UploadToLibraryEditor = '10672936659865',\n AddFromLite = '10671345281561',\n ManageSsoYearGroups = '14691130889241',\n ContentReview = '18525199576601',\n ContentPermissions = '14692125209497',\n AccessSettings = '22110291468057',\n ContentGuidelines = '24133696186009',\n FoxtelFaq = '24133519542169',\n ViviIntegration = '23826297956377',\n AppleTvIntegration = '25832373739929',\n RssFeed = '32567445635097',\n ManageGroupPermissions = '35407217335705'\n}\n","const DEFAULT_PARTIAL_LOADING_OPTIONS: PartialLoadingOptions = {\n numItems: 5,\n minWidth: 50, // px\n maxWidth: 100 // px\n};\n\nexport interface PartialLoadingOptions {\n numItems?: number;\n minWidth?: number;\n maxWidth?: number;\n}\n\ninterface PartialLoadingItem {\n width: string;\n}\n\nexport const PartialLoadingHelper = {\n getPartialLoadingItems(options: PartialLoadingOptions = {}): PartialLoadingItem[] {\n const opts = {\n ...DEFAULT_PARTIAL_LOADING_OPTIONS,\n ...options\n };\n\n const getRandomFilterWidth = () => Math.max(Math.floor(Math.random() * opts.maxWidth), opts.minWidth);\n\n return [...Array(opts.numItems)].map(() => ({ width: `${getRandomFilterWidth()}px` }));\n }\n};","import React from 'react';\n\nimport { AppLinkHelper } from 'libs/common/backbone/core';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EntityType, LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { PillTabSelector } from 'libs/shared/components/pill-tab-selector/PillTabSelector';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nconst namespace = 'settings.restrictedVideosTabs';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst APPLINKS = {\n restrictedVideos: {\n application: AppChannels.SETTINGS,\n action: Actions.Settings.VIDEO_RESTRICTIONS\n },\n contentReview: {\n application: AppChannels.SETTINGS,\n action: Actions.Settings.CONTENT_REVIEW\n },\n contentReviewSettings: {\n application: AppChannels.SETTINGS,\n action: Actions.Settings.CONTENT_REVIEW_SETTINGS\n }\n};\n\ninterface RestrictionTabsProps {\n active: 'restricted-videos' | 'content-review' | 'content-review-settings'\n}\n\nexport function RestrictionTabs(props: RestrictionTabsProps): JSX.Element {\n return (\n <div className='mb-3'>\n <PillTabSelector\n tabs={[{\n name: getPhrase('restrictedVideos'),\n appLink: APPLINKS.restrictedVideos,\n active: props.active === 'restricted-videos',\n analyticsData: {\n name: getPhrase('restrictedVideos'),\n url: AppLinkHelper.getHref(APPLINKS.restrictedVideos)\n },\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Url,\n location: LocationContext.MagicTabs\n }\n }, {\n name: getPhrase('contentReview'),\n appLink: APPLINKS.contentReview,\n active: props.active === 'content-review',\n analyticsData: {\n name: LanguageService.getPhrase(namespace, 'contentReview'),\n url: AppLinkHelper.getHref(APPLINKS.contentReview)\n },\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Url,\n location: LocationContext.MagicTabs\n }\n }, {\n name: getPhrase('contentReviewSettings'),\n appLink: APPLINKS.contentReviewSettings,\n active: props.active === 'content-review-settings',\n analyticsData: {\n name: LanguageService.getPhrase(namespace, 'contentReviewSettings'),\n url: AppLinkHelper.getHref(APPLINKS.contentReviewSettings)\n },\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Url,\n location: LocationContext.MagicTabs\n }\n }]}\n />\n </div>\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 {\"pillTabSelector\":\"Hdi6o\",\"tab\":\"RvNxr\",\"minWidth\":\"GHSz9\",\"radiusSmall\":\"VhJJa\",\"tabLink\":\"WFyvo\"};"],"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","TabContents","tab","count","type","data","PillTabSelector","containerRef","borderRadius","listClassName","tabs","index","analyticsData","analyticsOptions","onSelect","onSelectTab","defaultProps","OnlineSupportArticle","LiteSupportArticle","DEFAULT_PARTIAL_LOADING_OPTIONS","minWidth","maxWidth","PartialLoadingHelper","getPartialLoadingItems","options","opts","Array","Math","max","floor","random","namespace","APPLINKS","restrictedVideos","application","action","contentReview","contentReviewSettings","RestrictionTabs","url","actionType","entity","location","useCanAccessSettings","requiredPermissions","hasPermissions","settingsGroups","currentRoute","some","group","modules","settingsModule","SettingsLayout","canAccess","replace","i","heading","headingButton","description","children"],"sourceRoot":""}
1
+ {"version":3,"file":"scripts/154-fa5b45d1bf-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/components/pill-tab-selector/PillTabSelector.tsx","file:///app/packages/libs/shared/src/enums/SupportArticle.ts","file:///app/packages/libs/shared/src/utils/PartialLoadingHelper.ts","file:///app/packages/projects/lite/src/apps/settings/components/restricted-videos-tabs/RestrictedVideosTabs.tsx","file:///app/packages/projects/lite/src/apps/settings/components/settings-layout/SettingsLayout.tsx","file:///app/packages/libs/shared/src/components/pill-tab-selector/pill-tab-selector.scss"],"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});","import React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Badge, BadgeType } from 'libs/shared/components/badges/Badge';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\n\nimport { SvgContainer } from '../svg-container/SvgContainer';\n\nimport styles from './pill-tab-selector.scss';\n\ninterface TabContentsProps {\n tab: PillTab;\n}\n\nfunction TabContents(props: TabContentsProps): JSX.Element {\n return (\n <>\n {!!props.tab.svgName && (\n <div className={props.tab.name ? 'pe-1' : ''}>\n <SvgContainer svgName={props.tab.svgName} />\n </div>\n )}\n\n {props.tab.name}\n\n {typeof (props.tab.count) === 'number' && (\n <div className='ps-2'>\n <Badge type={BadgeType.Count} data={props.tab.count} />\n </div>\n )}\n </>\n );\n}\n\nexport interface PillTab {\n name: string;\n active: boolean;\n svgName?: string;\n\n className?: string;\n\n appLink?: Core.AppLink;\n onSelect?: () => void;\n\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n\n count?: number;\n}\n\ninterface PillTabSelectorProps {\n tabs: PillTab[];\n containerRef?: (el: HTMLElement) => void;\n listClassName?: string;\n className?: string;\n borderRadius?: 'sm' | 'lg'\n}\n\nPillTabSelector.defaultProps = {\n borderRadius: 'lg'\n};\n\nexport function PillTabSelector(props: PillTabSelectorProps): JSX.Element {\n function onSelectTab(tab: PillTab): void {\n if (tab.active || !tab.onSelect)\n return;\n\n tab.onSelect();\n\n if (tab.analyticsData && tab.analyticsOptions)\n AnalyticsHelper.logUserAction(tab.analyticsData, tab.analyticsOptions);\n }\n\n return (\n <nav className={props.className ?? ''} ref={props.containerRef}>\n <ul className={`\n list-unstyled d-inline-block m-0 ${styles.pillTabSelector}\n ${props.borderRadius ? styles.radiusSmall : ''}\n ${props.listClassName}\n `}>\n {props.tabs.map((tab, index) => {\n return (\n <li\n className={`\n p-0 ${styles.tab} ${tab.active ? 'btn btn-dark' : 'btn btn-outline-dark'}\n ${tab.name ? styles.minWidth : ''} ${tab.className}\n `}\n key={index}\n >\n {tab.appLink ? (\n <AppLink\n appLink={tab.appLink}\n analyticsData={tab.analyticsData}\n analyticsOptions={tab.analyticsOptions}\n className={`\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ${styles.tabLink}\n `}\n >\n <TabContents tab={tab} />\n </AppLink>\n ) : (\n <DivButton\n className={`\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ${styles.tabLink}\n `}\n onClick={() => onSelectTab(tab)}\n >\n <TabContents tab={tab} />\n </DivButton>\n )}\n </li>\n );\n })}\n </ul>\n </nav>\n );\n}\n","// Article name mapped to article ID on support site. Used by `ArticleHelper`\n\nexport enum OnlineSupportArticle {\n AddToPlaylist = '115005679748',\n EditSsoAccounts = '8202508040345',\n\n // LE\n LibraryEditor = '360001974533',\n VideoAccess = '360000153947',\n AddFromOnline = '360011718234',\n UploadToLibraryEditor = '360012069334',\n PBTErrorCodes = '360012421153',\n ManuelReview = '360020004534',\n LibraryReview = '360000163788',\n}\n\nexport enum LiteSupportArticle {\n Integrations = '4407268725529',\n Classrooms = '4405362551833',\n MakeInteractive = '4405370510873',\n EditSsoAccounts = '8202605666073',\n UploadToLibraryEditor = '10672936659865',\n AddFromLite = '10671345281561',\n ManageSsoYearGroups = '14691130889241',\n ContentReview = '18525199576601',\n ContentPermissions = '14692125209497',\n AccessSettings = '27927466562201',\n ContentGuidelines = '24133696186009',\n FoxtelFaq = '24133519542169',\n ViviIntegration = '23826297956377',\n AppleTvIntegration = '25832373739929',\n RssFeed = '32567445635097',\n ManageGroupPermissions = '35407217335705'\n}\n","const DEFAULT_PARTIAL_LOADING_OPTIONS: PartialLoadingOptions = {\n numItems: 5,\n minWidth: 50, // px\n maxWidth: 100 // px\n};\n\nexport interface PartialLoadingOptions {\n numItems?: number;\n minWidth?: number;\n maxWidth?: number;\n}\n\ninterface PartialLoadingItem {\n width: string;\n}\n\nexport const PartialLoadingHelper = {\n getPartialLoadingItems(options: PartialLoadingOptions = {}): PartialLoadingItem[] {\n const opts = {\n ...DEFAULT_PARTIAL_LOADING_OPTIONS,\n ...options\n };\n\n const getRandomFilterWidth = () => Math.max(Math.floor(Math.random() * opts.maxWidth), opts.minWidth);\n\n return [...Array(opts.numItems)].map(() => ({ width: `${getRandomFilterWidth()}px` }));\n }\n};","import React from 'react';\n\nimport { AppLinkHelper } from 'libs/common/backbone/core';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EntityType, LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { PillTabSelector } from 'libs/shared/components/pill-tab-selector/PillTabSelector';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nconst namespace = 'settings.restrictedVideosTabs';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst APPLINKS = {\n restrictedVideos: {\n application: AppChannels.SETTINGS,\n action: Actions.Settings.VIDEO_RESTRICTIONS\n },\n contentReview: {\n application: AppChannels.SETTINGS,\n action: Actions.Settings.CONTENT_REVIEW\n },\n contentReviewSettings: {\n application: AppChannels.SETTINGS,\n action: Actions.Settings.CONTENT_REVIEW_SETTINGS\n }\n};\n\ninterface RestrictionTabsProps {\n active: 'restricted-videos' | 'content-review' | 'content-review-settings'\n}\n\nexport function RestrictionTabs(props: RestrictionTabsProps): JSX.Element {\n return (\n <div className='mb-3'>\n <PillTabSelector\n tabs={[{\n name: getPhrase('restrictedVideos'),\n appLink: APPLINKS.restrictedVideos,\n active: props.active === 'restricted-videos',\n analyticsData: {\n name: getPhrase('restrictedVideos'),\n url: AppLinkHelper.getHref(APPLINKS.restrictedVideos)\n },\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Url,\n location: LocationContext.MagicTabs\n }\n }, {\n name: getPhrase('contentReview'),\n appLink: APPLINKS.contentReview,\n active: props.active === 'content-review',\n analyticsData: {\n name: LanguageService.getPhrase(namespace, 'contentReview'),\n url: AppLinkHelper.getHref(APPLINKS.contentReview)\n },\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Url,\n location: LocationContext.MagicTabs\n }\n }, {\n name: getPhrase('contentReviewSettings'),\n appLink: APPLINKS.contentReviewSettings,\n active: props.active === 'content-review-settings',\n analyticsData: {\n name: LanguageService.getPhrase(namespace, 'contentReviewSettings'),\n url: AppLinkHelper.getHref(APPLINKS.contentReviewSettings)\n },\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Url,\n location: LocationContext.MagicTabs\n }\n }]}\n />\n </div>\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 {\"pillTabSelector\":\"Hdi6o\",\"tab\":\"RvNxr\",\"minWidth\":\"GHSz9\",\"radiusSmall\":\"VhJJa\",\"tabLink\":\"WFyvo\"};"],"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","TabContents","tab","count","type","data","PillTabSelector","containerRef","borderRadius","listClassName","tabs","index","analyticsData","analyticsOptions","onSelect","onSelectTab","defaultProps","OnlineSupportArticle","LiteSupportArticle","DEFAULT_PARTIAL_LOADING_OPTIONS","minWidth","maxWidth","PartialLoadingHelper","getPartialLoadingItems","options","opts","Array","Math","max","floor","random","namespace","APPLINKS","restrictedVideos","application","action","contentReview","contentReviewSettings","RestrictionTabs","url","actionType","entity","location","useCanAccessSettings","requiredPermissions","hasPermissions","settingsGroups","currentRoute","some","group","modules","settingsModule","SettingsLayout","canAccess","replace","i","heading","headingButton","description","children"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
- "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[1913],{51497:(e,r,t)=>{t.d(r,{F:()=>c});var n=t(32735),a=t(68050),o=t(69111),l=t(74472),i=t(8612),u=t(83345),s=t(32045);function c(e){return n.createElement(u.D.Provider,{value:"userManager.bulkUserActionsYearGroupRolloverActionDetails"},n.createElement(a.Z,{className:"mb-2"},n.createElement(o.Z,{xs:4},n.createElement(u.x,{phrase:"yearGroupsList"})),n.createElement(o.Z,{xs:8},n.createElement(u.x,{phrase:"rolloverTo"}))),e.yearGroups.map((function(r,t){var c,d,m=null!==(c=e.countsByYearGroup[r.value])&&void 0!==c?c:0,f=r.value>=(null===(d=e.graduatingYearGroup)||void 0===d?void 0:d.value),p=e.yearGroups[t+1],y={status:s.w.Disabled,id:"fake-deactivated-user"};return n.createElement(a.Z,{key:r.value,className:"mb-2"},n.createElement(o.Z,{xs:4},n.createElement(i.G,null,r.name),n.createElement("div",null,n.createElement(u.x,{phrase:"count",options:{smartCount:m}}))),n.createElement(o.Z,{xs:8},f?n.createElement(l.b,{user:y,className:"d-inline-block"}):n.createElement(i.G,null,null==p?void 0:p.name)))})))}},8612:(e,r,t)=>{t.d(r,{G:()=>a});var n=t(32735);function a(e){return n.createElement("span",{className:"".concat(e.className," rounded-pill px-2 text-nowrap bg-white border border-dark")},e.children)}},84566:(e,r,t)=>{t.d(r,{S:()=>c});var n=t(20354),a=t(2948),o=t(38143),l=t(31949);function i(e){return function(e){if(Array.isArray(e))return s(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||u(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function u(e,r){if(e){if("string"==typeof e)return s(e,r);var t={}.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?s(e,r):void 0}}function s(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=Array(r);t<r;t++)n[t]=e[t];return n}function c(e){var r,t,s=(r=(0,a.D)(o.g.BULK_USER_ACTIONS),t=1,function(e){if(Array.isArray(e))return e}(r)||function(e,r){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var n,a,o,l,i=[],u=!0,s=!1;try{if(o=(t=t.call(e)).next,0===r){if(Object(t)!==t)return;u=!1}else for(;!(u=(n=o.call(t)).done)&&(i.push(n.value),i.length!==r);u=!0);}catch(e){s=!0,a=e}finally{try{if(!u&&null!=t.return&&(l=t.return(),Object(l)!==l))return}finally{if(s)throw a}}return i}}(r,t)||u(r,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())[0],c=n.a.useBasicFetch(l.N.currentUser());return n.a.useBasicFetch((null==s?void 0:s.userIdMap)&&c.data&&e.getSearchAggregation({userId:c.data.id,customerId:c.data.customerId,userType:e.userType,queryParams:s.params,userIds:i(s.userIdMap.keys()),field:e.field})).data}},99705:(e,r,t)=>{var n,a;t.d(r,{b:()=>a}),function(e){e.AddToPlaylist="115005679748",e.EditSsoAccounts="8202508040345",e.LibraryEditor="360001974533",e.VideoAccess="360000153947",e.AddFromOnline="360011718234",e.UploadToLibraryEditor="360012069334",e.PBTErrorCodes="360012421153",e.ManuelReview="360020004534",e.LibraryReview="360000163788"}(n||(n={})),function(e){e.Integrations="4407268725529",e.Classrooms="4405362551833",e.MakeInteractive="4405370510873",e.EditSsoAccounts="8202605666073",e.UploadToLibraryEditor="10672936659865",e.AddFromLite="10671345281561",e.ManageSsoYearGroups="14691130889241",e.ContentReview="18525199576601",e.ContentPermissions="14692125209497",e.AccessSettings="22110291468057",e.ContentGuidelines="24133696186009",e.FoxtelFaq="24133519542169",e.ViviIntegration="23826297956377",e.AppleTvIntegration="25832373739929",e.RssFeed="32567445635097",e.ManageGroupPermissions="35407217335705"}(a||(a={}))},51238:(e,r,t)=>{t.r(r),t.d(r,{BulkUserActionsYearGroupRolloverActionDetailsView:()=>T});var n=t(32735),a=t(70680),o=t(20354),l=t(2948),i=t(80130),u=t(23481),s=t(75896),c=t(83345),d=t(38143),m=t(96728),f=t(51497);function p(e,r){return function(e){if(Array.isArray(e))return e}(e)||function(e,r){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var n,a,o,l,i=[],u=!0,s=!1;try{if(o=(t=t.call(e)).next,0===r){if(Object(t)!==t)return;u=!1}else for(;!(u=(n=o.call(t)).done)&&(i.push(n.value),i.length!==r);u=!0);}catch(e){s=!0,a=e}finally{try{if(!u&&null!=t.return&&(l=t.return(),Object(l)!==l))return}finally{if(s)throw a}}return i}}(e,r)||function(e,r){if(e){if("string"==typeof e)return y(e,r);var t={}.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?y(e,r):void 0}}(e,r)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function y(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=Array(r);t<r;t++)n[t]=e[t];return n}var v="userManager.bulkUserActionsYearGroupRolloverActionDetails";function b(e){var r,t=p((0,l.D)(d.g.BULK_USER_ACTIONS),2),a=t[0],o=t[1],y=p(n.useState(!1),2),b=y[0],h=y[1],g=n.useContext(m.e).setDisableNext;return n.useEffect((function(){g(!(null==a?void 0:a.yearGroup)||!b)}),[b,null==a?void 0:a.yearGroup]),n.useEffect((function(){o("yearGroup",s.m.last(e.yearGroups)),o("subAction","yearGroupRollover")}),[]),n.createElement(c.D.Provider,{value:v},n.createElement("h2",{className:"h4 mb-3"},n.createElement(c.x,{phrase:"heading"})),n.createElement("div",{className:"px-2 pt-2 border rounded mb-2 pb-0"},n.createElement("ul",{className:"mt-2 ps-3 ms-1"},n.createElement("li",null,n.createElement(c.x,{phrase:"info"})),n.createElement("li",null,n.createElement(c.x,{phrase:"ssoWarning"})," ",!!e.editSsoHelpArticleUrl&&n.createElement("a",{href:e.editSsoHelpArticleUrl,target:"_blank",className:"info-link"},n.createElement(c.x,{phrase:"ssoWarningArticle"}))),n.createElement("li",{className:"text-danger"},n.createElement(c.x,{phrase:"infoWarning"}))),n.createElement("div",{className:"form-group"},n.createElement("label",null,n.createElement(c.x,{phrase:"label"})),n.createElement("select",{className:"form-select form-select-lg w-33",onChange:function(r){var t=r.target.value;o("yearGroup",e.yearGroups.find((function(e){return e.value.toString()===t.toString()})))},value:null===(r=a.yearGroup)||void 0===r?void 0:r.value},e.yearGroups.map((function(e){return n.createElement("option",{key:e.id,value:e.value,className:"text-dark"},e.name)})))),n.createElement(f.F,{yearGroups:e.yearGroups,graduatingYearGroup:a.yearGroup,countsByYearGroup:e.countsByYearGroup}),n.createElement(i.Z.Check,{className:"my-3",type:"checkbox",label:u.T.getPhrase(v,"rolloverConfirmationLabel"),id:"rolloverConfirmation",value:"rolloverConfirmation",onChange:function(){return h(!b)},checked:b})))}var h=t(58703),g=t(84566),E=t(70197),A=t(99705),S=t(39151),G=t(1666),I=t(31949),x=t(12778),w=t(47288),N=t(88323),k=t(18087);function C(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=Array(r);t<r;t++)n[t]=e[t];return n}function T(e){var r,t,i,u=(0,N.h)(e.userType),s=u.users,c=u.count,m=u.setAllUserIds,f=(0,k.Y)(e.userType),p=(0,a.I0)(),y=(t=(0,l.D)(d.g.BULK_USER_ACTIONS),i=1,function(e){if(Array.isArray(e))return e}(t)||function(e,r){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var n,a,o,l,i=[],u=!0,s=!1;try{if(o=(t=t.call(e)).next,0===r){if(Object(t)!==t)return;u=!1}else for(;!(u=(n=o.call(t)).done)&&(i.push(n.value),i.length!==r);u=!0);}catch(e){s=!0,a=e}finally{try{if(!u&&null!=t.return&&(l=t.return(),Object(l)!==l))return}finally{if(s)throw a}}return i}}(t,i)||function(e,r){if(e){if("string"==typeof e)return C(e,r);var t={}.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?C(e,r):void 0}}(t,i)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())[0],v=o.a.useBasicFetch(I.N.currentUser()),T=o.a.useBasicFetch(S.L.config()),U=o.a.useBasicFetch(v.hasCompleted&&G.h.yearGroups(v.data.customerId)),j=(0,g.S)({userType:e.userType,field:E.q.YearGroupValues,getSearchAggregation:w.N.getSearchAggregation});n.useEffect((function(){var r,t;!(null===(r=null==y?void 0:y.userIdMap)||void 0===r?void 0:r.size)&&(null===(t=v.data)||void 0===t?void 0:t.customerId)&&o.a.fetch(p,w.N.getSearchUserIds(v.data.customerId,v.data.id,e.userType,{},(function(e){return m(e)})))}),[null===(r=v.data)||void 0===r?void 0:r.customerId]);var B=!!(U.data&&T.data&&v.data&&j);return n.createElement(h.d,{appLinks:f,userType:e.userType,users:s,currentStep:"action-details",userCount:c,preventRedirect:!0,loaded:B},B&&n.createElement(b,{appLinks:f,yearGroups:U.data,countsByYearGroup:j,currentUser:v.data,editSsoHelpArticleUrl:x.o.getLiteArticle(A.b.EditSsoAccounts)}))}},68050:(e,r,t)=>{t.d(r,{Z:()=>s});var n=t(95685),a=t.n(n),o=t(32735),l=t(46304),i=t(74512);const u=o.forwardRef((({bsPrefix:e,className:r,as:t="div",...n},o)=>{const u=(0,l.vE)(e,"row"),s=(0,l.pi)(),c=(0,l.zG)(),d=`${u}-cols`,m=[];return s.forEach((e=>{const r=n[e];let t;delete n[e],null!=r&&"object"==typeof r?({cols:t}=r):t=r;const a=e!==c?`-${e}`:"";null!=t&&m.push(`${d}${a}-${t}`)})),(0,i.jsx)(t,{ref:o,...n,className:a()(r,u,...m)})}));u.displayName="Row";const s=u}}]);
2
- //# sourceMappingURL=1913-6a6bb3f16f-lite.chunk.js.map
1
+ "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[1913],{51497:(e,r,t)=>{t.d(r,{F:()=>c});var n=t(32735),a=t(68050),o=t(69111),l=t(74472),i=t(8612),u=t(83345),s=t(32045);function c(e){return n.createElement(u.D.Provider,{value:"userManager.bulkUserActionsYearGroupRolloverActionDetails"},n.createElement(a.Z,{className:"mb-2"},n.createElement(o.Z,{xs:4},n.createElement(u.x,{phrase:"yearGroupsList"})),n.createElement(o.Z,{xs:8},n.createElement(u.x,{phrase:"rolloverTo"}))),e.yearGroups.map((function(r,t){var c,d,m=null!==(c=e.countsByYearGroup[r.value])&&void 0!==c?c:0,f=r.value>=(null===(d=e.graduatingYearGroup)||void 0===d?void 0:d.value),p=e.yearGroups[t+1],y={status:s.w.Disabled,id:"fake-deactivated-user"};return n.createElement(a.Z,{key:r.value,className:"mb-2"},n.createElement(o.Z,{xs:4},n.createElement(i.G,null,r.name),n.createElement("div",null,n.createElement(u.x,{phrase:"count",options:{smartCount:m}}))),n.createElement(o.Z,{xs:8},f?n.createElement(l.b,{user:y,className:"d-inline-block"}):n.createElement(i.G,null,null==p?void 0:p.name)))})))}},8612:(e,r,t)=>{t.d(r,{G:()=>a});var n=t(32735);function a(e){return n.createElement("span",{className:"".concat(e.className," rounded-pill px-2 text-nowrap bg-white border border-dark")},e.children)}},84566:(e,r,t)=>{t.d(r,{S:()=>c});var n=t(20354),a=t(2948),o=t(38143),l=t(31949);function i(e){return function(e){if(Array.isArray(e))return s(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||u(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function u(e,r){if(e){if("string"==typeof e)return s(e,r);var t={}.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?s(e,r):void 0}}function s(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=Array(r);t<r;t++)n[t]=e[t];return n}function c(e){var r,t,s=(r=(0,a.D)(o.g.BULK_USER_ACTIONS),t=1,function(e){if(Array.isArray(e))return e}(r)||function(e,r){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var n,a,o,l,i=[],u=!0,s=!1;try{if(o=(t=t.call(e)).next,0===r){if(Object(t)!==t)return;u=!1}else for(;!(u=(n=o.call(t)).done)&&(i.push(n.value),i.length!==r);u=!0);}catch(e){s=!0,a=e}finally{try{if(!u&&null!=t.return&&(l=t.return(),Object(l)!==l))return}finally{if(s)throw a}}return i}}(r,t)||u(r,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())[0],c=n.a.useBasicFetch(l.N.currentUser());return n.a.useBasicFetch((null==s?void 0:s.userIdMap)&&c.data&&e.getSearchAggregation({userId:c.data.id,customerId:c.data.customerId,userType:e.userType,queryParams:s.params,userIds:i(s.userIdMap.keys()),field:e.field})).data}},99705:(e,r,t)=>{var n,a;t.d(r,{b:()=>a}),function(e){e.AddToPlaylist="115005679748",e.EditSsoAccounts="8202508040345",e.LibraryEditor="360001974533",e.VideoAccess="360000153947",e.AddFromOnline="360011718234",e.UploadToLibraryEditor="360012069334",e.PBTErrorCodes="360012421153",e.ManuelReview="360020004534",e.LibraryReview="360000163788"}(n||(n={})),function(e){e.Integrations="4407268725529",e.Classrooms="4405362551833",e.MakeInteractive="4405370510873",e.EditSsoAccounts="8202605666073",e.UploadToLibraryEditor="10672936659865",e.AddFromLite="10671345281561",e.ManageSsoYearGroups="14691130889241",e.ContentReview="18525199576601",e.ContentPermissions="14692125209497",e.AccessSettings="27927466562201",e.ContentGuidelines="24133696186009",e.FoxtelFaq="24133519542169",e.ViviIntegration="23826297956377",e.AppleTvIntegration="25832373739929",e.RssFeed="32567445635097",e.ManageGroupPermissions="35407217335705"}(a||(a={}))},51238:(e,r,t)=>{t.r(r),t.d(r,{BulkUserActionsYearGroupRolloverActionDetailsView:()=>T});var n=t(32735),a=t(70680),o=t(20354),l=t(2948),i=t(80130),u=t(23481),s=t(75896),c=t(83345),d=t(38143),m=t(96728),f=t(51497);function p(e,r){return function(e){if(Array.isArray(e))return e}(e)||function(e,r){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var n,a,o,l,i=[],u=!0,s=!1;try{if(o=(t=t.call(e)).next,0===r){if(Object(t)!==t)return;u=!1}else for(;!(u=(n=o.call(t)).done)&&(i.push(n.value),i.length!==r);u=!0);}catch(e){s=!0,a=e}finally{try{if(!u&&null!=t.return&&(l=t.return(),Object(l)!==l))return}finally{if(s)throw a}}return i}}(e,r)||function(e,r){if(e){if("string"==typeof e)return y(e,r);var t={}.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?y(e,r):void 0}}(e,r)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function y(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=Array(r);t<r;t++)n[t]=e[t];return n}var v="userManager.bulkUserActionsYearGroupRolloverActionDetails";function b(e){var r,t=p((0,l.D)(d.g.BULK_USER_ACTIONS),2),a=t[0],o=t[1],y=p(n.useState(!1),2),b=y[0],h=y[1],g=n.useContext(m.e).setDisableNext;return n.useEffect((function(){g(!(null==a?void 0:a.yearGroup)||!b)}),[b,null==a?void 0:a.yearGroup]),n.useEffect((function(){o("yearGroup",s.m.last(e.yearGroups)),o("subAction","yearGroupRollover")}),[]),n.createElement(c.D.Provider,{value:v},n.createElement("h2",{className:"h4 mb-3"},n.createElement(c.x,{phrase:"heading"})),n.createElement("div",{className:"px-2 pt-2 border rounded mb-2 pb-0"},n.createElement("ul",{className:"mt-2 ps-3 ms-1"},n.createElement("li",null,n.createElement(c.x,{phrase:"info"})),n.createElement("li",null,n.createElement(c.x,{phrase:"ssoWarning"})," ",!!e.editSsoHelpArticleUrl&&n.createElement("a",{href:e.editSsoHelpArticleUrl,target:"_blank",className:"info-link"},n.createElement(c.x,{phrase:"ssoWarningArticle"}))),n.createElement("li",{className:"text-danger"},n.createElement(c.x,{phrase:"infoWarning"}))),n.createElement("div",{className:"form-group"},n.createElement("label",null,n.createElement(c.x,{phrase:"label"})),n.createElement("select",{className:"form-select form-select-lg w-33",onChange:function(r){var t=r.target.value;o("yearGroup",e.yearGroups.find((function(e){return e.value.toString()===t.toString()})))},value:null===(r=a.yearGroup)||void 0===r?void 0:r.value},e.yearGroups.map((function(e){return n.createElement("option",{key:e.id,value:e.value,className:"text-dark"},e.name)})))),n.createElement(f.F,{yearGroups:e.yearGroups,graduatingYearGroup:a.yearGroup,countsByYearGroup:e.countsByYearGroup}),n.createElement(i.Z.Check,{className:"my-3",type:"checkbox",label:u.T.getPhrase(v,"rolloverConfirmationLabel"),id:"rolloverConfirmation",value:"rolloverConfirmation",onChange:function(){return h(!b)},checked:b})))}var h=t(58703),g=t(84566),E=t(70197),A=t(99705),S=t(39151),G=t(1666),I=t(31949),x=t(12778),w=t(47288),N=t(88323),k=t(18087);function C(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=Array(r);t<r;t++)n[t]=e[t];return n}function T(e){var r,t,i,u=(0,N.h)(e.userType),s=u.users,c=u.count,m=u.setAllUserIds,f=(0,k.Y)(e.userType),p=(0,a.I0)(),y=(t=(0,l.D)(d.g.BULK_USER_ACTIONS),i=1,function(e){if(Array.isArray(e))return e}(t)||function(e,r){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var n,a,o,l,i=[],u=!0,s=!1;try{if(o=(t=t.call(e)).next,0===r){if(Object(t)!==t)return;u=!1}else for(;!(u=(n=o.call(t)).done)&&(i.push(n.value),i.length!==r);u=!0);}catch(e){s=!0,a=e}finally{try{if(!u&&null!=t.return&&(l=t.return(),Object(l)!==l))return}finally{if(s)throw a}}return i}}(t,i)||function(e,r){if(e){if("string"==typeof e)return C(e,r);var t={}.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?C(e,r):void 0}}(t,i)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())[0],v=o.a.useBasicFetch(I.N.currentUser()),T=o.a.useBasicFetch(S.L.config()),U=o.a.useBasicFetch(v.hasCompleted&&G.h.yearGroups(v.data.customerId)),j=(0,g.S)({userType:e.userType,field:E.q.YearGroupValues,getSearchAggregation:w.N.getSearchAggregation});n.useEffect((function(){var r,t;!(null===(r=null==y?void 0:y.userIdMap)||void 0===r?void 0:r.size)&&(null===(t=v.data)||void 0===t?void 0:t.customerId)&&o.a.fetch(p,w.N.getSearchUserIds(v.data.customerId,v.data.id,e.userType,{},(function(e){return m(e)})))}),[null===(r=v.data)||void 0===r?void 0:r.customerId]);var B=!!(U.data&&T.data&&v.data&&j);return n.createElement(h.d,{appLinks:f,userType:e.userType,users:s,currentStep:"action-details",userCount:c,preventRedirect:!0,loaded:B},B&&n.createElement(b,{appLinks:f,yearGroups:U.data,countsByYearGroup:j,currentUser:v.data,editSsoHelpArticleUrl:x.o.getLiteArticle(A.b.EditSsoAccounts)}))}},68050:(e,r,t)=>{t.d(r,{Z:()=>s});var n=t(95685),a=t.n(n),o=t(32735),l=t(46304),i=t(74512);const u=o.forwardRef((({bsPrefix:e,className:r,as:t="div",...n},o)=>{const u=(0,l.vE)(e,"row"),s=(0,l.pi)(),c=(0,l.zG)(),d=`${u}-cols`,m=[];return s.forEach((e=>{const r=n[e];let t;delete n[e],null!=r&&"object"==typeof r?({cols:t}=r):t=r;const a=e!==c?`-${e}`:"";null!=t&&m.push(`${d}${a}-${t}`)})),(0,i.jsx)(t,{ref:o,...n,className:a()(r,u,...m)})}));u.displayName="Row";const s=u}}]);
2
+ //# sourceMappingURL=1913-6a7d99b96f-lite.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scripts/1913-6a6bb3f16f-lite.chunk.js","mappings":"oNAgBM,SAAUA,EAAqCC,GACnD,OACE,gBAAC,aAAiC,CAACC,MAAM,6DACvC,gBAAC,IAAG,CAACC,UAAU,QACb,gBAAC,IAAG,CAACC,GAAI,GAAG,gBAAC,IAAI,CAACC,OAAO,oBACzB,gBAAC,IAAG,CAACD,GAAI,GAAG,gBAAC,IAAI,CAACC,OAAO,iBAG1BJ,EAAMK,WAAWC,KAAI,SAACC,EAAWC,G,QAC1BC,EAA4D,QAAxC,EAAAT,EAAMU,kBAAkBH,EAAUN,cAAM,QAAI,EAEhEU,EAAeJ,EAAUN,QAAkC,QAAzB,EAAAD,EAAMY,2BAAmB,eAAEX,OAC7DY,EAAgBb,EAAMK,WAAWG,EAAI,GAErCM,EAAsB,CAC1BC,OAAQ,aACRC,GAAI,yBAGN,OACE,gBAAC,IAAG,CAACC,IAAKV,EAAUN,MAAOC,UAAU,QACnC,gBAAC,IAAG,CAACC,GAAI,GACP,gBAAC,IAAS,KACPI,EAAUW,MAEb,2BAAK,gBAAC,IAAI,CAACd,OAAO,QAAQe,QAAS,CAAEC,WAAYX,OAEnD,gBAAC,IAAG,CAACN,GAAI,GACNQ,EAEG,gBAAC,IAAe,CAACU,KAAMP,EAA6BZ,UAAU,mBAE9D,gBAAC,IAAS,KACPW,aAAa,EAAbA,EAAeK,OAO9B,IAGN,C,iDCrDM,SAAUI,EAAUtB,GACxB,OACE,wBAAME,UAAS,UAAKF,EAAME,UAAS,+DAChCF,EAAMuB,SAGb,C,mzBCaM,SAAUC,EAA2CL,GACzD,I,IAAOM,G,GAAa,OAClB,uB,EACD,E,unBAFe,GAIVC,EAAc,kBAAkC,mBAiBtD,OAboB,mBAClBD,aAAS,EAATA,EAAWE,YACXD,EAAYE,MACZT,EAAQU,qBAAqB,CAC3BC,OAAQJ,EAAYE,KAAKZ,GACzBe,WAAYL,EAAYE,KAAKG,WAC7BC,SAAUb,EAAQa,SAClBC,YAAaR,EAAUS,OACvBC,QAAS,EAAIV,EAAUE,UAAUS,QACjCC,MAAOlB,EAAQkB,SAIAT,IACrB,C,kBC9CA,IAAYU,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,stCCC9B,IAAMC,EAAY,4DAUZ,SAAUC,EACdzC,G,MAIC,KAFmC,OAClC0C,EAAA,qBACD,GAFOjB,EAAS,KAAEkB,EAAY,KAIgC,IAArB,YAAe,GAAM,GAAvDC,EAAY,KAAEC,EAAe,KAE7BC,EAAmB,aAAiBC,EAAA,GAApCD,eAgBR,OAdA,aAAgB,WACdA,IAAgBrB,aAAS,EAATA,EAAWlB,aAAcqC,EAC3C,GAAG,CAAEA,EAAcnB,aAAS,EAATA,EAAWlB,YAE9B,aAAgB,WACdoC,EAAa,YAAaK,EAAA,OAAiBhD,EAAMK,aACjDsC,EAAa,YAAa,oBAC5B,GAAG,IAQD,gBAAC,aAAiC,CAAC1C,MAAOuC,GACxC,sBAAItC,UAAU,WACZ,gBAAC+C,EAAA,EAAI,CAAC7C,OAAO,aAGf,uBAAKF,UAAU,sCACb,sBAAIA,UAAU,kBACZ,0BAAI,gBAAC+C,EAAA,EAAI,CAAC7C,OAAO,UACjB,0BACE,gBAAC6C,EAAA,EAAI,CAAC7C,OAAO,eAAe,MACzBJ,EAAMkD,uBACP,qBAAGC,KAAMnD,EAAMkD,sBAAuBE,OAAO,SAASlD,UAAU,aAC9D,gBAAC+C,EAAA,EAAI,CAAC7C,OAAO,wBAInB,sBAAIF,UAAU,eAAc,gBAAC+C,EAAA,EAAI,CAAC7C,OAAO,kBAG3C,uBAAKF,UAAU,cACb,6BAAO,gBAAC+C,EAAA,EAAI,CAAC7C,OAAO,WACpB,0BACEF,UAAU,kCACVmD,SA7BV,SAA2BC,GACzB,IAAQrD,EAAUqD,EAAEF,OAAZnD,MACR0C,EAAa,YAAa3C,EAAMK,WAAWkD,MAAK,SAAAC,GAAE,OAAIA,EAAGvD,MAAMwD,aAAexD,EAAMwD,UAAU,IAChG,EA2BUxD,MAA0B,QAAnB,EAAAwB,EAAUlB,iBAAS,eAAEN,OAE3BD,EAAMK,WAAWC,KAAI,SAAAkD,GACpB,OACE,0BAAQvC,IAAKuC,EAAGxC,GAAIf,MAAOuD,EAAGvD,MAAOC,UAAU,aAC5CsD,EAAGtC,KAGV,MAIJ,gBAACnB,EAAA,EAAoC,CACnCM,WAAYL,EAAMK,WAClBO,oBAAqBa,EAAUlB,UAC/BG,kBAAmBV,EAAMU,oBAG3B,gBAACgD,EAAA,QAAU,CACTxD,UAAU,OACVyD,KAAK,WACLC,MAAOC,EAAA,YAA0BrB,EAAW,6BAC5CxB,GAAG,uBACHf,MAAM,uBACNoD,SAAU,WAAF,OAAQR,GAAiBD,EAAa,EAC9CkB,QAASlB,KAKnB,C,kOCnFM,SAAUmB,EAAkD/D,G,UAChE,GAAwC,EAAAgE,EAAA,GAA2BhE,EAAMgC,UAAjEiC,EAAK,EAALA,MAAOC,EAAK,EAALA,MAAOC,EAAa,EAAbA,cAChBC,GAAW,OAAuBpE,EAAMgC,UACxCqC,GAAW,UAEV5C,G,GAAa,OAClBiB,EAAA,qB,EACD,E,o4BAFe,GAIVhB,EAAc,kBAAkC4C,EAAA,iBAChDC,EAAS,kBAA6BC,EAAA,YACtCnE,EAAa,kBACjBqB,EAAY+C,cAAgBC,EAAA,aAA4BhD,EAAYE,KAAKG,aAGrE4C,GAAc,EAAAnD,EAAA,GAAoB,CACtCQ,SAAUhC,EAAMgC,SAChBK,MAAOuC,EAAA,kBACP/C,qBAAsBgD,EAAA,yBAGxB,aAAgB,W,UACU,QAApB,EAAApD,aAAS,EAATA,EAAWE,iBAAS,eAAEmD,QAAyB,QAAhB,EAAApD,EAAYE,YAAI,eAAEG,aAGrD,UAAasC,EAAUQ,EAAA,mBACrBnD,EAAYE,KAAKG,WACjBL,EAAYE,KAAKZ,GACjBhB,EAAMgC,SACN,CAAC,GACD,SAACG,GAAiB,OAAKgC,EAAchC,EAAQ,IAEjD,GAAG,CAAiB,QAAhB,EAAAT,EAAYE,YAAI,eAAEG,aAEtB,IAAMgD,KAAW1E,EAAWuB,MAAU2C,EAAO3C,MAAUF,EAAYE,MAAU+C,GAE7E,OACE,gBAACK,EAAA,EAA2B,CAC1BZ,SAAUA,EACVpC,SAAUhC,EAAMgC,SAChBiC,MAAOA,EACPgB,YAAY,iBACZC,UAAWhB,EACXiB,iBAAe,EACfJ,OAAQA,GAEPA,GACC,gBAACtC,EAA6C,CAC5C2B,SAAUA,EACV/D,WAAYA,EAAWuB,KACvBlB,kBAAmBiE,EACnBjD,YAAaA,EAAYE,KACzBsB,sBAAuBkC,EAAA,iBAA6B,uBAK9D,C,4FC3EA,MAAMC,EAAmB,cAAiB,EACxCC,WACApF,YAEAqF,GAAIC,EAAY,SACbxF,GACFyF,KACD,MAAMC,GAAoB,QAAmBJ,EAAU,OACjDK,GAAc,UACdC,GAAgB,UAChBC,EAAa,GAAGH,SAChBI,EAAU,GAehB,OAdAH,EAAYI,SAAQC,IAClB,MAAMC,EAAYjG,EAAMgG,GAExB,IAAIE,SADGlG,EAAMgG,GAEI,MAAbC,GAA0C,iBAAdA,IAE5BC,QACED,GAEJC,EAAOD,EAET,MAAME,EAAQH,IAAaJ,EAAgB,IAAII,IAAa,GAChD,MAARE,GAAcJ,EAAQM,KAAK,GAAGP,IAAaM,KAASD,IAAO,KAE7C,SAAKV,EAAW,CAClCC,IAAKA,KACFzF,EACHE,UAAW,IAAWA,EAAWwF,KAAsBI,IACvD,IAEJT,EAAIgB,YAAc,MAClB,S","sources":["file:///app/packages/libs/shared/src/apps/user-manager/components/bulk-actions-wizard/action-details/year-group-rollover-action-details/BulkUserActionsRolloverYearGroupInfo.tsx","file:///app/packages/libs/shared/src/apps/user-manager/components/white-pill/WhitePill.tsx","file:///app/packages/libs/shared/src/apps/user-manager/hooks/useFetchAggregation.ts","file:///app/packages/libs/shared/src/enums/SupportArticle.ts","file:///app/packages/libs/shared/src/apps/user-manager/components/bulk-actions-wizard/action-details/year-group-rollover-action-details/BulkUserActionsYearGroupRolloverActionsDetails.tsx","file:///app/packages/projects/lite/src/apps/user-manager/views/wizard/action-details/year-group-rollover/BulkUserActionsYearGroupRolloverActionDetailsView.tsx","file:///app/node_modules/react-bootstrap/esm/Row.js"],"sourcesContent":["import React from 'react';\nimport { Col, Row } from 'react-bootstrap';\n\nimport { UserStatusBadge } from 'libs/shared/apps/user-manager/components/user-list-items/components/UserStatusBadge';\nimport { WhitePill } from 'libs/shared/apps/user-manager/components/white-pill/WhitePill';\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\nimport { ObjectStatus } from 'libs/shared/enums/ObjectStatus';\nimport { User, YearGroup } from 'libs/shared/interfaces';\nimport { SearchAggregation } from 'libs/shared/interfaces/models/SearchAggregation';\n\ninterface BulkUserActionsRolloverYearGroupInfoProps {\n yearGroups: YearGroup[];\n graduatingYearGroup: YearGroup;\n countsByYearGroup: SearchAggregation;\n}\n\nexport function BulkUserActionsRolloverYearGroupInfo(props: BulkUserActionsRolloverYearGroupInfoProps): JSX.Element {\n return (\n <LanguageNamespaceContext.Provider value='userManager.bulkUserActionsYearGroupRolloverActionDetails'>\n <Row className='mb-2'>\n <Col xs={4}><Text phrase='yearGroupsList' /></Col>\n <Col xs={8}><Text phrase='rolloverTo' /></Col>\n </Row>\n\n {props.yearGroups.map((yearGroup, i) => {\n const countForYearGroup = props.countsByYearGroup[yearGroup.value] ?? 0;\n\n const isGraduating = yearGroup.value >= props.graduatingYearGroup?.value;\n const nextYearGroup = props.yearGroups[i + 1];\n\n const fakeDeactivatedUser = {\n status: ObjectStatus.Disabled,\n id: 'fake-deactivated-user' // Required or else the \"That's me\" badge will show up\n };\n\n return (\n <Row key={yearGroup.value} className='mb-2'>\n <Col xs={4}>\n <WhitePill>\n {yearGroup.name}\n </WhitePill>\n <div><Text phrase='count' options={{ smartCount: countForYearGroup }} /></div>\n </Col>\n <Col xs={8}>\n {isGraduating\n ? (\n <UserStatusBadge user={fakeDeactivatedUser as User} className='d-inline-block' />\n ) : (\n <WhitePill>\n {nextYearGroup?.name}\n </WhitePill>\n )\n }\n </Col>\n </Row>\n );\n })}\n </LanguageNamespaceContext.Provider>\n );\n}","import React from 'react';\n\ninterface WhitePillProps {\n className?: string;\n}\n\nexport function WhitePill(props: React.PropsWithChildren<WhitePillProps>): JSX.Element {\n return (\n <span className={`${props.className} rounded-pill px-2 text-nowrap bg-white border border-dark`}>\n {props.children}\n </span>\n );\n}","import { Flight } from 'libs/common/flight';\nimport { useViewModel } from 'libs/common/react/hooks/UseViewModel';\n\nimport { UserManagerQueryParams } from 'libs/shared/apps/user-manager/interfaces/query-params/UserManagerQueryParams';\nimport { BulkUserActionsViewModel } from 'libs/shared/apps/user-manager/interfaces/viewmodels/BulkUserActionsViewModel';\nimport { SharedViewModelKeys } from 'libs/shared/constants/SharedViewModelKeys';\nimport { AggregateSearchField } from 'libs/shared/enums/AggregateSearchField';\nimport { UserGroup } from 'libs/shared/enums/UserGroup';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { CurrentUser } from 'libs/shared/interfaces';\nimport { SearchAggregation } from 'libs/shared/interfaces/models/SearchAggregation';\n\ninterface UseFetchAggregationOptions {\n userType: UserGroup;\n field: AggregateSearchField;\n getSearchAggregation: (options: {\n userId: string,\n customerId: string,\n userType: UserGroup,\n queryParams: UserManagerQueryParams,\n userIds: string[],\n field: AggregateSearchField\n }) => Flight.Request;\n}\n\nexport function useFetchAggregation<T = SearchAggregation>(options: UseFetchAggregationOptions): T {\n const [viewModel] = useViewModel<BulkUserActionsViewModel>(\n SharedViewModelKeys.BULK_USER_ACTIONS\n );\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n\n // We need to check viewModel here in case a user refreshes the page\n // This needs to not error out so that the layout can redirect back to userman\n const aggregation = Flight.useBasicFetch<T>(\n viewModel?.userIdMap &&\n currentUser.data &&\n options.getSearchAggregation({\n userId: currentUser.data.id,\n customerId: currentUser.data.customerId,\n userType: options.userType,\n queryParams: viewModel.params,\n userIds: [...viewModel.userIdMap.keys()],\n field: options.field\n })\n );\n\n return aggregation.data;\n}","// Article name mapped to article ID on support site. Used by `ArticleHelper`\n\nexport enum OnlineSupportArticle {\n AddToPlaylist = '115005679748',\n EditSsoAccounts = '8202508040345',\n\n // LE\n LibraryEditor = '360001974533',\n VideoAccess = '360000153947',\n AddFromOnline = '360011718234',\n UploadToLibraryEditor = '360012069334',\n PBTErrorCodes = '360012421153',\n ManuelReview = '360020004534',\n LibraryReview = '360000163788',\n}\n\nexport enum LiteSupportArticle {\n Integrations = '4407268725529',\n Classrooms = '4405362551833',\n MakeInteractive = '4405370510873',\n EditSsoAccounts = '8202605666073',\n UploadToLibraryEditor = '10672936659865',\n AddFromLite = '10671345281561',\n ManageSsoYearGroups = '14691130889241',\n ContentReview = '18525199576601',\n ContentPermissions = '14692125209497',\n AccessSettings = '22110291468057',\n ContentGuidelines = '24133696186009',\n FoxtelFaq = '24133519542169',\n ViviIntegration = '23826297956377',\n AppleTvIntegration = '25832373739929',\n RssFeed = '32567445635097',\n ManageGroupPermissions = '35407217335705'\n}\n","import React from 'react';\nimport { Form } from 'react-bootstrap';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { useViewModel } from 'libs/common/react/hooks/UseViewModel';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { UserManagerAppLinks } from 'libs/shared/apps/user-manager/interfaces';\nimport { BulkUserActionsYearGroupRolloverViewModel } from 'libs/shared/apps/user-manager/interfaces/viewmodels/BulkUserActionsViewModel';\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\nimport { SharedViewModelKeys } from 'libs/shared/constants/SharedViewModelKeys';\nimport { WizardLayoutContext } from 'libs/shared/context/WizardLayoutContext';\nimport { CurrentUser, YearGroup } from 'libs/shared/interfaces';\nimport { SearchAggregation } from 'libs/shared/interfaces/models/SearchAggregation';\n\nimport { BulkUserActionsRolloverYearGroupInfo } from './BulkUserActionsRolloverYearGroupInfo';\n\nconst namespace = 'userManager.bulkUserActionsYearGroupRolloverActionDetails';\n\ninterface BulkUserActionsYearGroupRolloverActionDetailsProps {\n yearGroups: YearGroup[];\n countsByYearGroup: SearchAggregation;\n appLinks: UserManagerAppLinks;\n editSsoHelpArticleUrl?: string;\n currentUser?: CurrentUser;\n}\n\nexport function BulkUserActionsYearGroupRolloverActionDetails(\n props: BulkUserActionsYearGroupRolloverActionDetailsProps\n): JSX.Element {\n const [ viewModel, setViewModel ] = useViewModel<BulkUserActionsYearGroupRolloverViewModel>(\n SharedViewModelKeys.BULK_USER_ACTIONS\n );\n\n const [ hasConfirmed, setHasConfirmed ] = React.useState(false);\n\n const { setDisableNext } = React.useContext(WizardLayoutContext);\n\n React.useEffect(() => {\n setDisableNext(!viewModel?.yearGroup || !hasConfirmed);\n }, [ hasConfirmed, viewModel?.yearGroup ]);\n\n React.useEffect(() => {\n setViewModel('yearGroup', ArrayHelper.last(props.yearGroups));\n setViewModel('subAction', 'yearGroupRollover');\n }, []);\n\n function onSelectYearGroup(e: React.ChangeEvent<HTMLSelectElement>): void {\n const { value } = e.target;\n setViewModel('yearGroup', props.yearGroups.find(yg => yg.value.toString() === value.toString()));\n }\n\n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n <h2 className='h4 mb-3'>\n <Text phrase='heading' />\n </h2>\n\n <div className='px-2 pt-2 border rounded mb-2 pb-0'>\n <ul className='mt-2 ps-3 ms-1'>\n <li><Text phrase='info' /></li>\n <li>\n <Text phrase='ssoWarning' />&nbsp;\n {!!props.editSsoHelpArticleUrl && (\n <a href={props.editSsoHelpArticleUrl} target='_blank' className='info-link'>\n <Text phrase='ssoWarningArticle' />\n </a>\n )}\n </li>\n <li className='text-danger'><Text phrase='infoWarning' /></li>\n </ul>\n\n <div className='form-group'>\n <label><Text phrase='label' /></label>\n <select\n className='form-select form-select-lg w-33'\n onChange={onSelectYearGroup}\n value={viewModel.yearGroup?.value}\n >\n {props.yearGroups.map(yg => {\n return (\n <option key={yg.id} value={yg.value} className='text-dark'>\n {yg.name}\n </option>\n );\n })}\n </select>\n </div>\n\n <BulkUserActionsRolloverYearGroupInfo\n yearGroups={props.yearGroups}\n graduatingYearGroup={viewModel.yearGroup}\n countsByYearGroup={props.countsByYearGroup}\n />\n\n <Form.Check\n className='my-3'\n type='checkbox'\n label={LanguageService.getPhrase(namespace, 'rolloverConfirmationLabel')}\n id='rolloverConfirmation'\n value='rolloverConfirmation'\n onChange={() => setHasConfirmed(!hasConfirmed)}\n checked={hasConfirmed}\n />\n </div>\n </LanguageNamespaceContext.Provider>\n );\n}","import React from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { Flight } from 'libs/common/flight';\nimport { useViewModel } from 'libs/common/react/hooks/UseViewModel';\n\nimport { BulkUserActionsYearGroupRolloverActionDetails } from 'libs/shared/apps/user-manager/components/bulk-actions-wizard/action-details/year-group-rollover-action-details/BulkUserActionsYearGroupRolloverActionsDetails';\nimport { BulkUserActionsWizardLayout } from 'libs/shared/apps/user-manager/components/bulk-actions-wizard/layout/BulkUserActionsWizardLayout';\nimport { useFetchAggregation } from 'libs/shared/apps/user-manager/hooks/useFetchAggregation';\nimport { UserWizardParams } from 'libs/shared/apps/user-manager/interfaces/query-params/UserWizardParams';\nimport { BulkUserActionsViewModel } from 'libs/shared/apps/user-manager/interfaces/viewmodels/BulkUserActionsViewModel';\nimport { SharedViewModelKeys } from 'libs/shared/constants/SharedViewModelKeys';\nimport { AggregateSearchField } from 'libs/shared/enums/AggregateSearchField';\nimport { LiteSupportArticle } from 'libs/shared/enums/SupportArticle';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { Config, CurrentUser, YearGroup } from 'libs/shared/interfaces';\nimport { ArticleHelper } from 'libs/shared/utils/ArticleHelper';\n\nimport { UserManagerRequests } from 'apps/user-manager/flight-requests/UserManagerRequests';\nimport { useBulkActionsUsersWrapper } from 'apps/user-manager/hooks/useBulkActionsUsersWrapper';\nimport { getUserManagerAppLinks } from 'apps/user-manager/utils/LiteUserManagerAppLinks';\n\nexport function BulkUserActionsYearGroupRolloverActionDetailsView(props: UserWizardParams): JSX.Element {\n const { users, count, setAllUserIds } = useBulkActionsUsersWrapper(props.userType);\n const appLinks = getUserManagerAppLinks(props.userType);\n const dispatch = useDispatch();\n\n const [viewModel] = useViewModel<BulkUserActionsViewModel>(\n SharedViewModelKeys.BULK_USER_ACTIONS\n );\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const yearGroups = Flight.useBasicFetch<YearGroup[]>(\n currentUser.hasCompleted && CustomerRequests.yearGroups(currentUser.data.customerId)\n );\n\n const aggregation = useFetchAggregation({\n userType: props.userType,\n field: AggregateSearchField.YearGroupValues,\n getSearchAggregation: UserManagerRequests.getSearchAggregation\n });\n\n React.useEffect(() => {\n if (viewModel?.userIdMap?.size || !currentUser.data?.customerId)\n return;\n\n Flight.fetch(dispatch, UserManagerRequests.getSearchUserIds(\n currentUser.data.customerId,\n currentUser.data.id,\n props.userType,\n {},\n (userIds: string[]) => setAllUserIds(userIds)\n ));\n }, [currentUser.data?.customerId]);\n\n const loaded = !!yearGroups.data && !!config.data && !!currentUser.data && !!aggregation;\n\n return (\n <BulkUserActionsWizardLayout\n appLinks={appLinks}\n userType={props.userType}\n users={users}\n currentStep='action-details'\n userCount={count}\n preventRedirect\n loaded={loaded}\n >\n {loaded &&\n <BulkUserActionsYearGroupRolloverActionDetails\n appLinks={appLinks}\n yearGroups={yearGroups.data}\n countsByYearGroup={aggregation}\n currentUser={currentUser.data}\n editSsoHelpArticleUrl={ArticleHelper.getLiteArticle(LiteSupportArticle.EditSsoAccounts)}\n />\n }\n </BulkUserActionsWizardLayout>\n );\n}","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix, useBootstrapBreakpoints, useBootstrapMinBreakpoint } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Row = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n ...props\n}, ref) => {\n const decoratedBsPrefix = useBootstrapPrefix(bsPrefix, 'row');\n const breakpoints = useBootstrapBreakpoints();\n const minBreakpoint = useBootstrapMinBreakpoint();\n const sizePrefix = `${decoratedBsPrefix}-cols`;\n const classes = [];\n breakpoints.forEach(brkPoint => {\n const propValue = props[brkPoint];\n delete props[brkPoint];\n let cols;\n if (propValue != null && typeof propValue === 'object') {\n ({\n cols\n } = propValue);\n } else {\n cols = propValue;\n }\n const infix = brkPoint !== minBreakpoint ? `-${brkPoint}` : '';\n if (cols != null) classes.push(`${sizePrefix}${infix}-${cols}`);\n });\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n ...props,\n className: classNames(className, decoratedBsPrefix, ...classes)\n });\n});\nRow.displayName = 'Row';\nexport default Row;"],"names":["BulkUserActionsRolloverYearGroupInfo","props","value","className","xs","phrase","yearGroups","map","yearGroup","i","countForYearGroup","countsByYearGroup","isGraduating","graduatingYearGroup","nextYearGroup","fakeDeactivatedUser","status","id","key","name","options","smartCount","user","WhitePill","children","useFetchAggregation","viewModel","currentUser","userIdMap","data","getSearchAggregation","userId","customerId","userType","queryParams","params","userIds","keys","field","OnlineSupportArticle","LiteSupportArticle","namespace","BulkUserActionsYearGroupRolloverActionDetails","SharedViewModelKeys","setViewModel","hasConfirmed","setHasConfirmed","setDisableNext","WizardLayoutContext","ArrayHelper","Text","editSsoHelpArticleUrl","href","target","onChange","e","find","yg","toString","Form","type","label","LanguageService","checked","BulkUserActionsYearGroupRolloverActionDetailsView","useBulkActionsUsersWrapper","users","count","setAllUserIds","appLinks","dispatch","UserRequests","config","ConfigRequests","hasCompleted","CustomerRequests","aggregation","AggregateSearchField","UserManagerRequests","size","loaded","BulkUserActionsWizardLayout","currentStep","userCount","preventRedirect","ArticleHelper","Row","bsPrefix","as","Component","ref","decoratedBsPrefix","breakpoints","minBreakpoint","sizePrefix","classes","forEach","brkPoint","propValue","cols","infix","push","displayName"],"sourceRoot":""}
1
+ {"version":3,"file":"scripts/1913-6a7d99b96f-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/apps/user-manager/components/bulk-actions-wizard/action-details/year-group-rollover-action-details/BulkUserActionsRolloverYearGroupInfo.tsx","file:///app/packages/libs/shared/src/apps/user-manager/components/white-pill/WhitePill.tsx","file:///app/packages/libs/shared/src/apps/user-manager/hooks/useFetchAggregation.ts","file:///app/packages/libs/shared/src/enums/SupportArticle.ts","file:///app/packages/libs/shared/src/apps/user-manager/components/bulk-actions-wizard/action-details/year-group-rollover-action-details/BulkUserActionsYearGroupRolloverActionsDetails.tsx","file:///app/packages/projects/lite/src/apps/user-manager/views/wizard/action-details/year-group-rollover/BulkUserActionsYearGroupRolloverActionDetailsView.tsx","file:///app/node_modules/react-bootstrap/esm/Row.js"],"sourcesContent":["import React from 'react';\nimport { Col, Row } from 'react-bootstrap';\n\nimport { UserStatusBadge } from 'libs/shared/apps/user-manager/components/user-list-items/components/UserStatusBadge';\nimport { WhitePill } from 'libs/shared/apps/user-manager/components/white-pill/WhitePill';\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\nimport { ObjectStatus } from 'libs/shared/enums/ObjectStatus';\nimport { User, YearGroup } from 'libs/shared/interfaces';\nimport { SearchAggregation } from 'libs/shared/interfaces/models/SearchAggregation';\n\ninterface BulkUserActionsRolloverYearGroupInfoProps {\n yearGroups: YearGroup[];\n graduatingYearGroup: YearGroup;\n countsByYearGroup: SearchAggregation;\n}\n\nexport function BulkUserActionsRolloverYearGroupInfo(props: BulkUserActionsRolloverYearGroupInfoProps): JSX.Element {\n return (\n <LanguageNamespaceContext.Provider value='userManager.bulkUserActionsYearGroupRolloverActionDetails'>\n <Row className='mb-2'>\n <Col xs={4}><Text phrase='yearGroupsList' /></Col>\n <Col xs={8}><Text phrase='rolloverTo' /></Col>\n </Row>\n\n {props.yearGroups.map((yearGroup, i) => {\n const countForYearGroup = props.countsByYearGroup[yearGroup.value] ?? 0;\n\n const isGraduating = yearGroup.value >= props.graduatingYearGroup?.value;\n const nextYearGroup = props.yearGroups[i + 1];\n\n const fakeDeactivatedUser = {\n status: ObjectStatus.Disabled,\n id: 'fake-deactivated-user' // Required or else the \"That's me\" badge will show up\n };\n\n return (\n <Row key={yearGroup.value} className='mb-2'>\n <Col xs={4}>\n <WhitePill>\n {yearGroup.name}\n </WhitePill>\n <div><Text phrase='count' options={{ smartCount: countForYearGroup }} /></div>\n </Col>\n <Col xs={8}>\n {isGraduating\n ? (\n <UserStatusBadge user={fakeDeactivatedUser as User} className='d-inline-block' />\n ) : (\n <WhitePill>\n {nextYearGroup?.name}\n </WhitePill>\n )\n }\n </Col>\n </Row>\n );\n })}\n </LanguageNamespaceContext.Provider>\n );\n}","import React from 'react';\n\ninterface WhitePillProps {\n className?: string;\n}\n\nexport function WhitePill(props: React.PropsWithChildren<WhitePillProps>): JSX.Element {\n return (\n <span className={`${props.className} rounded-pill px-2 text-nowrap bg-white border border-dark`}>\n {props.children}\n </span>\n );\n}","import { Flight } from 'libs/common/flight';\nimport { useViewModel } from 'libs/common/react/hooks/UseViewModel';\n\nimport { UserManagerQueryParams } from 'libs/shared/apps/user-manager/interfaces/query-params/UserManagerQueryParams';\nimport { BulkUserActionsViewModel } from 'libs/shared/apps/user-manager/interfaces/viewmodels/BulkUserActionsViewModel';\nimport { SharedViewModelKeys } from 'libs/shared/constants/SharedViewModelKeys';\nimport { AggregateSearchField } from 'libs/shared/enums/AggregateSearchField';\nimport { UserGroup } from 'libs/shared/enums/UserGroup';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { CurrentUser } from 'libs/shared/interfaces';\nimport { SearchAggregation } from 'libs/shared/interfaces/models/SearchAggregation';\n\ninterface UseFetchAggregationOptions {\n userType: UserGroup;\n field: AggregateSearchField;\n getSearchAggregation: (options: {\n userId: string,\n customerId: string,\n userType: UserGroup,\n queryParams: UserManagerQueryParams,\n userIds: string[],\n field: AggregateSearchField\n }) => Flight.Request;\n}\n\nexport function useFetchAggregation<T = SearchAggregation>(options: UseFetchAggregationOptions): T {\n const [viewModel] = useViewModel<BulkUserActionsViewModel>(\n SharedViewModelKeys.BULK_USER_ACTIONS\n );\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n\n // We need to check viewModel here in case a user refreshes the page\n // This needs to not error out so that the layout can redirect back to userman\n const aggregation = Flight.useBasicFetch<T>(\n viewModel?.userIdMap &&\n currentUser.data &&\n options.getSearchAggregation({\n userId: currentUser.data.id,\n customerId: currentUser.data.customerId,\n userType: options.userType,\n queryParams: viewModel.params,\n userIds: [...viewModel.userIdMap.keys()],\n field: options.field\n })\n );\n\n return aggregation.data;\n}","// Article name mapped to article ID on support site. Used by `ArticleHelper`\n\nexport enum OnlineSupportArticle {\n AddToPlaylist = '115005679748',\n EditSsoAccounts = '8202508040345',\n\n // LE\n LibraryEditor = '360001974533',\n VideoAccess = '360000153947',\n AddFromOnline = '360011718234',\n UploadToLibraryEditor = '360012069334',\n PBTErrorCodes = '360012421153',\n ManuelReview = '360020004534',\n LibraryReview = '360000163788',\n}\n\nexport enum LiteSupportArticle {\n Integrations = '4407268725529',\n Classrooms = '4405362551833',\n MakeInteractive = '4405370510873',\n EditSsoAccounts = '8202605666073',\n UploadToLibraryEditor = '10672936659865',\n AddFromLite = '10671345281561',\n ManageSsoYearGroups = '14691130889241',\n ContentReview = '18525199576601',\n ContentPermissions = '14692125209497',\n AccessSettings = '27927466562201',\n ContentGuidelines = '24133696186009',\n FoxtelFaq = '24133519542169',\n ViviIntegration = '23826297956377',\n AppleTvIntegration = '25832373739929',\n RssFeed = '32567445635097',\n ManageGroupPermissions = '35407217335705'\n}\n","import React from 'react';\nimport { Form } from 'react-bootstrap';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { useViewModel } from 'libs/common/react/hooks/UseViewModel';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { UserManagerAppLinks } from 'libs/shared/apps/user-manager/interfaces';\nimport { BulkUserActionsYearGroupRolloverViewModel } from 'libs/shared/apps/user-manager/interfaces/viewmodels/BulkUserActionsViewModel';\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\nimport { SharedViewModelKeys } from 'libs/shared/constants/SharedViewModelKeys';\nimport { WizardLayoutContext } from 'libs/shared/context/WizardLayoutContext';\nimport { CurrentUser, YearGroup } from 'libs/shared/interfaces';\nimport { SearchAggregation } from 'libs/shared/interfaces/models/SearchAggregation';\n\nimport { BulkUserActionsRolloverYearGroupInfo } from './BulkUserActionsRolloverYearGroupInfo';\n\nconst namespace = 'userManager.bulkUserActionsYearGroupRolloverActionDetails';\n\ninterface BulkUserActionsYearGroupRolloverActionDetailsProps {\n yearGroups: YearGroup[];\n countsByYearGroup: SearchAggregation;\n appLinks: UserManagerAppLinks;\n editSsoHelpArticleUrl?: string;\n currentUser?: CurrentUser;\n}\n\nexport function BulkUserActionsYearGroupRolloverActionDetails(\n props: BulkUserActionsYearGroupRolloverActionDetailsProps\n): JSX.Element {\n const [ viewModel, setViewModel ] = useViewModel<BulkUserActionsYearGroupRolloverViewModel>(\n SharedViewModelKeys.BULK_USER_ACTIONS\n );\n\n const [ hasConfirmed, setHasConfirmed ] = React.useState(false);\n\n const { setDisableNext } = React.useContext(WizardLayoutContext);\n\n React.useEffect(() => {\n setDisableNext(!viewModel?.yearGroup || !hasConfirmed);\n }, [ hasConfirmed, viewModel?.yearGroup ]);\n\n React.useEffect(() => {\n setViewModel('yearGroup', ArrayHelper.last(props.yearGroups));\n setViewModel('subAction', 'yearGroupRollover');\n }, []);\n\n function onSelectYearGroup(e: React.ChangeEvent<HTMLSelectElement>): void {\n const { value } = e.target;\n setViewModel('yearGroup', props.yearGroups.find(yg => yg.value.toString() === value.toString()));\n }\n\n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n <h2 className='h4 mb-3'>\n <Text phrase='heading' />\n </h2>\n\n <div className='px-2 pt-2 border rounded mb-2 pb-0'>\n <ul className='mt-2 ps-3 ms-1'>\n <li><Text phrase='info' /></li>\n <li>\n <Text phrase='ssoWarning' />&nbsp;\n {!!props.editSsoHelpArticleUrl && (\n <a href={props.editSsoHelpArticleUrl} target='_blank' className='info-link'>\n <Text phrase='ssoWarningArticle' />\n </a>\n )}\n </li>\n <li className='text-danger'><Text phrase='infoWarning' /></li>\n </ul>\n\n <div className='form-group'>\n <label><Text phrase='label' /></label>\n <select\n className='form-select form-select-lg w-33'\n onChange={onSelectYearGroup}\n value={viewModel.yearGroup?.value}\n >\n {props.yearGroups.map(yg => {\n return (\n <option key={yg.id} value={yg.value} className='text-dark'>\n {yg.name}\n </option>\n );\n })}\n </select>\n </div>\n\n <BulkUserActionsRolloverYearGroupInfo\n yearGroups={props.yearGroups}\n graduatingYearGroup={viewModel.yearGroup}\n countsByYearGroup={props.countsByYearGroup}\n />\n\n <Form.Check\n className='my-3'\n type='checkbox'\n label={LanguageService.getPhrase(namespace, 'rolloverConfirmationLabel')}\n id='rolloverConfirmation'\n value='rolloverConfirmation'\n onChange={() => setHasConfirmed(!hasConfirmed)}\n checked={hasConfirmed}\n />\n </div>\n </LanguageNamespaceContext.Provider>\n );\n}","import React from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { Flight } from 'libs/common/flight';\nimport { useViewModel } from 'libs/common/react/hooks/UseViewModel';\n\nimport { BulkUserActionsYearGroupRolloverActionDetails } from 'libs/shared/apps/user-manager/components/bulk-actions-wizard/action-details/year-group-rollover-action-details/BulkUserActionsYearGroupRolloverActionsDetails';\nimport { BulkUserActionsWizardLayout } from 'libs/shared/apps/user-manager/components/bulk-actions-wizard/layout/BulkUserActionsWizardLayout';\nimport { useFetchAggregation } from 'libs/shared/apps/user-manager/hooks/useFetchAggregation';\nimport { UserWizardParams } from 'libs/shared/apps/user-manager/interfaces/query-params/UserWizardParams';\nimport { BulkUserActionsViewModel } from 'libs/shared/apps/user-manager/interfaces/viewmodels/BulkUserActionsViewModel';\nimport { SharedViewModelKeys } from 'libs/shared/constants/SharedViewModelKeys';\nimport { AggregateSearchField } from 'libs/shared/enums/AggregateSearchField';\nimport { LiteSupportArticle } from 'libs/shared/enums/SupportArticle';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { Config, CurrentUser, YearGroup } from 'libs/shared/interfaces';\nimport { ArticleHelper } from 'libs/shared/utils/ArticleHelper';\n\nimport { UserManagerRequests } from 'apps/user-manager/flight-requests/UserManagerRequests';\nimport { useBulkActionsUsersWrapper } from 'apps/user-manager/hooks/useBulkActionsUsersWrapper';\nimport { getUserManagerAppLinks } from 'apps/user-manager/utils/LiteUserManagerAppLinks';\n\nexport function BulkUserActionsYearGroupRolloverActionDetailsView(props: UserWizardParams): JSX.Element {\n const { users, count, setAllUserIds } = useBulkActionsUsersWrapper(props.userType);\n const appLinks = getUserManagerAppLinks(props.userType);\n const dispatch = useDispatch();\n\n const [viewModel] = useViewModel<BulkUserActionsViewModel>(\n SharedViewModelKeys.BULK_USER_ACTIONS\n );\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const yearGroups = Flight.useBasicFetch<YearGroup[]>(\n currentUser.hasCompleted && CustomerRequests.yearGroups(currentUser.data.customerId)\n );\n\n const aggregation = useFetchAggregation({\n userType: props.userType,\n field: AggregateSearchField.YearGroupValues,\n getSearchAggregation: UserManagerRequests.getSearchAggregation\n });\n\n React.useEffect(() => {\n if (viewModel?.userIdMap?.size || !currentUser.data?.customerId)\n return;\n\n Flight.fetch(dispatch, UserManagerRequests.getSearchUserIds(\n currentUser.data.customerId,\n currentUser.data.id,\n props.userType,\n {},\n (userIds: string[]) => setAllUserIds(userIds)\n ));\n }, [currentUser.data?.customerId]);\n\n const loaded = !!yearGroups.data && !!config.data && !!currentUser.data && !!aggregation;\n\n return (\n <BulkUserActionsWizardLayout\n appLinks={appLinks}\n userType={props.userType}\n users={users}\n currentStep='action-details'\n userCount={count}\n preventRedirect\n loaded={loaded}\n >\n {loaded &&\n <BulkUserActionsYearGroupRolloverActionDetails\n appLinks={appLinks}\n yearGroups={yearGroups.data}\n countsByYearGroup={aggregation}\n currentUser={currentUser.data}\n editSsoHelpArticleUrl={ArticleHelper.getLiteArticle(LiteSupportArticle.EditSsoAccounts)}\n />\n }\n </BulkUserActionsWizardLayout>\n );\n}","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix, useBootstrapBreakpoints, useBootstrapMinBreakpoint } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Row = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n ...props\n}, ref) => {\n const decoratedBsPrefix = useBootstrapPrefix(bsPrefix, 'row');\n const breakpoints = useBootstrapBreakpoints();\n const minBreakpoint = useBootstrapMinBreakpoint();\n const sizePrefix = `${decoratedBsPrefix}-cols`;\n const classes = [];\n breakpoints.forEach(brkPoint => {\n const propValue = props[brkPoint];\n delete props[brkPoint];\n let cols;\n if (propValue != null && typeof propValue === 'object') {\n ({\n cols\n } = propValue);\n } else {\n cols = propValue;\n }\n const infix = brkPoint !== minBreakpoint ? `-${brkPoint}` : '';\n if (cols != null) classes.push(`${sizePrefix}${infix}-${cols}`);\n });\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n ...props,\n className: classNames(className, decoratedBsPrefix, ...classes)\n });\n});\nRow.displayName = 'Row';\nexport default Row;"],"names":["BulkUserActionsRolloverYearGroupInfo","props","value","className","xs","phrase","yearGroups","map","yearGroup","i","countForYearGroup","countsByYearGroup","isGraduating","graduatingYearGroup","nextYearGroup","fakeDeactivatedUser","status","id","key","name","options","smartCount","user","WhitePill","children","useFetchAggregation","viewModel","currentUser","userIdMap","data","getSearchAggregation","userId","customerId","userType","queryParams","params","userIds","keys","field","OnlineSupportArticle","LiteSupportArticle","namespace","BulkUserActionsYearGroupRolloverActionDetails","SharedViewModelKeys","setViewModel","hasConfirmed","setHasConfirmed","setDisableNext","WizardLayoutContext","ArrayHelper","Text","editSsoHelpArticleUrl","href","target","onChange","e","find","yg","toString","Form","type","label","LanguageService","checked","BulkUserActionsYearGroupRolloverActionDetailsView","useBulkActionsUsersWrapper","users","count","setAllUserIds","appLinks","dispatch","UserRequests","config","ConfigRequests","hasCompleted","CustomerRequests","aggregation","AggregateSearchField","UserManagerRequests","size","loaded","BulkUserActionsWizardLayout","currentStep","userCount","preventRedirect","ArticleHelper","Row","bsPrefix","as","Component","ref","decoratedBsPrefix","breakpoints","minBreakpoint","sizePrefix","classes","forEach","brkPoint","propValue","cols","infix","push","displayName"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[1958],{71958:(e,t,r)=>{r.r(t),r.d(t,{JoinClassroomView:()=>j});var n=r(32735),a=r(80247),l=r(70680),o=r(39202),c=r(50242),i=r(23481),s=r(81886),u=r(20354),m=r(36848),f=r(2786),d=r(31949),b=r(83421),g=r(14070),h=r(97291),v=r(99742);function y(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,a,l,o,c=[],i=!0,s=!1;try{if(l=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;i=!1}else for(;!(i=(n=l.call(r)).done)&&(c.push(n.value),c.length!==t);i=!0);}catch(e){s=!0,a=e}finally{try{if(!i&&null!=r.return&&(o=r.return(),Object(o)!==o))return}finally{if(s)throw a}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return E(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?E(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 E(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}var p=i.T.encloseNamespace("classrooms.joinClassroomResponseDetails");function k(e){var t=y(n.useState(""),2),r=t[0],a=t[1],l=y(n.useState(""),2),o=l[0],c=l[1];return n.useEffect((function(){switch(e.error){case"invalid":a(p("invalidError")),c(p("invalidMessage"));break;case"wrong-school":a(p("wrongSchoolError")),c(p("wrongSchoolMessage"));break;case"not-a-learner":a(p("notALearnerError")),c(p("notALearnerMessage"));break;default:a(p("unknownError")),c(p("unknownMessage"))}}),[e.error]),e.error?n.createElement("div",null,n.createElement("img",{src:v.W.AddStudents.JoinClassroomResponse.ERROR,className:"w-50 mb-3 d-block mx-auto"}),n.createElement("div",{className:"text-center h6"},n.createElement("strong",null,r)),n.createElement("div",{className:"text-center mb-3"},o)):n.createElement("div",null,n.createElement("img",{src:v.W.AddStudents.JoinClassroomResponse.SUCCESS,className:"w-50 mb-3 d-block mx-auto"}),n.createElement("div",{className:"text-center h6"},n.createElement("strong",null,p("success"))),n.createElement("div",{className:"text-center mb-3"},p("join"),n.createElement("strong",null,e.classroomName)))}var S=r(88630);const A={logo:"d_Zk6",formContainer:"RrOGB"};function C(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,a,l,o,c=[],i=!0,s=!1;try{if(l=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;i=!1}else for(;!(i=(n=l.call(r)).done)&&(c.push(n.value),c.length!==t);i=!0);}catch(e){s=!0,a=e}finally{try{if(!i&&null!=r.return&&(o=r.return(),Object(o)!==o))return}finally{if(s)throw a}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return w(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?w(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 w(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}var N=i.T.encloseNamespace("classrooms.joinClassroom");function j(e){var t,r,i=(0,l.I0)(),v=u.a.useBasicFetch(d.N.currentUser()),y=C(n.useState(!1),2),E=y[0],p=y[1],w=C(n.useState(null),2),j=w[0],x=w[1],I=C(n.useState(""),2),U=I[0],O=I[1];function L(e){O(e.classroomName),p(!0)}function M(e){switch(e.status){case c.o.NotFound:x("invalid");break;case c.o.Forbidden:x("wrong-school");break;case c.o.BadRequest:x("not-a-learner");break;default:x("unknown")}p(!0)}return n.useEffect((function(){v.data&&u.a.fetch(i,S.F.checkJoinCode(e.joinCode,(function(t){v.data.isAuthenticated?u.a.fetch(i,S.F.joinClassroom(e.joinCode,L,M)):s.Q.C$.trigger({application:h.O.DEFAULT,action:g.e.Default.CHALLENGE,params:{redirectUrl:o.Ab.GetCurrentPath()+o.Ab.GetCurrentQueryString(),skipPrompt:!0,customerId:t.customerId}})}),M))}),[null===(t=v.data)||void 0===t?void 0:t.isAuthenticated]),n.createElement(b.Z,null,n.createElement("div",{className:"".concat(A.formContainer," m-auto")},n.createElement("div",{className:"".concat(A.logo," mb-4 mx-auto")},n.createElement(f.$S,null)),!E&&n.createElement("div",{className:"text-center p-5"},n.createElement(a.Z,{as:"div",animation:"border",role:"status"})),E&&!j&&n.createElement(k,{classroomName:U}),E&&j&&n.createElement(k,{error:j}),(null===(r=v.data)||void 0===r?void 0:r.isAuthenticated)&&n.createElement(m.F,{className:"btn btn-dark w-100 mt-2 btn-lg",appLink:{application:h.O.DASHBOARD,action:g.e.Dashboard.HOME}},N("enter"))))}},83421:(e,t,r)=>{r.d(t,{H:()=>m,Z:()=>d});var n=r(32735),a=r(54610),l=r(4594),o=r(67453),c=r(99742);const i={left:"vIypY",leftTextImage:"YViNj",right:"MkD4u",blur:"X6mCh",imageContainer:"bc7kz",imagePosition:"JOhEj",image:"Ef2QR",thumbnail:"Gdurb",tallposter:"fjVNK",cover:"o3j31",linksContainer:"AT9Dk"};function s(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,a,l,o,c=[],i=!0,s=!1;try{if(l=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;i=!1}else for(;!(i=(n=l.call(r)).done)&&(c.push(n.value),c.length!==t);i=!0);}catch(e){s=!0,a=e}finally{try{if(!i&&null!=r.return&&(o=r.return(),Object(o)!==o))return}finally{if(s)throw a}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return u(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?u(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}var m=[{bgUrl:c.W.LaunchPad.BG_1},{bgUrl:c.W.LaunchPad.BG_2},{bgUrl:c.W.LaunchPad.BG_3},{bgUrl:c.W.LaunchPad.BG_4},{bgUrl:c.W.LaunchPad.BG_5}];function f(e){switch(e){case l.E.Video:case l.E.Interactive:case l.E.Clip:return i.thumbnail;case l.E.Subject:case l.E.Playlist:return i.cover;case l.E.Series:return i.tallposter;default:return""}}function d(e){var t,r=s(n.useState(!1),2),l=r[0],c=r[1],u=s(n.useState(""),2),d=u[0],b=u[1],g=s(n.useState(""),2),h=g[0],v=g[1],y=o.j.createUrl(e.imageUrl,{size:a.h2.Large}),E=m;return n.useEffect((function(){if(!y&&E&&0!==E.length){var e,t=(e=E)[Math.floor(Math.random()*e.length)];t.bgUrl&&b(t.bgUrl),t.textUrl&&v(t.textUrl)}}),[]),n.useEffect((function(){if(y){var e=new Image;return e.onload=function(){return c(!0)},e.src=y,function(){return e.onload=null}}}),[]),n.createElement("div",{className:"d-flex"},e.leftComponent?e.leftComponent():n.createElement("div",{className:"".concat(i.left," bg-light"),style:{backgroundImage:"url('".concat(d,"')")}},h&&n.createElement("div",{className:i.leftTextImage,style:{backgroundImage:"url('".concat(h,"')")}}),l&&n.createElement(n.Fragment,null,n.createElement("div",{className:i.blur,style:{backgroundImage:"url('".concat(y,"')")}}),n.createElement("div",{className:"".concat(i.imageContainer," ").concat(f(e.objectType))},n.createElement("div",{className:i.imagePosition},n.createElement("img",{className:i.image,src:y,alt:e.title}))))),n.createElement("div",{className:"".concat(i.right," bg-white d-flex flex-column")},n.createElement("div",{className:"position-absolute d-flex align-items-center ".concat(i.linksContainer)},null===(t=e.links)||void 0===t?void 0:t.map((function(e,t){return e.hide?n.createElement(n.Fragment,{key:t}):n.createElement("a",{key:t,href:e.url,className:"info-link fw-semibold",onClick:e.onClick},e.text)}))),e.children))}}}]);
2
+ //# sourceMappingURL=1958-cf5dd56576-lite.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scripts/1958-31e6049ac7-lite.chunk.js","mappings":"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","sources":["file:///app/packages/projects/lite/src/apps/classrooms/components/join-classroom-response-details/JoinClassroomResponseDetails.tsx","file:///app/packages/projects/lite/src/apps/launchpad/views/join-classroom/join-classroom.scss","file:///app/packages/projects/lite/src/apps/launchpad/views/join-classroom/JoinClassroomView.tsx","file:///app/packages/projects/lite/src/shared/components/launchpad/launchpad.scss","file:///app/packages/projects/lite/src/shared/components/launchpad/Launchpad.tsx"],"sourcesContent":["import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nconst namespace = 'classrooms.joinClassroomResponseDetails';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface JoinClassroomResponseDetailsProps {\n classroomName?: string;\n error?: 'invalid' | 'wrong-school' | 'not-a-learner' | 'unknown' | null;\n}\n\nexport function JoinClassroomResponseDetails(props: JoinClassroomResponseDetailsProps): JSX.Element {\n const [ error, setError ] = React.useState('');\n const [ message, setMessage ] = React.useState('');\n\n React.useEffect(() => {\n switch (props.error) {\n case 'invalid':\n setError(getPhrase('invalidError'));\n setMessage(getPhrase('invalidMessage'));\n break;\n case 'wrong-school':\n setError(getPhrase('wrongSchoolError'));\n setMessage(getPhrase('wrongSchoolMessage'));\n break;\n case 'not-a-learner':\n setError(getPhrase('notALearnerError'));\n setMessage(getPhrase('notALearnerMessage'));\n break;\n default:\n setError(getPhrase('unknownError'));\n setMessage(getPhrase('unknownMessage'));\n break;\n }\n }, [props.error]);\n\n if (!props.error)\n return (\n <div>\n <img src={ImageUrls.AddStudents.JoinClassroomResponse.SUCCESS} className='w-50 mb-3 d-block mx-auto' />\n <div className='text-center h6'><strong>{getPhrase('success')}</strong></div>\n <div className='text-center mb-3'>{getPhrase('join')}<strong>{props.classroomName}</strong></div>\n </div>\n );\n \n return (\n <div>\n <img src={ImageUrls.AddStudents.JoinClassroomResponse.ERROR} className='w-50 mb-3 d-block mx-auto' />\n <div className='text-center h6'><strong>{error}</strong></div>\n <div className='text-center mb-3'>{message}</div>\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"logo\":\"d_Zk6\",\"formContainer\":\"RrOGB\"};","import React from 'react';\nimport { Spinner } from 'react-bootstrap';\nimport { useDispatch } from 'react-redux';\n\nimport { LocationUtils } from 'libs/common/backbone/core';\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { Xhr } from 'libs/common/backbone/interfaces';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/flight';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { ClickViewLogo } from 'libs/shared/components/svgs/clickview-logo/ClickViewLogo';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { CurrentUser } from 'libs/shared/interfaces';\n\nimport { Launchpad } from 'shared/components/launchpad/Launchpad';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { JoinClassroomResponseDetails } from 'apps/classrooms/components/join-classroom-response-details/JoinClassroomResponseDetails';\nimport { ClassroomRequests } from 'apps/classrooms/flight-requests/ClassroomRequests';\nimport { JoinClassroomResponse } from 'apps/classrooms/interfaces/JoinClassroomResponse';\n\nimport styles from './join-classroom.scss';\n\nconst namespace = 'classrooms.joinClassroom';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ntype Errors = 'invalid' | 'wrong-school' | 'not-a-learner' | 'unknown' | null;\n\ninterface JoinClassroomProps {\n joinCode: string;\n}\n\nexport function JoinClassroomView(props: JoinClassroomProps): React.ReactElement {\n const dispatch = useDispatch();\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n\n const [ isComplete, setIsComplete ] = React.useState(false);\n const [ error, setError ] = React.useState<Errors>(null);\n const [ classroomName, setClassroomName ] = React.useState('');\n\n function onSuccess(resp: JoinClassroomResponse): void {\n setClassroomName(resp.classroomName);\n setIsComplete(true);\n }\n\n function onError(xhr: Xhr): void {\n switch (xhr.status) {\n case HttpStatus.NotFound:\n setError('invalid');\n break;\n case HttpStatus.Forbidden:\n setError('wrong-school');\n break;\n case HttpStatus.BadRequest:\n setError('not-a-learner');\n break;\n default:\n setError('unknown');\n break;\n }\n setIsComplete(true);\n }\n\n function checkCode(): void {\n Flight.fetch(dispatch, ClassroomRequests.checkJoinCode(props.joinCode, resp => {\n if (currentUser.data.isAuthenticated) {\n joinClassroom();\n return;\n }\n\n Core.AppLinkHelper.trigger({\n application: AppChannels.DEFAULT,\n action: Actions.Default.LOG_IN,\n params: {\n redirectUrl: LocationUtils.GetCurrentPath() + LocationUtils.GetCurrentQueryString(),\n skipPrompt: true,\n customerId: resp.customerId\n }\n });\n }, onError));\n }\n\n function joinClassroom(): void {\n Flight.fetch(dispatch, ClassroomRequests.joinClassroom(\n props.joinCode,\n onSuccess,\n onError\n ));\n }\n\n React.useEffect(() => {\n if (!currentUser.data)\n return;\n\n checkCode();\n }, [currentUser.data?.isAuthenticated]);\n\n return (\n <Launchpad>\n <div className={`${styles.formContainer} m-auto`}>\n <div className={`${styles.logo} mb-4 mx-auto`}>\n <ClickViewLogo />\n </div>\n {!isComplete && <div className='text-center p-5'>\n <Spinner as='div' animation='border' role='status' />\n </div>}\n {isComplete && !error && <JoinClassroomResponseDetails classroomName={classroomName}/>}\n {isComplete && error && <JoinClassroomResponseDetails error={error}/>}\n {currentUser.data?.isAuthenticated &&\n <AppLink\n className='btn btn-dark w-100 mt-2 btn-lg'\n appLink={{\n application: AppChannels.DASHBOARD,\n action: Actions.Dashboard.HOME\n }}\n >\n {getPhrase('enter')}\n </AppLink>\n }\n </div>\n </Launchpad>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"left\":\"vIypY\",\"leftTextImage\":\"YViNj\",\"right\":\"MkD4u\",\"blur\":\"X6mCh\",\"imageContainer\":\"bc7kz\",\"imagePosition\":\"JOhEj\",\"image\":\"Ef2QR\",\"thumbnail\":\"Gdurb\",\"tallposter\":\"fjVNK\",\"cover\":\"o3j31\",\"linksContainer\":\"AT9Dk\"};","import React from 'react';\n\nimport { ImageSize } from 'libs/shared/enums/Images';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { ImageHelper } from 'libs/shared/utils/ImageHelper';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nimport styles from './launchpad.scss';\n\nexport const LAUNCHPAD_FALLBACK_IMAGES = [\n {\n bgUrl: ImageUrls.LaunchPad.BG_1\n },\n {\n bgUrl: ImageUrls.LaunchPad.BG_2\n },\n {\n bgUrl: ImageUrls.LaunchPad.BG_3\n },\n {\n bgUrl: ImageUrls.LaunchPad.BG_4\n },\n {\n bgUrl: ImageUrls.LaunchPad.BG_5\n }\n];\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst XMAS_URLS: LaunchImage[] = [\n {\n bgUrl: '/images/launchpad/xmas/2024-promo1-bg.png'\n },\n {\n bgUrl: '/images/launchpad/xmas/2024-promo2-bg.png'\n },\n {\n bgUrl: '/images/launchpad/xmas/2024-promo3-bg.png'\n },\n {\n bgUrl: '/images/launchpad/xmas/2024-promo4-bg.png'\n },\n {\n bgUrl: '/images/launchpad/xmas/2024-promo5-bg.png'\n }\n];\n\nfunction mapObjectTypeToImageClass(objectType: MasterType): string {\n switch (objectType) {\n case MasterType.Video:\n case MasterType.Interactive:\n case MasterType.Clip:\n return styles.thumbnail;\n\n case MasterType.Subject:\n case MasterType.Playlist:\n return styles.cover;\n\n case MasterType.Series:\n return styles.tallposter;\n\n default:\n return '';\n }\n}\n\ninterface LaunchpadLink {\n url: string;\n text: string;\n onClick?: () => void;\n hide?: boolean;\n}\n\ninterface LaunchpadProps {\n objectType?: MasterType;\n title?: string;\n imageUrl?: string;\n links?: LaunchpadLink[];\n leftComponent?: () => JSX.Element;\n}\n\ninterface LaunchImage {\n bgUrl: string;\n textUrl?: string;\n}\n\nfunction getRandomImage(urlLists: LaunchImage[]): LaunchImage {\n return urlLists[Math.floor(Math.random() * urlLists.length)];\n}\n\nexport function Launchpad(props: React.PropsWithChildren<LaunchpadProps>): JSX.Element {\n const [ showImage, setShowImage ] = React.useState(false);\n const [ image, setImage ] = React.useState<string>('');\n const [ textImage, setTextImage ] = React.useState<string>('');\n\n const imageUrl = ImageHelper.createUrl(props.imageUrl, { size: ImageSize.Large });\n const IMAGE_URLS = LAUNCHPAD_FALLBACK_IMAGES;\n\n React.useEffect(() => {\n if (imageUrl || !IMAGE_URLS || IMAGE_URLS.length === 0)\n return;\n\n const image = getRandomImage(IMAGE_URLS);\n\n if (image.bgUrl) {\n setImage(image.bgUrl);\n }\n\n if (image.textUrl) {\n setTextImage(image.textUrl);\n }\n }, []);\n\n React.useEffect(() => {\n if (!imageUrl)\n return;\n\n const img = new Image();\n img.onload = () => setShowImage(true);\n img.src = imageUrl;\n return () => img.onload = null;\n }, []);\n\n return (\n <div className='d-flex'>\n { props.leftComponent ?\n props.leftComponent()\n :\n <div className={`${styles.left} bg-light`} style={{ backgroundImage: `url('${image}')` }}>\n { textImage && (\n <div className={styles.leftTextImage} style={{ backgroundImage: `url('${textImage}')` }} />\n )}\n \n {showImage &&\n <>\n <div className={styles.blur} style={{ backgroundImage: `url('${imageUrl}')` }} />\n <div className={`${styles.imageContainer} ${mapObjectTypeToImageClass(props.objectType)}`}>\n <div className={styles.imagePosition}>\n <img className={styles.image} src={imageUrl} alt={props.title} />\n </div>\n </div>\n </>\n }\n </div>\n }\n <div className={`${styles.right} bg-white d-flex flex-column`}>\n <div className={`position-absolute d-flex align-items-center ${styles.linksContainer}`}>\n {props.links?.map((link, key) => {\n if (link.hide)\n return <React.Fragment key={key}></React.Fragment>;\n\n return (\n <a key={key} href={link.url} className='info-link fw-semibold' onClick={link.onClick}>\n {link.text}\n </a>\n );\n })}\n </div>\n\n {props.children}\n </div>\n </div>\n );\n}"],"names":["getPhrase","LanguageService","JoinClassroomResponseDetails","props","error","setError","message","setMessage","src","ImageUrls","className","classroomName","JoinClassroomView","dispatch","currentUser","UserRequests","isComplete","setIsComplete","setClassroomName","onSuccess","resp","onError","xhr","status","HttpStatus","data","ClassroomRequests","joinCode","isAuthenticated","application","action","params","redirectUrl","skipPrompt","customerId","Launchpad","ClickViewLogo","Spinner","as","animation","role","AppLink","appLink","LAUNCHPAD_FALLBACK_IMAGES","bgUrl","mapObjectTypeToImageClass","objectType","MasterType","showImage","setShowImage","image","setImage","textImage","setTextImage","imageUrl","ImageHelper","size","IMAGE_URLS","length","urlLists","Math","floor","random","textUrl","img","Image","onload","leftComponent","style","backgroundImage","alt","title","links","map","link","key","hide","href","url","onClick","text","children"],"sourceRoot":""}
1
+ {"version":3,"file":"scripts/1958-cf5dd56576-lite.chunk.js","mappings":"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","sources":["file:///app/packages/projects/lite/src/apps/classrooms/components/join-classroom-response-details/JoinClassroomResponseDetails.tsx","file:///app/packages/projects/lite/src/apps/launchpad/views/join-classroom/join-classroom.scss","file:///app/packages/projects/lite/src/apps/launchpad/views/join-classroom/JoinClassroomView.tsx","file:///app/packages/projects/lite/src/shared/components/launchpad/launchpad.scss","file:///app/packages/projects/lite/src/shared/components/launchpad/Launchpad.tsx"],"sourcesContent":["import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nconst namespace = 'classrooms.joinClassroomResponseDetails';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface JoinClassroomResponseDetailsProps {\n classroomName?: string;\n error?: 'invalid' | 'wrong-school' | 'not-a-learner' | 'unknown' | null;\n}\n\nexport function JoinClassroomResponseDetails(props: JoinClassroomResponseDetailsProps): JSX.Element {\n const [ error, setError ] = React.useState('');\n const [ message, setMessage ] = React.useState('');\n\n React.useEffect(() => {\n switch (props.error) {\n case 'invalid':\n setError(getPhrase('invalidError'));\n setMessage(getPhrase('invalidMessage'));\n break;\n case 'wrong-school':\n setError(getPhrase('wrongSchoolError'));\n setMessage(getPhrase('wrongSchoolMessage'));\n break;\n case 'not-a-learner':\n setError(getPhrase('notALearnerError'));\n setMessage(getPhrase('notALearnerMessage'));\n break;\n default:\n setError(getPhrase('unknownError'));\n setMessage(getPhrase('unknownMessage'));\n break;\n }\n }, [props.error]);\n\n if (!props.error)\n return (\n <div>\n <img src={ImageUrls.AddStudents.JoinClassroomResponse.SUCCESS} className='w-50 mb-3 d-block mx-auto' />\n <div className='text-center h6'><strong>{getPhrase('success')}</strong></div>\n <div className='text-center mb-3'>{getPhrase('join')}<strong>{props.classroomName}</strong></div>\n </div>\n );\n \n return (\n <div>\n <img src={ImageUrls.AddStudents.JoinClassroomResponse.ERROR} className='w-50 mb-3 d-block mx-auto' />\n <div className='text-center h6'><strong>{error}</strong></div>\n <div className='text-center mb-3'>{message}</div>\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"logo\":\"d_Zk6\",\"formContainer\":\"RrOGB\"};","import React from 'react';\nimport { Spinner } from 'react-bootstrap';\nimport { useDispatch } from 'react-redux';\n\nimport { LocationUtils } from 'libs/common/backbone/core';\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { Xhr } from 'libs/common/backbone/interfaces';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/flight';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { ClickViewLogo } from 'libs/shared/components/svgs/clickview-logo/ClickViewLogo';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { CurrentUser } from 'libs/shared/interfaces';\n\nimport { Launchpad } from 'shared/components/launchpad/Launchpad';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { JoinClassroomResponseDetails } from 'apps/classrooms/components/join-classroom-response-details/JoinClassroomResponseDetails';\nimport { ClassroomRequests } from 'apps/classrooms/flight-requests/ClassroomRequests';\nimport { JoinClassroomResponse } from 'apps/classrooms/interfaces/JoinClassroomResponse';\n\nimport styles from './join-classroom.scss';\n\nconst namespace = 'classrooms.joinClassroom';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ntype Errors = 'invalid' | 'wrong-school' | 'not-a-learner' | 'unknown' | null;\n\ninterface JoinClassroomProps {\n joinCode: string;\n}\n\nexport function JoinClassroomView(props: JoinClassroomProps): React.ReactElement {\n const dispatch = useDispatch();\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n\n const [ isComplete, setIsComplete ] = React.useState(false);\n const [ error, setError ] = React.useState<Errors>(null);\n const [ classroomName, setClassroomName ] = React.useState('');\n\n function onSuccess(resp: JoinClassroomResponse): void {\n setClassroomName(resp.classroomName);\n setIsComplete(true);\n }\n\n function onError(xhr: Xhr): void {\n switch (xhr.status) {\n case HttpStatus.NotFound:\n setError('invalid');\n break;\n case HttpStatus.Forbidden:\n setError('wrong-school');\n break;\n case HttpStatus.BadRequest:\n setError('not-a-learner');\n break;\n default:\n setError('unknown');\n break;\n }\n setIsComplete(true);\n }\n\n function checkCode(): void {\n Flight.fetch(dispatch, ClassroomRequests.checkJoinCode(props.joinCode, resp => {\n if (currentUser.data.isAuthenticated) {\n joinClassroom();\n return;\n }\n\n Core.AppLinkHelper.trigger({\n application: AppChannels.DEFAULT,\n action: Actions.Default.CHALLENGE,\n params: {\n redirectUrl: LocationUtils.GetCurrentPath() + LocationUtils.GetCurrentQueryString(),\n skipPrompt: true,\n customerId: resp.customerId\n }\n });\n }, onError));\n }\n\n function joinClassroom(): void {\n Flight.fetch(dispatch, ClassroomRequests.joinClassroom(\n props.joinCode,\n onSuccess,\n onError\n ));\n }\n\n React.useEffect(() => {\n if (!currentUser.data)\n return;\n\n checkCode();\n }, [currentUser.data?.isAuthenticated]);\n\n return (\n <Launchpad>\n <div className={`${styles.formContainer} m-auto`}>\n <div className={`${styles.logo} mb-4 mx-auto`}>\n <ClickViewLogo />\n </div>\n {!isComplete && <div className='text-center p-5'>\n <Spinner as='div' animation='border' role='status' />\n </div>}\n {isComplete && !error && <JoinClassroomResponseDetails classroomName={classroomName}/>}\n {isComplete && error && <JoinClassroomResponseDetails error={error}/>}\n {currentUser.data?.isAuthenticated &&\n <AppLink\n className='btn btn-dark w-100 mt-2 btn-lg'\n appLink={{\n application: AppChannels.DASHBOARD,\n action: Actions.Dashboard.HOME\n }}\n >\n {getPhrase('enter')}\n </AppLink>\n }\n </div>\n </Launchpad>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"left\":\"vIypY\",\"leftTextImage\":\"YViNj\",\"right\":\"MkD4u\",\"blur\":\"X6mCh\",\"imageContainer\":\"bc7kz\",\"imagePosition\":\"JOhEj\",\"image\":\"Ef2QR\",\"thumbnail\":\"Gdurb\",\"tallposter\":\"fjVNK\",\"cover\":\"o3j31\",\"linksContainer\":\"AT9Dk\"};","import React from 'react';\n\nimport { ImageSize } from 'libs/shared/enums/Images';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { ImageHelper } from 'libs/shared/utils/ImageHelper';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nimport styles from './launchpad.scss';\n\nexport const LAUNCHPAD_FALLBACK_IMAGES = [\n {\n bgUrl: ImageUrls.LaunchPad.BG_1\n },\n {\n bgUrl: ImageUrls.LaunchPad.BG_2\n },\n {\n bgUrl: ImageUrls.LaunchPad.BG_3\n },\n {\n bgUrl: ImageUrls.LaunchPad.BG_4\n },\n {\n bgUrl: ImageUrls.LaunchPad.BG_5\n }\n];\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst XMAS_URLS: LaunchImage[] = [\n {\n bgUrl: '/images/launchpad/xmas/2024-promo1-bg.png'\n },\n {\n bgUrl: '/images/launchpad/xmas/2024-promo2-bg.png'\n },\n {\n bgUrl: '/images/launchpad/xmas/2024-promo3-bg.png'\n },\n {\n bgUrl: '/images/launchpad/xmas/2024-promo4-bg.png'\n },\n {\n bgUrl: '/images/launchpad/xmas/2024-promo5-bg.png'\n }\n];\n\nfunction mapObjectTypeToImageClass(objectType: MasterType): string {\n switch (objectType) {\n case MasterType.Video:\n case MasterType.Interactive:\n case MasterType.Clip:\n return styles.thumbnail;\n\n case MasterType.Subject:\n case MasterType.Playlist:\n return styles.cover;\n\n case MasterType.Series:\n return styles.tallposter;\n\n default:\n return '';\n }\n}\n\ninterface LaunchpadLink {\n url: string;\n text: string;\n onClick?: () => void;\n hide?: boolean;\n}\n\ninterface LaunchpadProps {\n objectType?: MasterType;\n title?: string;\n imageUrl?: string;\n links?: LaunchpadLink[];\n leftComponent?: () => JSX.Element;\n}\n\ninterface LaunchImage {\n bgUrl: string;\n textUrl?: string;\n}\n\nfunction getRandomImage(urlLists: LaunchImage[]): LaunchImage {\n return urlLists[Math.floor(Math.random() * urlLists.length)];\n}\n\nexport function Launchpad(props: React.PropsWithChildren<LaunchpadProps>): JSX.Element {\n const [ showImage, setShowImage ] = React.useState(false);\n const [ image, setImage ] = React.useState<string>('');\n const [ textImage, setTextImage ] = React.useState<string>('');\n\n const imageUrl = ImageHelper.createUrl(props.imageUrl, { size: ImageSize.Large });\n const IMAGE_URLS = LAUNCHPAD_FALLBACK_IMAGES;\n\n React.useEffect(() => {\n if (imageUrl || !IMAGE_URLS || IMAGE_URLS.length === 0)\n return;\n\n const image = getRandomImage(IMAGE_URLS);\n\n if (image.bgUrl) {\n setImage(image.bgUrl);\n }\n\n if (image.textUrl) {\n setTextImage(image.textUrl);\n }\n }, []);\n\n React.useEffect(() => {\n if (!imageUrl)\n return;\n\n const img = new Image();\n img.onload = () => setShowImage(true);\n img.src = imageUrl;\n return () => img.onload = null;\n }, []);\n\n return (\n <div className='d-flex'>\n { props.leftComponent ?\n props.leftComponent()\n :\n <div className={`${styles.left} bg-light`} style={{ backgroundImage: `url('${image}')` }}>\n { textImage && (\n <div className={styles.leftTextImage} style={{ backgroundImage: `url('${textImage}')` }} />\n )}\n \n {showImage &&\n <>\n <div className={styles.blur} style={{ backgroundImage: `url('${imageUrl}')` }} />\n <div className={`${styles.imageContainer} ${mapObjectTypeToImageClass(props.objectType)}`}>\n <div className={styles.imagePosition}>\n <img className={styles.image} src={imageUrl} alt={props.title} />\n </div>\n </div>\n </>\n }\n </div>\n }\n <div className={`${styles.right} bg-white d-flex flex-column`}>\n <div className={`position-absolute d-flex align-items-center ${styles.linksContainer}`}>\n {props.links?.map((link, key) => {\n if (link.hide)\n return <React.Fragment key={key}></React.Fragment>;\n\n return (\n <a key={key} href={link.url} className='info-link fw-semibold' onClick={link.onClick}>\n {link.text}\n </a>\n );\n })}\n </div>\n\n {props.children}\n </div>\n </div>\n );\n}"],"names":["getPhrase","LanguageService","JoinClassroomResponseDetails","props","error","setError","message","setMessage","src","ImageUrls","className","classroomName","JoinClassroomView","dispatch","currentUser","UserRequests","isComplete","setIsComplete","setClassroomName","onSuccess","resp","onError","xhr","status","HttpStatus","data","ClassroomRequests","joinCode","isAuthenticated","application","action","params","redirectUrl","skipPrompt","customerId","Launchpad","ClickViewLogo","Spinner","as","animation","role","AppLink","appLink","LAUNCHPAD_FALLBACK_IMAGES","bgUrl","mapObjectTypeToImageClass","objectType","MasterType","showImage","setShowImage","image","setImage","textImage","setTextImage","imageUrl","ImageHelper","size","IMAGE_URLS","length","urlLists","Math","floor","random","textUrl","img","Image","onload","leftComponent","style","backgroundImage","alt","title","links","map","link","key","hide","href","url","onClick","text","children"],"sourceRoot":""}