@clickview/lite 0.49.7 → 0.49.8

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 (28) hide show
  1. package/dist/bundles.json +1 -1
  2. package/dist/scripts/1285-db42ee1c76-lite.chunk.js +2 -0
  3. package/dist/scripts/1285-db42ee1c76-lite.chunk.js.map +1 -0
  4. package/dist/scripts/1863-bb98f2e617-lite.chunk.js +2 -0
  5. package/dist/scripts/1863-bb98f2e617-lite.chunk.js.map +1 -0
  6. package/dist/scripts/{2355-78b307e130-lite.chunk.js → 2355-b2345e9449-lite.chunk.js} +2 -2
  7. package/dist/scripts/{2355-78b307e130-lite.chunk.js.map → 2355-b2345e9449-lite.chunk.js.map} +1 -1
  8. package/dist/scripts/7301-49c2341e97-lite.chunk.js +2 -0
  9. package/dist/scripts/7301-49c2341e97-lite.chunk.js.map +1 -0
  10. package/dist/scripts/{7855-cbf70d4453-lite.chunk.js → 7855-76f000d339-lite.chunk.js} +2 -2
  11. package/dist/scripts/7855-76f000d339-lite.chunk.js.map +1 -0
  12. package/dist/scripts/8243-e9d7716ffe-lite.chunk.js +2 -0
  13. package/dist/scripts/8243-e9d7716ffe-lite.chunk.js.map +1 -0
  14. package/dist/scripts/bundle-d3e8783756.min.js +3 -0
  15. package/dist/scripts/bundle-d3e8783756.min.js.map +1 -0
  16. package/package.json +1 -1
  17. package/dist/scripts/1285-93d485e012-lite.chunk.js +0 -2
  18. package/dist/scripts/1285-93d485e012-lite.chunk.js.map +0 -1
  19. package/dist/scripts/1863-5502813c32-lite.chunk.js +0 -2
  20. package/dist/scripts/1863-5502813c32-lite.chunk.js.map +0 -1
  21. package/dist/scripts/7301-98679776b7-lite.chunk.js +0 -2
  22. package/dist/scripts/7301-98679776b7-lite.chunk.js.map +0 -1
  23. package/dist/scripts/7855-cbf70d4453-lite.chunk.js.map +0 -1
  24. package/dist/scripts/8243-ddaa0ed22d-lite.chunk.js +0 -2
  25. package/dist/scripts/8243-ddaa0ed22d-lite.chunk.js.map +0 -1
  26. package/dist/scripts/bundle-0fc905d3a4.min.js +0 -3
  27. package/dist/scripts/bundle-0fc905d3a4.min.js.map +0 -1
  28. /package/dist/scripts/{bundle-0fc905d3a4.min.js.LICENSE.txt → bundle-d3e8783756.min.js.LICENSE.txt} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@clickview/lite",
3
- "version": "0.49.7",
3
+ "version": "0.49.8",
4
4
  "description": "ClickView Lite",
5
5
  "main": "dist/scripts/bundle.js",
6
6
  "types": "dist/projects/lite/src/index.d.ts",
@@ -1,2 +0,0 @@
1
- "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[1285],{28469:(e,t,n)=>{n.d(t,{P:()=>o});var a=n(32735),r=n(23481).T.encloseNamespace("rostering.alert");function o(e){var t="classroom"===e.type?r("classroom"):r("hasRostering");return a.createElement("div",{className:"alert text-info bg-light-blue px-2 rounded-3 fw-semibold py-2 d-flex flex-wrap"},t," ")}},299:(e,t,n)=>{n.d(t,{X:()=>s});var a=n(32735),r=n(69217),o=n(94631),s=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.idField,s=void 0===n?"id":n,l=t.persistNamespace,i=t.initialState?t.initialState:new Map,c=a.useRef(i),d=(0,r.N)(),u=(0,o.D)(e),m=(0,o.D)(l);function g(){c.current.clear(),d()}function p(e){return"number"==typeof e?e=e.toString():"string"!=typeof e&&(e=e[s].toString()),c.current.get(e)}function f(){return!!(null==e?void 0:e.length)&&e.every(p)}function v(e){e.forEach((function(e){c.current.set(e,!0)})),d()}return a.useEffect((function(){t.initialState||l&&m===l||(null==u?void 0:u.map((function(e){return e[s]})).join())!==(null==e?void 0:e.map((function(e){return e[s]})).join())&&g()}),[u,m,e,t.initialState]),a.useEffect((function(){var e;(null===(e=t.preselectedIds)||void 0===e?void 0:e.length)&&v(t.preselectedIds)}),[]),{onToggleBulk:function(){var t=!f();e.forEach((function(e){t?c.current.set(e[s].toString(),!0):c.current.delete(e[s].toString())})),d()},onToggleItem:function(e){var t=!c.current.get(e.toString());t?c.current.set(e.toString(),t):c.current.delete(e.toString()),d()},getSelected:function(){return Array.from(c.current.keys())},isChecked:p,bulkChecked:f(),deselectAll:function(){(null==e?void 0:e.length)&&(e.forEach((function(e){c.current.delete(e[s].toString())})),d())},hasSomeSelections:function(){return!!(null==e?void 0:e.length)&&!!e.find((function(e){return p(e)}))},setSelected:v,getSelectedCount:function(){return c.current.size},reset:g,getMap:function(){return c.current}}}},94631:(e,t,n)=>{n.d(t,{D:()=>r});var a=n(32735);function r(e){var t=a.useRef();return a.useEffect((function(){t.current=e})),t.current}},36511:(e,t,n)=>{n.d(t,{I:()=>r});var a=n(96787);function r(e){switch(e){case a.R.Pink:return"pink";case a.R.Orange:return"orange";case a.R.Green:return"green";case a.R.Blue:return"blue";case a.R.Purple:return"purple";case a.R.Indigo:return"indigo";default:return"pink"}}},6925:(e,t,n)=>{n.r(t),n.d(t,{ClassroomStudentsView:()=>Ne});var a=n(32735),r=n(70680),o=n(23481),s=n(20354),l=n(49985),i=n(65858),c=n(28469),d=n(16714),u=n(76881),m=n(39151),g=n(31949),p=n(22902),f=n(79612),v=n(23232),E=n(83345),S=n(35223),h=n(99742),y=n(14070),b=n(97291),k="classrooms.classroomsEmptyState";function C(e){return a.createElement(E.D.Provider,{value:k},a.createElement(v.u,null,a.createElement(v.u.Image,{src:h.W.EmptyStates.Classrooms.STUDENTS}),a.createElement(v.u.Heading,null,a.createElement(E.x,{phrase:"noStudentsHeading"})),a.createElement(v.u.Info,{className:"w-33 ".concat(e.canManageUsers?"":"mb-0")},a.createElement(E.x,{phrase:"noStudentsInfo"})),e.canManageUsers&&!e.isRostering&&a.createElement(v.u.Cta,{text:o.T.getPhrase(k,"noStudentsCta"),appLink:{application:b.O.USER_MANAGER,action:y.e.UserManager.STUDENTS}}),!e.canManageUsers&&!e.isRostering&&a.createElement(v.u.Info,null,a.createElement(E.x,{phrase:"askAdmin"})),e.isRostering&&a.createElement("a",{className:"btn btn-link info-link font-semibold",href:"",target:"_blank"},o.T.getPhrase(k,"rosteringCta"))))}var N="classrooms.manageClassroomStudentsEmptyState",T=o.T.encloseNamespace(N),O="https://static.clickview.com.au/Primary/Documents/Student-engagement-ideas.pdf",w="";function x(){return a.createElement(E.D.Provider,{value:N},a.createElement(v.u,null,a.createElement(v.u.Image,{src:h.W.EmptyStates.Classrooms.STUDENTS}),a.createElement(v.u.Heading,null,a.createElement(E.x,{phrase:"emptyStateHeading"})),a.createElement(v.u.Info,{className:"mb-2"},a.createElement(E.x,{phrase:"emptyStateInfo"})),a.createElement("a",{className:"btn btn-link info-link font-semibold",href:w,target:"_blank"},T("rosteringCta"))))}function U(e){return e.schoolHasNoStudents?a.createElement(C,{canManageUsers:e.canManageUsers}):a.createElement(E.D.Provider,{value:N},a.createElement(v.u,null,a.createElement(v.u.Image,{src:h.W.EmptyStates.Classrooms.STUDENTS}),a.createElement(v.u.Heading,null,a.createElement(E.x,{phrase:"emptyStateHeading"})),a.createElement(v.u.Info,null,a.createElement(E.x,{phrase:"emptyStateInfo"})),a.createElement(v.u.Cta,{text:o.T.getPhrase(N,"addStudents"),icon:S.vn.Plus,appLink:{application:b.O.CLASSROOMS,action:y.e.Classrooms.ADD_STUDENTS_CHOICES,args:[e.classroom.id]}}),a.createElement("a",{className:"btn btn-link info-link font-semibold",href:O,target:"_blank"},e.classroomIdeasText)))}var I=n(81886),M=n(11607),R=n(89965),A=n(10874),P=n(83914),G=n(76177),F=n(86764),L=n(69883),D=n(299),H=n(3747),_=n(34509),B=n(36848),j=n(36511);function Z(e){var t;return e.group?a.createElement("div",{className:"classroom-pill text-white bg-".concat((0,j.I)(null===(t=e.group.metadata)||void 0===t?void 0:t.colour))},e.group.name):a.createElement(a.Fragment,null)}function V(e){return e.count?a.createElement(M.L,{onClick:e.onClick,className:"classroom-pill bg-white border border-dark"},"+",e.count):a.createElement(a.Fragment,null)}var X="classrooms.classroomGroupDropdown",W=function(e,t){return{application:b.O.CLASSROOMS,action:y.e.Classrooms.NEW_GROUP,args:[e],params:{addStudents:t.map((function(e){return e.id}))}}},Y=function(e,t){return e.filter((function(e){return t.users.data.find((function(t){return t.id.toString()===e.id.toString()}))})).length};function q(e){var t,n=(0,D.X)(e.groups,{preselectedIds:e.preselections.map((function(e){return e.id}))}),r=n.onToggleItem,s=n.isChecked;a.useEffect((function(){e.groups.forEach((function(t){var n=Y(e.selectedStudents,t);(!n||n!==e.selectedStudents.length||s(t.id))&&(n||!s(t.id))||r(t.id)}))}));var c={align:e.alignRight?"end":"start"};return e.disabled&&(c.show=!1),a.createElement(_.Z,Object.assign({},c),a.createElement(_.Z.Toggle,{as:"div",id:e.id,className:"".concat(e.disabled?"text-light":"cursor-pointer"," ").concat("me-2 d-inline-block svg-container sm"," no-caret")},a.createElement(P.x,{svgName:S.vn.Group,title:e.disabled?e.disabledTooltips:o.T.getPhrase(X,"addToGroupTooltip"),tooltipPlacement:"top",tooltipSpanHack:!0,tooltipSpanHackClassName:""})),a.createElement(_.Z.Menu,null,!!(null===(t=e.groups)||void 0===t?void 0:t.length)&&a.createElement("div",{className:"px-2 border-bottom mb-1"},a.createElement("p",{className:"mb-0"},a.createElement(E.x,{namespace:X,phrase:"addToGroup"})),a.createElement("ul",{className:"list-unstyled pe-3"},e.groups.map((function(t){return a.createElement("li",{key:t.id,className:"d-flex align-items-center bg-white my-1"},a.createElement(R.X,{id:"".concat(e.id,":").concat(t.id),checked:s(t.id),onChange:function(){return function(t){var n=!s(t.id);e.onSelectGroup(t,n),r(t.id)}(t)},indeterminate:!!Y(e.selectedStudents,t)}),a.createElement(Z,{group:t}))})))),a.createElement(B.F,{onClick:function(){e.disabled||l.k.logUserAction({},l.k.mergeOptions(e.analyticsOptions,{actionType:i.Vw.Create,workflowPhase:i.eu.Start,entity:i.py.ClassroomGroup}))},appLink:W(e.classroom.id,e.selectedStudents),className:e.disabled?"disabled":"text-nowrap d-flex align-items-center px-2"},a.createElement(P.x,{svgName:S.vn.Plus}),a.createElement(E.x,{namespace:X,phrase:"createNew"}))))}q.defaultProps={preselections:[]};var Q=n(91967),$=n(83657),z=n(20789),J=n(10038),K=n(64818);const ee={avatarContainer:"rfVnC",name:"RYLWZ"};function te(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,o,s,l=[],i=!0,c=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;i=!1}else for(;!(i=(a=o.call(n)).done)&&(l.push(a.value),l.length!==t);i=!0);}catch(e){c=!0,r=e}finally{try{if(!i&&null!=n.return&&(s=n.return(),Object(s)!==s))return}finally{if(c)throw r}}return l}}(e,t)||ne(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 ne(e,t){if(e){if("string"==typeof e)return ae(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)?ae(e,t):void 0}}function ae(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 re=o.T.encloseNamespace("classrooms.manageClassroomStudentItem"),oe=function(e){return{application:b.O.USER_MANAGER,action:y.e.UserManager.EDIT_USER,args:[e],params:{userType:u.Y.Learner}}},se=function(e,t){return{application:b.O.CLASSROOMS,action:y.e.Classrooms.REMOVE_STUDENTS,args:[t],params:{studentIds:[e]}}};function le(e){var t,n=te(a.useState(!1),2),r=n[0],o=n[1],s=te(a.useState(!1),2),c=s[0],u=s[1],m=te(a.useState({}),2),g=m[0],f=m[1],v=a.useRef(null),E=a.useRef(null),S=(0,p.T)().hasPermissions;a.useEffect((function(){b(),c||o(!0)}),[e.selectedGroups.length]);var h,y=Q.q.throttle((function(){b(),o(!0)}),300);function b(){f(e.selectedGroups.reduce((function(e,t){return e[t.id]=!0,e}),{}))}return(0,J.H)((function(){c||y()})),a.useEffect((function(){if(v.current&&E.current&&r){var e=v.current.firstElementChild;if(e){var t,n,a=e.getBoundingClientRect().y,s={},l=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=ne(e))){n&&(e=n);var a=0,r=function(){};return{s:r,n:function(){return a>=e.length?{done:!0}:{done:!1,value:e[a++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,s=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){l=!0,o=e},f:function(){try{s||null==n.return||n.return()}finally{if(l)throw o}}}}(v.current.children);try{for(l.s();!(n=l.n()).done;){var i=n.value;i.id&&(s[i.id]=i.getBoundingClientRect().y===a,t=s[i.id]?i.id:t)}}catch(e){l.e(e)}finally{l.f()}E.current.getBoundingClientRect().y!==a&&(s[t]=!1),f(s),o(!1)}}}),[r]),a.createElement("div",{className:"d-flex align-items-center py-1 px-4"},a.createElement(R.X,{id:e.student.id,checked:e.checked,onChange:e.onToggleCheckbox,className:"me-2",disabled:e.readOnly}),a.createElement("div",{className:"".concat(ee.avatarContainer," me-2")},a.createElement(z.q,{imageCdnUrl:e.config.imageCdnUrl,initials:K.l.getInitials(e.student.name,e.student.surname),imageUrl:null===(t=e.student.avatar)||void 0===t?void 0:t.url})),a.createElement("p",{className:"me-2 ".concat(ee.name," text-truncate mb-0 text-nowrap")},e.student.name," ",e.student.surname),a.createElement("div",{className:"".concat(r?"invisible":""," me-auto d-flex flex-wrap mt-n1"),ref:v},e.selectedGroups.map((function(e){return g[e.id]?a.createElement("div",{key:e.id,className:"me-1 mt-1",id:e.id},a.createElement(Z,{group:e})):a.createElement(a.Fragment,{key:e.id})})),a.createElement("div",{ref:E,className:"me-1 mt-1"},a.createElement(V,{count:Object.keys(g).reduce((function(e,t){return g[t]||e++,e}),0),onClick:function(){u(!0),b()}}))),a.createElement(q,{id:"add-group-".concat(e.student.id),classroom:e.classroom,groups:e.classroomGroups,selectedStudents:[e.student],preselections:e.selectedGroups,onSelectGroup:function(t,n){return e.onToggleGroup(e.student,t,n)},analyticsOptions:{location:i.LZ.ManageClassroomStudentListItem},alignRight:!0,disabled:e.readOnly,disabledTooltips:e.readOnlyTooltip}),a.createElement($.e,{actions:(h=[],S(d.C.ManageUsers)&&h.push({label:re("editStudent"),appLink:oe(e.student.id),disabled:e.readOnly,className:e.readOnly?"disabled":"",tooltip:e.readOnly?e.readOnlyTooltip:"",onClick:function(){l.k.logUserAction({id:e.student.id},{actionType:i.Vw.Edit,entity:i.py.User,workflowPhase:i.eu.Start,location:i.LZ.ManageClassroomStudentListItem})}}),h.push({label:re("removeStudent"),appLink:se(e.student.id,e.classroom.id),disabled:e.readOnly,className:e.readOnly?"disabled":"text-danger",tooltip:e.readOnly?e.readOnlyTooltip:"",onClick:function(){l.k.logUserAction({id:e.classroom.id,userId:e.student.id},{actionType:i.Vw.Dissociate,entity:i.py.Classroom,descriptor:i.iF.User,workflowPhase:i.eu.Start,location:i.LZ.ManageClassroomStudentListItem})}}),h),actionsDropdownClassName:"btn"}))}var ie=n(88630),ce="classrooms.manageClassroomStudents",de=o.T.encloseNamespace(ce);function ue(e){var t,n=e.classroom,c=e.students,d=e.groups,u=(0,r.I0)(),m=(0,L.Z)(),g=(0,D.X)(c.data),p=g.getSelected().length,f=d.filter((function(e){var t,n;if(!(null===(n=null===(t=e.users)||void 0===t?void 0:t.data)||void 0===n?void 0:n.length))return!1;var a=!0,r=0,o=g.getSelected();if(o.length){var s=function(){var t=o[r];e.users.data.find((function(e){return e.id.toString()===t.toString()}))||(a=!1),r++};do{s()}while(r<o.length);return a}})),v=(0,H.a)(F.r.XLDown);return(null===(t=c.data)||void 0===t?void 0:t.length)?a.createElement(a.Fragment,null,a.createElement("div",{className:"d-flex align-items-center py-2 ".concat(v?"ps-2":"ps-4")},a.createElement(R.X,{id:"manage-classroom-students-bulk",onChange:g.onToggleBulk,checked:g.bulkChecked,className:"me-2",indeterminate:g.hasSomeSelections(),disabled:e.readOnly}),a.createElement(q,{id:"bulk-add-group",classroom:n,selectedStudents:g.getSelected().map((function(t){return e.students.data.find((function(e){return e.id.toString()===t.toString()}))})),groups:d,onSelectGroup:function(e,t){var a=g.getSelected(),r=t?ie.F.addStudentsToGroup:ie.F.removeStudentsFromGroup;s.a.fetch(u,r(a,e.id,n.id,(function(){l.k.logUserAction({id:e.id,studentCount:a.length},{actionType:i.Vw.Associate,entity:i.py.ClassroomGroup,descriptor:i.iF.User,workflowPhase:i.eu.Complete,location:i.LZ.ManageClassroomStudents}),m.success(de("addSuccess",{groupName:e.name,escapeText:!0}))}),(function(){m.error(de("addError",{groupName:e.name,escapeText:!0}))})))},disabled:!p||e.readOnly,preselections:f,analyticsOptions:{location:i.LZ.ManageClassroomStudents},disabledTooltips:e.readOnly&&o.T.getPhrase(ce,"disabledByRostering")}),a.createElement(M.L,{className:"me-auto ".concat(!p||e.readOnly?"text-light cursor-default":""),onClick:function(){if(p&&!e.readOnly){var t=g.getSelected();l.k.logUserAction({id:n.id,studentCount:t.length},{entity:i.py.Classroom,descriptor:i.iF.User,workflowPhase:i.eu.Start,actionType:i.Vw.Dissociate,location:i.LZ.ManageClassroomStudents}),I.Q.C$.trigger({application:b.O.CLASSROOMS,action:y.e.Classrooms.REMOVE_STUDENTS,args:[n.id],params:{studentIds:t}})}}},a.createElement(G.u,{spanHack:!0,title:e.readOnly?o.T.getPhrase(ce,"disabledByRostering"):""},a.createElement(P.x,{svgName:S.vn.Delete,title:o.T.getPhrase(ce,"delete"),tooltipPlacement:"top",tooltipSpanHack:!0}))),a.createElement(G.u,{spanHack:!0,title:e.readOnly?o.T.getPhrase(ce,"disabledByRostering"):""},a.createElement(A.h,{onClick:function(){l.k.logUserAction({id:n.id},{entity:i.py.Classroom,descriptor:i.iF.User,workflowPhase:i.eu.Start,actionType:i.Vw.Associate,location:i.LZ.ManageClassroomStudents}),I.Q.C$.trigger({application:b.O.CLASSROOMS,action:y.e.Classrooms.ADD_STUDENTS_CHOICES,args:[n.id]})},svgName:S.vn.Plus,className:"btn btn-outline-dark",disabled:e.readOnly},a.createElement(E.x,{namespace:ce,phrase:"addStudent"})))),a.createElement("ul",{className:"striped-list list-unstyled"},c.data.map((function(t){return a.createElement("li",{key:t.id},a.createElement(le,{classroom:n,student:t,classroomGroups:e.groups,config:e.config,selectedGroups:e.groups.filter((function(e){return e.users.data.find((function(e){return e.id===t.id}))})),checked:g.isChecked(t.id),onToggleCheckbox:function(){return g.onToggleItem(t.id)},onToggleGroup:e.onToggleGroup,readOnly:e.readOnly,readOnlyTooltip:e.readOnly?de("disabledByRostering"):""}))})))):a.createElement(U,{classroom:e.classroom,classroomIdeasText:de("classroomIdeasText"),schoolHasNoStudents:e.schoolHasNoStudents,canManageUsers:e.canManageUsers})}var me=n(49935),ge=n(5062);const pe="pJf6R",fe="MSvzY",ve="IFmvc",Ee="pOcvk";var Se=a.memo((function(){return a.createElement("div",{className:"px-3"},a.createElement("div",{className:"mb-1 partial-loading-background ".concat("YrP_G")}),a.createElement("div",{className:"pb-3"},a.createElement(me.b2,{numItems:2})),a.createElement("div",{className:"pb-2"},a.createElement(ge.Z,null)),a.createElement("div",{className:"d-flex align-items-center py-2"},a.createElement("div",{className:"mx-4 partial-loading-background ".concat(pe)}),a.createElement("div",{className:"me-2 partial-loading-background ".concat(fe)}),a.createElement("div",{className:"me-auto partial-loading-background ".concat(fe)}),a.createElement("div",{className:"partial-loading-background ".concat("j62jt")})),a.createElement("ul",{className:"striped-list list-unstyled"},Array(20).fill(null).map((function(e,t){return a.createElement("li",{key:t},a.createElement("div",{className:"d-flex align-items-center py-1 px-4"},a.createElement("div",{className:"me-2 partial-loading-background ".concat(pe)}),a.createElement("div",{className:"me-2 partial-loading-background ".concat("droqZ")}),a.createElement("div",{className:"w-25"},a.createElement("div",{className:"partial-loading-background ".concat("gorcb")})),a.createElement("div",{className:"me-auto d-flex"},Math.random()>.5?a.createElement(a.Fragment,null,a.createElement("div",{className:"partial-loading-background rounded-pill me-1 ".concat(ve," ").concat("SdQ90")}),a.createElement("div",{className:"partial-loading-background rounded-pill ".concat(ve," ").concat(Ee)})):a.createElement("div",{className:"partial-loading-background rounded-pill ".concat(ve," ").concat(Ee)})),a.createElement("div",{className:"me-2 partial-loading-background ".concat(fe)}),a.createElement("div",{className:"partial-loading-background ".concat("S7p4K")})))}))))})),he=n(31491),ye=n(5289),be=n(47288),ke=o.T.encloseNamespace("classrooms.classroomStudents"),Ce={entity:i.py.ClassroomGroup,descriptor:i.iF.User,workflowPhase:i.eu.Complete,location:i.LZ.ManageClassroomStudentListItem};function Ne(e){var t,n,o,v,E,S=s.a.useBasicFetch(g.N.currentUser()),h=s.a.useBasicFetch(S.data&&ie.F.getClassroom(e.id,S.data.id)),y=s.a.useBasicFetch(ie.F.getClassroomStudents(e.id)),b=s.a.useBasicFetch(S.data&&be.N.getUsers(S.data.customerId,u.Y.Learner)),k=s.a.useBasicFetch(ie.F.getClassroomGroups(e.id)),C=s.a.useBasicFetch(m.L.config()),N=null===(n=null===(t=h.data)||void 0===t?void 0:t._integrations)||void 0===n?void 0:n.rostered,T=(0,r.I0)(),O=(0,p.T)().hasPermissions;function w(t,n,a){var r={id:n.id,studentCount:1},o=a?ie.F.addStudentsToGroup([t.id],n.id,e.id,(function(){l.k.logUserAction(r,Object.assign(Object.assign({},Ce),{actionType:i.Vw.Associate}))})):ie.F.removeStudentsFromGroup([t.id],n.id,e.id,(function(){l.k.logUserAction(r,Object.assign(Object.assign({},Ce),{actionType:i.Vw.Dissociate}))}));s.a.fetch(T,o)}return(0,f.M)({title:ke("pageTitle",{classroomName:null===(o=h.data)||void 0===o?void 0:o.name})}),(0,he._)(h),h.data&&(null===(v=y.data)||void 0===v?void 0:v.data)&&(null===(E=k.data)||void 0===E?void 0:E.data)&&C.data&&b.data?a.createElement(ye.R,{classroom:h.data,currentUser:S.data,onTogglePin:function(e,t,n){if(!N){var a=e?ie.F.pinClassroom:ie.F.unpinClassroom;s.a.fetch(T,a(h.data,t,n))}},activeTab:"students",isRostered:N},function(){var e,t,n,r,o,s,l,i,u,m;return N?a.createElement(a.Fragment,null,a.createElement(c.P,{type:"classroom"}),(null===(t=null===(e=y.data)||void 0===e?void 0:e.data)||void 0===t?void 0:t.length)?a.createElement(ue,{classroom:h.data,students:y.data,groups:k.data.data,onToggleGroup:w,config:C.data,schoolHasNoStudents:!(null===(r=null===(n=b.data)||void 0===n?void 0:n.data)||void 0===r?void 0:r.length),canManageUsers:O(d.C.ManageUsers),readOnly:!0}):a.createElement(x,null)):(null===(s=null===(o=y.data)||void 0===o?void 0:o.data)||void 0===s?void 0:s.length)?a.createElement(ue,{classroom:h.data,students:y.data,groups:k.data.data,onToggleGroup:w,config:C.data,schoolHasNoStudents:!(null===(i=null===(l=b.data)||void 0===l?void 0:l.data)||void 0===i?void 0:i.length),canManageUsers:O(d.C.ManageUsers)}):a.createElement(U,{classroom:h.data,classroomIdeasText:ke("classroomIdeasText"),schoolHasNoStudents:!(null===(m=null===(u=b.data)||void 0===u?void 0:u.data)||void 0===m?void 0:m.length),canManageUsers:O(d.C.ManageUsers)})}()):a.createElement(Se,null)}}}]);
2
- //# sourceMappingURL=1285-93d485e012-lite.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scripts/1285-93d485e012-lite.chunk.js","mappings":"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","sources":["file:///Users/joshua.taylor/Projects/clickview/packages/libs/shared/src/components/rostering/rostering-alert/RosteringAlert.tsx","file:///Users/joshua.taylor/Projects/clickview/packages/libs/shared/src/hooks/useBulkCheckboxManager.ts","file:///Users/joshua.taylor/Projects/clickview/packages/libs/shared/src/hooks/usePrevious.ts","file:///Users/joshua.taylor/Projects/clickview/packages/libs/shared/src/utils/GroupHelper.ts","file:///Users/joshua.taylor/Projects/clickview/packages/projects/lite/src/apps/classrooms/views/classrooms/empty-state/ClassroomsNoStudentsState.tsx","file:///Users/joshua.taylor/Projects/clickview/packages/projects/lite/src/apps/classrooms/components/manage-classroom-students/empty-state/ManageClassroomStudentsEmptyState.tsx","file:///Users/joshua.taylor/Projects/clickview/packages/projects/lite/src/apps/classrooms/components/classroom-group-pill/ClassroomGroupPill.tsx","file:///Users/joshua.taylor/Projects/clickview/packages/projects/lite/src/apps/classrooms/components/classroom-group-dropdown/ClassroomGroupDropdown.tsx","file:///Users/joshua.taylor/Projects/clickview/packages/projects/lite/src/apps/classrooms/components/manage-classroom-student-item/manage-classroom-student-item.scss","file:///Users/joshua.taylor/Projects/clickview/packages/projects/lite/src/apps/classrooms/components/manage-classroom-student-item/ManageClassroomStudentItem.tsx","file:///Users/joshua.taylor/Projects/clickview/packages/projects/lite/src/apps/classrooms/components/manage-classroom-students/ManageClassroomStudents.tsx","file:///Users/joshua.taylor/Projects/clickview/packages/projects/lite/src/apps/classrooms/components/manage-classroom-students/partial-loading/partial-manage-classroom-students.scss","file:///Users/joshua.taylor/Projects/clickview/packages/projects/lite/src/apps/classrooms/components/manage-classroom-students/partial-loading/PartialManageClassroomStudents.tsx","file:///Users/joshua.taylor/Projects/clickview/packages/projects/lite/src/apps/classrooms/views/classroom-students/ClassroomStudentsView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nconst namespace = 'rostering.alert';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface RosteringAlertProps {\n type?: 'classroom' | 'general';\n}\n\nexport function RosteringAlert(props: RosteringAlertProps) {\n const text = props.type === 'classroom' ? getPhrase('classroom') : getPhrase('hasRostering');\n\n return (\n <div className='alert text-info bg-light-blue px-2 rounded-3 fw-semibold py-2 d-flex flex-wrap'>\n {text}&nbsp;\n {/* todo add it back when KB article link is ready */}\n {/* <ExternalLink\n className='text-info text-underline'\n href={''}\n newTab\n >\n {LanguageService.getPhrase(namespace, 'learnMore')}\n </ExternalLink> */}\n </div>\n );\n}","import React from 'react';\n\nimport { HashObject } from 'libs/common/react/interfaces/HashObject';\n\nimport { useForceUpdate } from 'libs/shared/hooks/useForceUpdate';\nimport { usePrevious } from 'libs/shared/hooks/usePrevious';\n\ntype CheckboxItemsState = Map<string, boolean>;\n\nexport interface BulkCheckboxManager {\n onToggleBulk: () => void;\n onToggleItem: (id: string) => void;\n getSelected: () => string[];\n isChecked: (item: string | number | HashObject<string>) => boolean;\n bulkChecked: boolean;\n deselectAll: () => void;\n hasSomeSelections: () => boolean;\n setSelected: (ids: string[]) => void;\n getSelectedCount: () => number;\n reset: () => void;\n getMap: () => Map<string, boolean>;\n}\n\nexport interface BulkCheckboxManagerOptions {\n idField?: string; // For objects like `PresentationAudiences` that don't use `id` as their identifier field\n persistNamespace?: string;\n preselectedIds?: string[];\n initialState?: CheckboxItemsState;\n}\n\n/**\n * @param collection - The collection you are keeping track of with checkboxes\n * @param options - See interface above\n */\nexport const useBulkCheckboxManager = (collection: HashObject[], options: BulkCheckboxManagerOptions = {}) => {\n const { idField = 'id', persistNamespace } = options;\n\n const initial = options.initialState ? options.initialState : new Map<string, boolean>();\n\n const items = React.useRef<CheckboxItemsState>(initial);\n \n const forceUpdate = useForceUpdate();\n\n const prevCollection = usePrevious(collection);\n const prevNamespace = usePrevious(persistNamespace);\n\n /**\n * This hook will clear the state of this hook when a user navigates between pages\n * if a persistNamespace was not provided\n */\n React.useEffect(() => {\n /**\n * If we're being passed initial state, we don't want to clear the state\n */\n if (options.initialState)\n return;\n\n /**\n * If we've been given a persist namespace, we don't want to clear our\n * selections while the namespace stays the same\n */\n if (persistNamespace && prevNamespace === persistNamespace)\n return;\n\n /**\n * Don't reinitialize if the ids of the new and old collection\n * are identical\n */\n const prevIds = prevCollection?.map(i => i[idField]).join();\n const ids = collection?.map(i => i[idField]).join();\n\n if (prevIds === ids)\n return;\n\n reset();\n }, [ prevCollection, prevNamespace, collection, options.initialState ]);\n\n React.useEffect(() => {\n if (!options.preselectedIds?.length)\n return;\n\n setSelected(options.preselectedIds);\n }, []);\n\n function reset(): void {\n items.current.clear();\n forceUpdate();\n }\n\n // When toggled on, all checkbox items will be enabled. Vice versa if toggled off\n function onToggleBulk(): void {\n const setValue = !isBulkChecked();\n\n collection.forEach(item => {\n if (setValue)\n items.current.set(item[idField].toString(), true);\n else\n items.current.delete(item[idField].toString());\n });\n\n forceUpdate();\n }\n\n // Toggles a single item\n function onToggleItem(id: string): void {\n const nextItemState = !items.current.get(id.toString());\n\n if (nextItemState)\n items.current.set(id.toString(), nextItemState);\n else\n items.current.delete(id.toString());\n \n forceUpdate();\n }\n\n // Returns the state of the item passed in\n function isChecked(item: string | number | HashObject<string>): boolean {\n if (typeof item === 'number')\n item = item.toString();\n else if (typeof item !== 'string')\n item = item[idField].toString();\n\n return items.current.get(item);\n }\n\n function getSelected(): string[] {\n return Array.from(items.current.keys());\n }\n\n function deselectAll(): void {\n if (!collection?.length) return;\n\n collection.forEach(item => {\n items.current.delete(item[idField].toString());\n });\n forceUpdate();\n }\n\n // Returns true if at least 1 item is checked\n function hasSomeSelections(): boolean {\n if (!collection?.length)\n return false;\n\n return !!collection.find(item => isChecked(item));\n }\n\n function isBulkChecked(): boolean {\n if (!collection?.length)\n return false;\n\n return collection.every(isChecked);\n }\n\n function setSelected(ids: string[]): void {\n ids.forEach(id => {\n items.current.set(id, true);\n });\n forceUpdate();\n }\n\n function getSelectedCount(): number {\n return items.current.size;\n }\n\n function getMap(): Map<string, boolean> {\n return items.current;\n }\n\n return {\n onToggleBulk,\n onToggleItem,\n getSelected,\n isChecked,\n bulkChecked: isBulkChecked(),\n deselectAll,\n hasSomeSelections,\n setSelected,\n getSelectedCount,\n reset,\n getMap\n };\n};","import React from 'react';\n\n// https://reactjs.org/docs/hooks-faq.html#how-to-get-the-previous-props-or-state\nexport function usePrevious<T>(value: T): T {\n const ref = React.useRef<T>();\n React.useEffect(() => {\n ref.current = value;\n });\n return ref.current;\n}","import { ButtonProps } from 'react-bootstrap';\n\nimport { ClassroomGroupColour } from 'libs/shared/interfaces';\n\nexport function mapColourToBsVariant(groupColour: ClassroomGroupColour): ButtonProps['variant'] {\n switch (groupColour) {\n case ClassroomGroupColour.Pink:\n return 'pink';\n case ClassroomGroupColour.Orange:\n return 'orange';\n case ClassroomGroupColour.Green:\n return 'green';\n case ClassroomGroupColour.Blue:\n return 'blue';\n case ClassroomGroupColour.Purple:\n return 'purple';\n case ClassroomGroupColour.Indigo:\n return 'indigo';\n default:\n return 'pink';\n }\n}\n","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nconst namespace = 'classrooms.classroomsEmptyState';\n\ninterface ClassroomsNoStudentsStateProps {\n canManageUsers: boolean;\n isRostering?: boolean;\n}\n\nexport function ClassroomsNoStudentsState(props: ClassroomsNoStudentsStateProps): JSX.Element {\n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n <EmptyState>\n <EmptyState.Image src={ImageUrls.EmptyStates.Classrooms.STUDENTS} />\n\n <EmptyState.Heading><Text phrase='noStudentsHeading' /></EmptyState.Heading>\n <EmptyState.Info className={`w-33 ${!props.canManageUsers ? 'mb-0' : ''}`}>\n <Text phrase='noStudentsInfo' />\n </EmptyState.Info>\n\n {props.canManageUsers && !props.isRostering && (\n <EmptyState.Cta\n text={LanguageService.getPhrase(namespace, 'noStudentsCta')}\n appLink={{\n application: AppChannels.USER_MANAGER,\n action: Actions.UserManager.STUDENTS\n }}\n />\n )}\n {!props.canManageUsers && !props.isRostering && (\n <EmptyState.Info><Text phrase='askAdmin' /></EmptyState.Info>\n )}\n {props.isRostering && (\n <a className='btn btn-link info-link font-semibold' href={''} target='_blank'>\n {LanguageService.getPhrase(namespace, 'rosteringCta')}\n </a>\n )}\n </EmptyState>\n </LanguageNamespaceContext.Provider>\n );\n}\n","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\nimport { Classroom } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { ClassroomsNoStudentsState } from 'apps/classrooms/views/classrooms/empty-state/ClassroomsNoStudentsState';\n\nconst namespace = 'classrooms.manageClassroomStudentsEmptyState';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst STUDENT_ENGAGEMENT_IDEAS_LINK = 'https://static.clickview.com.au/Primary/Documents/Student-engagement-ideas.pdf';\nconst ROSTERING_KB_ARTICLE_URL = '';\n\ninterface ManageClassroomStudentsEmptyStateProps {\n classroom: Classroom;\n classroomIdeasText: string;\n schoolHasNoStudents: boolean;\n canManageUsers: boolean;\n}\n\nexport function RosteredClassroomStudentsEmptyState(): JSX.Element {\n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n <EmptyState>\n <EmptyState.Image src={ImageUrls.EmptyStates.Classrooms.STUDENTS} />\n\n <EmptyState.Heading><Text phrase='emptyStateHeading' /></EmptyState.Heading>\n\n <EmptyState.Info className='mb-2' ><Text phrase='emptyStateInfo' /></EmptyState.Info>\n\n <a className='btn btn-link info-link font-semibold' href={ROSTERING_KB_ARTICLE_URL} target='_blank'>\n {getPhrase('rosteringCta')}\n </a>\n </EmptyState>\n </LanguageNamespaceContext.Provider>\n );\n}\n\nexport function ManageClassroomStudentsEmptyState(props: ManageClassroomStudentsEmptyStateProps): JSX.Element {\n if (props.schoolHasNoStudents)\n return <ClassroomsNoStudentsState canManageUsers={props.canManageUsers} />;\n\n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n <EmptyState>\n <EmptyState.Image src={ImageUrls.EmptyStates.Classrooms.STUDENTS} />\n\n <EmptyState.Heading><Text phrase='emptyStateHeading' /></EmptyState.Heading>\n\n <EmptyState.Info><Text phrase='emptyStateInfo' /></EmptyState.Info>\n <EmptyState.Cta\n text={LanguageService.getPhrase(namespace, 'addStudents')}\n icon={cvSvgLibrary.Plus}\n appLink={{\n application: AppChannels.CLASSROOMS,\n action: Actions.Classrooms.ADD_STUDENTS_CHOICES,\n args: [props.classroom.id]\n }}\n />\n\n <a className='btn btn-link info-link font-semibold' href={STUDENT_ENGAGEMENT_IDEAS_LINK} target='_blank'>\n {props.classroomIdeasText}\n </a>\n </EmptyState>\n </LanguageNamespaceContext.Provider>\n );\n}\n","import React from 'react';\n\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { ClassroomGroup } from 'libs/shared/interfaces';\nimport { mapColourToBsVariant } from 'libs/shared/utils/GroupHelper';\n\ninterface ClassroomGroupProps {\n group: ClassroomGroup;\n}\n\nexport function ClassroomGroupPill(props: ClassroomGroupProps): JSX.Element {\n if (!props.group)\n return <></>;\n\n return (\n <div className={`classroom-pill text-white bg-${mapColourToBsVariant(props.group.metadata?.colour)}`}>\n {props.group.name}\n </div>\n );\n}\n\ninterface ClassroomGroupExpanderProps {\n count: number;\n onClick: () => void;\n}\n\nexport function ClassroomGroupExpander(props: ClassroomGroupExpanderProps): JSX.Element {\n if (!props.count)\n return <></>;\n\n return (\n <DivButton onClick={props.onClick} className={`classroom-pill bg-white border border-dark`}>\n +{props.count}\n </DivButton>\n );\n}","import React from 'react';\nimport { Dropdown } from 'react-bootstrap';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { HashObject } from 'libs/common/react/interfaces/HashObject';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { EntityType, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Checkbox } from 'libs/shared/components/forms/form-checkbox/Checkbox';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { useBulkCheckboxManager } from 'libs/shared/hooks/useBulkCheckboxManager';\nimport { PropsWithAnalyticsOptions, User } from 'libs/shared/interfaces';\nimport { Classroom, ClassroomGroup } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { ClassroomGroupPill } from 'apps/classrooms/components/classroom-group-pill/ClassroomGroupPill';\n\nconst namespace = 'classrooms.classroomGroupDropdown';\n\nconst getNewGroupAppLink = (id: string, students: User[]) => ({\n application: AppChannels.CLASSROOMS,\n action: Actions.Classrooms.NEW_GROUP,\n args: [id],\n params: {\n addStudents: students.map(s => s.id)\n }\n});\n\nconst getCheckedStudentsForGroup = (students: User[], group: ClassroomGroup) => {\n const studentsInGroup = students.filter(student => {\n return group.users.data.find(u => u.id.toString() === student.id.toString());\n });\n\n return studentsInGroup.length;\n};\n\ntype ClassroomGroupDropdownProps = PropsWithAnalyticsOptions<{\n id: string;\n classroom: Classroom;\n selectedStudents: User[];\n groups: ClassroomGroup[];\n onSelectGroup: (group: ClassroomGroup, toggleOn?: boolean) => void;\n preselections?: ClassroomGroup[];\n\n alignRight?: boolean;\n disabled?: boolean;\n disabledTooltips?: string;\n}>;\n\nClassroomGroupDropdown.defaultProps = {\n preselections: []\n};\n\nexport function ClassroomGroupDropdown(props: ClassroomGroupDropdownProps): JSX.Element {\n const { onToggleItem, isChecked } = useBulkCheckboxManager(props.groups, {\n preselectedIds: props.preselections.map(s => s.id)\n });\n\n function onChange(group: ClassroomGroup): void {\n const shouldAdd = !isChecked(group.id);\n props.onSelectGroup(group, shouldAdd);\n\n onToggleItem(group.id);\n }\n\n function onClickCreateNewGroup(): void {\n if (props.disabled)\n return;\n\n AnalyticsHelper.logUserAction({}, AnalyticsHelper.mergeOptions(props.analyticsOptions, {\n actionType: UserAction.Create,\n workflowPhase: WorkflowPhase.Start,\n entity: EntityType.ClassroomGroup\n }));\n }\n\n React.useEffect(() => {\n // On each passthrough, validate that the checkbox states are valid\n // This is needed because the group/student state is managed in 2 separate places on the same page\n props.groups.forEach(g => {\n const totalCheckedForGroup = getCheckedStudentsForGroup(props.selectedStudents, g);\n\n // Validate if unchecked checkbox should be checked\n if (!!totalCheckedForGroup && totalCheckedForGroup === props.selectedStudents.length && !isChecked(g.id)) {\n onToggleItem(g.id);\n return;\n }\n\n // Validate if checked checkbox should be unchecked\n if (!totalCheckedForGroup && isChecked(g.id)) {\n onToggleItem(g.id);\n return;\n }\n });\n });\n\n const buttonClasses = 'me-2 d-inline-block svg-container sm';\n\n const dropdownProps: HashObject = {\n align: props.alignRight ? 'end' : 'start'\n };\n\n /**\n * This prop is applied like this so that when `props.disabled` it false, the prop is omitted altogether.\n * This is because we want `react-bootstrap` to control the open state, and if we used the `show` prop\n * at all times we'd be preventing that.\n */\n if (props.disabled)\n dropdownProps.show = false;\n\n return (\n <Dropdown {...dropdownProps}>\n <Dropdown.Toggle\n as='div'\n id={props.id}\n className={`${props.disabled ? 'text-light' : 'cursor-pointer'} ${buttonClasses} no-caret`}\n >\n <SvgContainer\n svgName={cvSvgLibrary.Group}\n title={props.disabled ? props.disabledTooltips : LanguageService.getPhrase(namespace, 'addToGroupTooltip')}\n tooltipPlacement='top'\n tooltipSpanHack\n tooltipSpanHackClassName=''\n />\n </Dropdown.Toggle>\n <Dropdown.Menu>\n {!!props.groups?.length && (\n <div className='px-2 border-bottom mb-1'>\n <p className='mb-0'><Text namespace={namespace} phrase='addToGroup' /></p>\n <ul className='list-unstyled pe-3'>\n {props.groups.map(group => (\n <li key={group.id} className='d-flex align-items-center bg-white my-1'>\n <Checkbox\n id={`${props.id}:${group.id}`}\n checked={isChecked(group.id)}\n onChange={() => onChange(group)}\n indeterminate={!!getCheckedStudentsForGroup(props.selectedStudents, group)}\n />\n <ClassroomGroupPill group={group} />\n </li>\n ))}\n </ul>\n </div>\n )}\n <AppLink\n onClick={onClickCreateNewGroup}\n appLink={getNewGroupAppLink(props.classroom.id, props.selectedStudents)}\n className={props.disabled ? 'disabled' : 'text-nowrap d-flex align-items-center px-2'}\n >\n <SvgContainer svgName={cvSvgLibrary.Plus} />\n <Text namespace={namespace} phrase='createNew' />\n </AppLink>\n </Dropdown.Menu>\n </Dropdown>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"avatarContainer\":\"rfVnC\",\"name\":\"RYLWZ\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AssocDescriptor, EntityType, LocationContext, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { ActionOptions, Actions as MoreActions } from 'libs/shared/components/actions/Actions';\nimport { Avatar } from 'libs/shared/components/avatar/Avatar';\nimport { Checkbox } from 'libs/shared/components/forms/form-checkbox/Checkbox';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { UserGroup } from 'libs/shared/enums/UserGroup';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useResizeListener } from 'libs/shared/hooks/UseResizeListener';\nimport { ClassroomGroup, Config } from 'libs/shared/interfaces';\nimport { Classroom } from 'libs/shared/interfaces';\nimport { User } from 'libs/shared/interfaces';\nimport { UserHelper } from 'libs/shared/utils/UserHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { ClassroomGroupDropdown } from 'apps/classrooms/components/classroom-group-dropdown/ClassroomGroupDropdown';\nimport { ClassroomGroupExpander, ClassroomGroupPill } from 'apps/classrooms/components/classroom-group-pill/ClassroomGroupPill';\n\nimport styles from './manage-classroom-student-item.scss';\n\ntype GroupVisibilityMapping = { [id: string]: boolean };\n\nconst namespace = 'classrooms.manageClassroomStudentItem';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst getEditStudentAppLink = (id: string) => ({\n application: AppChannels.USER_MANAGER,\n action: Actions.UserManager.EDIT_USER,\n args: [id],\n params: { userType: UserGroup.Learner }\n});\n\nconst getRemoveStudentsAppLink = (studentId: string, classroomId: string) => ({\n application: AppChannels.CLASSROOMS,\n action: Actions.Classrooms.REMOVE_STUDENTS,\n args: [classroomId],\n params: {\n studentIds: [studentId]\n }\n});\n\ninterface ManageClassroomStudentItemProps {\n classroom: Classroom;\n student: User;\n classroomGroups: ClassroomGroup[];\n selectedGroups: ClassroomGroup[];\n config: Config;\n onToggleGroup: (student: User, group: ClassroomGroup, toggleOn: boolean) => void;\n onToggleCheckbox: () => void;\n checked: boolean;\n readOnly?: boolean;\n readOnlyTooltip?: string;\n}\n\nexport function ManageClassroomStudentItem(props: ManageClassroomStudentItemProps): JSX.Element {\n const [ isComputingTruncation, setIsComputingTruncation ] = React.useState(false);\n const [ hasExpandedGroups, setHasExpandedGroups ] = React.useState(false);\n\n // Maps a group to it's visibility state.\n const [ groupVisibilityMapping, setGroupVisibilityMapping ] = React.useState<GroupVisibilityMapping>({});\n\n const groupListRef = React.useRef<HTMLDivElement>(null);\n const expanderRef = React.useRef<HTMLDivElement>(null);\n\n const { hasPermissions } = usePermissions();\n\n // Every time the selected groups array changes, we want to re-compute which groups should be truncated\n React.useEffect(() => {\n renderAllGroups();\n\n if (hasExpandedGroups) // Don't re-compute if the user has expanded all groups\n return;\n\n setIsComputingTruncation(true);\n }, [props.selectedGroups.length]);\n\n function onResize(): void {\n renderAllGroups();\n setIsComputingTruncation(true);\n }\n\n const throttledResizeListener = FunctionHelper.throttle(onResize, 300);\n\n useResizeListener(() => {\n if (hasExpandedGroups) // Don't re-compute if the user has expanded all groups\n return;\n\n throttledResizeListener();\n });\n\n /**\n * This iterates through each group element, and detects if any of them don't\n * fit on the first row of items. The elements that don't will be hidden.\n */\n React.useEffect(() => {\n if (!groupListRef.current || !expanderRef.current || !isComputingTruncation)\n return;\n\n const firstGroupPill = groupListRef.current.firstElementChild as HTMLDivElement;\n if (!firstGroupPill) return;\n\n const topRowHeight = firstGroupPill.getBoundingClientRect().y;\n\n const nextGroupVisibilityMapping: { [id: string]: boolean } = {};\n\n /**\n * Here we're checking if the y-coordinate of any groups\n * don't match the y-coordinate of the first group (which should\n * always be on the first row). This way we know if they should be\n * hidden or not.\n */\n let lastVisibleId: string;\n for (const child of groupListRef.current.children) {\n if (child.id) {\n nextGroupVisibilityMapping[child.id] = child.getBoundingClientRect().y === topRowHeight;\n lastVisibleId = nextGroupVisibilityMapping[child.id] ? child.id : lastVisibleId;\n }\n }\n\n // If the expander button has also wrapped, we hide the last element that we were going to make visible.\n if (expanderRef.current.getBoundingClientRect().y !== topRowHeight)\n nextGroupVisibilityMapping[lastVisibleId] = false;\n\n setGroupVisibilityMapping(nextGroupVisibilityMapping);\n setIsComputingTruncation(false);\n }, [isComputingTruncation]);\n\n function onClickShowAllGroups(): void {\n setHasExpandedGroups(true);\n renderAllGroups();\n }\n\n // Updates the group visibility mapping to display all groups\n function renderAllGroups(): void {\n setGroupVisibilityMapping(props.selectedGroups.reduce((acc, group) => {\n acc[group.id] = true;\n return acc;\n }, {} as GroupVisibilityMapping));\n }\n\n // Returns the number of groups that are invisible\n function getInvisibleGroupCount(): number {\n return Object.keys(groupVisibilityMapping).reduce((count, groupId) => {\n if (!groupVisibilityMapping[groupId])\n count++;\n \n return count;\n }, 0);\n }\n\n function getActions(): ActionOptions[] {\n const actions: ActionOptions[] = [];\n\n if (hasPermissions(PermissionName.ManageUsers))\n actions.push({\n label: getPhrase('editStudent'),\n appLink: getEditStudentAppLink(props.student.id),\n disabled: props.readOnly,\n className: props.readOnly ? 'disabled' : '',\n tooltip: props.readOnly ? props.readOnlyTooltip : '',\n onClick: () => {\n AnalyticsHelper.logUserAction({ id: props.student.id }, {\n actionType: UserAction.Edit,\n entity: EntityType.User,\n workflowPhase: WorkflowPhase.Start,\n location: LocationContext.ManageClassroomStudentListItem\n });\n }\n });\n\n actions.push({\n label: getPhrase('removeStudent'),\n appLink: getRemoveStudentsAppLink(props.student.id, props.classroom.id),\n disabled: props.readOnly,\n className: props.readOnly ? 'disabled' : 'text-danger',\n tooltip: props.readOnly ? props.readOnlyTooltip : '',\n onClick: () => {\n AnalyticsHelper.logUserAction({ id: props.classroom.id, userId: props.student.id }, {\n actionType: UserAction.Dissociate,\n entity: EntityType.Classroom,\n descriptor: AssocDescriptor.User,\n workflowPhase: WorkflowPhase.Start,\n location: LocationContext.ManageClassroomStudentListItem\n });\n }\n });\n\n return actions;\n }\n\n return (\n <div className='d-flex align-items-center py-1 px-4'>\n <Checkbox\n id={props.student.id}\n checked={props.checked}\n onChange={props.onToggleCheckbox}\n className='me-2'\n disabled={props.readOnly}\n />\n\n <div className={`${styles.avatarContainer} me-2`}>\n <Avatar\n imageCdnUrl={props.config.imageCdnUrl}\n initials={UserHelper.getInitials(props.student.name, props.student.surname)}\n imageUrl={props.student.avatar?.url}\n />\n </div>\n\n <p className={`me-2 ${styles.name} text-truncate mb-0 text-nowrap`}>{props.student.name} {props.student.surname}</p>\n\n <div\n // When we are computing the truncation, we want all group elements to be rendered but invisible.\n className={`${isComputingTruncation ? 'invisible' : ''} me-auto d-flex flex-wrap mt-n1`}\n ref={groupListRef}\n >\n {props.selectedGroups.map(group => {\n if (!groupVisibilityMapping[group.id]) // Don't render any groups that are marked as hidden\n return <React.Fragment key={group.id}></React.Fragment>;\n\n return (\n <div key={group.id} className='me-1 mt-1' id={group.id}>\n <ClassroomGroupPill group={group} />\n </div>\n );\n })}\n <div ref={expanderRef} className='me-1 mt-1'>\n <ClassroomGroupExpander count={getInvisibleGroupCount()} onClick={onClickShowAllGroups} />\n </div>\n </div>\n\n <ClassroomGroupDropdown\n id={`add-group-${props.student.id}`}\n classroom={props.classroom}\n groups={props.classroomGroups}\n selectedStudents={[props.student]}\n preselections={props.selectedGroups}\n onSelectGroup={(group, toggleOn) => props.onToggleGroup(props.student, group, toggleOn)}\n analyticsOptions={{ location: LocationContext.ManageClassroomStudentListItem }}\n alignRight\n disabled={props.readOnly}\n disabledTooltips={props.readOnlyTooltip}\n />\n\n <MoreActions\n actions={getActions()}\n actionsDropdownClassName='btn'\n />\n </div>\n );\n}","import * as React from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/flight';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AssocDescriptor, EntityType, LocationContext, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { Checkbox } from 'libs/shared/components/forms/form-checkbox/Checkbox';\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { useBulkCheckboxManager } from 'libs/shared/hooks/useBulkCheckboxManager';\nimport { useMediaQuery } from 'libs/shared/hooks/UseMediaQuery';\nimport { Classroom, Config } from 'libs/shared/interfaces';\nimport { ClassroomGroup, User, UserCollection } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { ClassroomGroupDropdown } from 'apps/classrooms/components/classroom-group-dropdown/ClassroomGroupDropdown';\nimport { ManageClassroomStudentItem } from 'apps/classrooms/components/manage-classroom-student-item/ManageClassroomStudentItem';\nimport { ClassroomRequests } from 'apps/classrooms/flight-requests/ClassroomRequests';\n\nimport { ManageClassroomStudentsEmptyState } from './empty-state/ManageClassroomStudentsEmptyState';\n\nconst namespace = 'classrooms.manageClassroomStudents';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface ManageClassroomStudentsProps {\n classroom: Classroom;\n students: UserCollection;\n schoolHasNoStudents: boolean;\n canManageUsers: boolean;\n groups: ClassroomGroup[];\n config: Config;\n onToggleGroup: (student: User, group: ClassroomGroup, toggleOn: boolean) => void;\n readOnly?: boolean;\n}\n\nexport function ManageClassroomStudents(props: ManageClassroomStudentsProps): JSX.Element {\n const { classroom, students, groups } = props;\n\n const dispatch = useDispatch();\n const alerts = useAlerts();\n\n const CheckboxHelper = useBulkCheckboxManager(students.data);\n const selectionCount = CheckboxHelper.getSelected().length;\n\n const bulkPreselections = groups.filter(group => {\n if (!group.users?.data?.length)\n return false;\n\n let allStudentsFound = true;\n let index = 0;\n\n const studentIds = CheckboxHelper.getSelected();\n\n if (!studentIds.length)\n return;\n\n do {\n const id = studentIds[index];\n if (!group.users.data.find((stu: any) => stu.id.toString() === id.toString()))\n allStudentsFound = false;\n\n index++;\n } while (index < studentIds.length);\n\n return allStudentsFound;\n });\n\n function onClickAddStudents(): void {\n AnalyticsHelper.logUserAction({ id: classroom.id }, {\n entity: EntityType.Classroom,\n descriptor: AssocDescriptor.User,\n workflowPhase: WorkflowPhase.Start,\n actionType: UserAction.Associate,\n location: LocationContext.ManageClassroomStudents\n });\n\n Core.AppLinkHelper.trigger({\n application: AppChannels.CLASSROOMS,\n action: Actions.Classrooms.ADD_STUDENTS_CHOICES,\n args: [classroom.id]\n });\n }\n\n function onClickBulkRemoveStudents(): void {\n if (!selectionCount || props.readOnly)\n return;\n\n const studentIds = CheckboxHelper.getSelected();\n\n AnalyticsHelper.logUserAction({\n id: classroom.id,\n studentCount: studentIds.length\n }, {\n entity: EntityType.Classroom,\n descriptor: AssocDescriptor.User,\n workflowPhase: WorkflowPhase.Start,\n actionType: UserAction.Dissociate,\n location: LocationContext.ManageClassroomStudents\n });\n\n Core.AppLinkHelper.trigger({\n application: AppChannels.CLASSROOMS,\n action: Actions.Classrooms.REMOVE_STUDENTS,\n args: [classroom.id],\n params: {\n studentIds\n }\n });\n }\n\n function onSelectGroup(group: ClassroomGroup, shouldAdd: boolean): void {\n const selectedStudentIds = CheckboxHelper.getSelected();\n\n const request = shouldAdd ? ClassroomRequests.addStudentsToGroup : ClassroomRequests.removeStudentsFromGroup;\n\n Flight.fetch(\n dispatch,\n request(selectedStudentIds, group.id, classroom.id, () => {\n AnalyticsHelper.logUserAction({\n id: group.id,\n studentCount: selectedStudentIds.length\n }, {\n actionType: UserAction.Associate,\n entity: EntityType.ClassroomGroup,\n descriptor: AssocDescriptor.User,\n workflowPhase: WorkflowPhase.Complete,\n location: LocationContext.ManageClassroomStudents\n });\n\n alerts.success(getPhrase('addSuccess', { groupName: group.name, escapeText: true }));\n }, () => {\n alerts.error(getPhrase('addError', { groupName: group.name, escapeText: true }));\n })\n );\n }\n\n const edgeToEdge = useMediaQuery(MediaQueryStrings.XLDown);\n\n if (!students.data?.length) {\n return (\n <ManageClassroomStudentsEmptyState\n classroom={props.classroom}\n classroomIdeasText={getPhrase('classroomIdeasText')}\n schoolHasNoStudents={props.schoolHasNoStudents}\n canManageUsers={props.canManageUsers}\n />\n );\n }\n\n return (\n <>\n <div className={`d-flex align-items-center py-2 ${edgeToEdge ? 'ps-2' : 'ps-4'}`}>\n <Checkbox\n id='manage-classroom-students-bulk'\n onChange={CheckboxHelper.onToggleBulk}\n checked={CheckboxHelper.bulkChecked}\n className='me-2'\n indeterminate={CheckboxHelper.hasSomeSelections()}\n disabled={props.readOnly}\n />\n\n <ClassroomGroupDropdown\n id='bulk-add-group'\n classroom={classroom}\n selectedStudents={CheckboxHelper.getSelected().map(id => {\n return props.students.data.find(s => s.id.toString() === id.toString());\n })}\n groups={groups}\n onSelectGroup={onSelectGroup}\n disabled={!selectionCount || props.readOnly}\n preselections={bulkPreselections}\n analyticsOptions={{ location: LocationContext.ManageClassroomStudents }}\n disabledTooltips={props.readOnly && LanguageService.getPhrase(namespace, 'disabledByRostering')}\n />\n <DivButton\n className={`me-auto ${!selectionCount || props.readOnly ? 'text-light cursor-default' : ''}`}\n onClick={onClickBulkRemoveStudents}\n >\n <Tooltip\n spanHack\n title={props.readOnly ? LanguageService.getPhrase(namespace, 'disabledByRostering') : ''}\n >\n <SvgContainer\n svgName={cvSvgLibrary.Delete}\n title={LanguageService.getPhrase(namespace, 'delete')}\n tooltipPlacement='top'\n tooltipSpanHack\n />\n </Tooltip>\n </DivButton>\n <Tooltip\n spanHack\n title={props.readOnly ? LanguageService.getPhrase(namespace, 'disabledByRostering') : ''}\n >\n <IconButton\n onClick={onClickAddStudents}\n svgName={cvSvgLibrary.Plus}\n className='btn btn-outline-dark'\n disabled={props.readOnly}\n >\n <Text namespace={namespace} phrase='addStudent' />\n </IconButton>\n </Tooltip>\n </div>\n\n <ul className='striped-list list-unstyled'>\n {students.data.map(student => (\n <li key={student.id}>\n <ManageClassroomStudentItem\n classroom={classroom}\n student={student}\n classroomGroups={props.groups}\n config={props.config}\n selectedGroups={props.groups.filter(g => g.users.data.find(u => u.id === student.id))}\n checked={CheckboxHelper.isChecked(student.id)}\n onToggleCheckbox={() => CheckboxHelper.onToggleItem(student.id)}\n onToggleGroup={props.onToggleGroup}\n readOnly={props.readOnly}\n readOnlyTooltip={props.readOnly ? getPhrase('disabledByRostering') : ''}\n />\n </li>\n ))}\n </ul>\n </>\n );\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"heading\":\"YrP_G\",\"avatar\":\"droqZ\",\"checkbox\":\"pJf6R\",\"actionIcon\":\"MSvzY\",\"addStudents\":\"j62jt\",\"studentName\":\"gorcb\",\"group\":\"IFmvc\",\"sm\":\"pOcvk\",\"lg\":\"SdQ90\",\"moreActions\":\"S7p4K\"};","import React from 'react';\n\nimport { PartialBreadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { PartialPillTabSelector } from 'libs/shared/components/pill-tab-selector/partial-loading/PartialPillTabSelector';\n\nimport styles from './partial-manage-classroom-students.scss';\n\nexport const PartialManageClassroomStudents = React.memo(function(): JSX.Element {\n return (\n <div className='px-3'>\n {/* Heading */}\n <div className={`mb-1 partial-loading-background ${styles.heading}`} />\n\n {/* Breadcrumbs */}\n <div className='pb-3'>\n <PartialBreadcrumbs numItems={2} />\n </div>\n\n {/* Pill tab selector */}\n <div className='pb-2'>\n <PartialPillTabSelector />\n </div>\n\n <div className='d-flex align-items-center py-2'>\n {/* Checkbox */}\n <div className={`mx-4 partial-loading-background ${styles.checkbox}`} />\n {/* Group selector */}\n <div className={`me-2 partial-loading-background ${styles.actionIcon}`} />\n {/* Delete action */}\n <div className={`me-auto partial-loading-background ${styles.actionIcon}`} />\n\n {/* Add new students button */}\n <div className={`partial-loading-background ${styles.addStudents}`} />\n </div>\n\n {/* Students list */}\n <ul className='striped-list list-unstyled'>\n {Array(20).fill(null).map((student, i) => (\n <li key={i}>\n <div className='d-flex align-items-center py-1 px-4'>\n {/* Checkbox */}\n <div className={`me-2 partial-loading-background ${styles.checkbox}`} />\n\n {/* Avatar */}\n <div className={`me-2 partial-loading-background ${styles.avatar}`} />\n\n {/* Student name */}\n <div className='w-25'>\n <div className={`partial-loading-background ${styles.studentName}`} />\n </div>\n\n {/* Groups list. Randomly renders either 1 or 2 groups. Group widths are randomly generated */}\n <div className='me-auto d-flex'>\n {Math.random() > 0.5\n ? (\n <>\n <div className={`partial-loading-background rounded-pill me-1 ${styles.group} ${styles.lg}`} />\n <div className={`partial-loading-background rounded-pill ${styles.group} ${styles.sm}`} />\n </>\n ) : <div className={`partial-loading-background rounded-pill ${styles.group} ${styles.sm}`} />\n }\n </div>\n\n {/* Group selector */}\n <div className={`me-2 partial-loading-background ${styles.actionIcon}`} />\n {/* More actions */}\n <div className={`partial-loading-background ${styles.moreActions}`} />\n </div>\n </li>\n ))}\n </ul>\n </div>\n );\n});","import React from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AssocDescriptor, EntityType, LocationContext, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { RosteringAlert } from 'libs/shared/components/rostering/rostering-alert/RosteringAlert';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { UserGroup } from 'libs/shared/enums/UserGroup';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { Classroom, ClassroomGroup, ClassroomGroupCollection, Config, CurrentUser, User, UserCollection } from 'libs/shared/interfaces';\n\nimport { ManageClassroomStudentsEmptyState, RosteredClassroomStudentsEmptyState } from 'apps/classrooms/components/manage-classroom-students/empty-state/ManageClassroomStudentsEmptyState';\nimport { ManageClassroomStudents } from 'apps/classrooms/components/manage-classroom-students/ManageClassroomStudents';\nimport { PartialManageClassroomStudents } from 'apps/classrooms/components/manage-classroom-students/partial-loading/PartialManageClassroomStudents';\nimport { ClassroomRequests } from 'apps/classrooms/flight-requests/ClassroomRequests';\nimport { useHandleClassroomErrors } from 'apps/classrooms/hooks/useHandleClassroomErrors';\nimport { ClassroomLayout } from 'apps/classrooms/layouts/ClassroomLayout';\nimport { UserManagerRequests } from 'apps/user-manager/flight-requests/UserManagerRequests';\n\nconst namespace = 'classrooms.classroomStudents';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst baseAnalyticsOptions = {\n entity: EntityType.ClassroomGroup,\n descriptor: AssocDescriptor.User,\n workflowPhase: WorkflowPhase.Complete,\n location: LocationContext.ManageClassroomStudentListItem\n};\n\ninterface ClassroomStudentsViewProps {\n id: string;\n}\n\nexport function ClassroomStudentsView(props: ClassroomStudentsViewProps): JSX.Element {\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const classroom = Flight.useBasicFetch<Classroom>(currentUser.data &&\n ClassroomRequests.getClassroom(props.id, currentUser.data.id));\n const students = Flight.useBasicFetch<UserCollection>(ClassroomRequests.getClassroomStudents(props.id));\n const allStudents = Flight.useBasicFetch<UserCollection>(currentUser.data &&\n UserManagerRequests.getUsers(currentUser.data.customerId, UserGroup.Learner));\n const groups = Flight.useBasicFetch<ClassroomGroupCollection>(ClassroomRequests.getClassroomGroups(props.id));\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n const isRostered = classroom.data?._integrations?.rostered;\n\n const dispatch = useDispatch();\n const { hasPermissions } = usePermissions();\n\n useSetPageMetadata({\n title: getPhrase('pageTitle', { classroomName: classroom.data?.name })\n });\n useHandleClassroomErrors(classroom);\n\n function onToggleGroup(student: User, group: ClassroomGroup, toggleOn: boolean): void {\n const analyticsData = {\n id: group.id,\n studentCount: 1\n };\n\n const request = toggleOn\n ? ClassroomRequests.addStudentsToGroup([student.id], group.id, props.id, () => {\n AnalyticsHelper.logUserAction(analyticsData, {\n ...baseAnalyticsOptions,\n actionType: UserAction.Associate\n });\n })\n : ClassroomRequests.removeStudentsFromGroup([student.id], group.id, props.id, () => {\n AnalyticsHelper.logUserAction(analyticsData, {\n ...baseAnalyticsOptions,\n actionType: UserAction.Dissociate\n });\n });\n\n Flight.fetch(dispatch, request);\n }\n\n function onTogglePin(shouldPin: boolean, onSuccess: () => void, onError: () => void): void {\n if (isRostered)\n return;\n const request = shouldPin\n ? ClassroomRequests.pinClassroom\n : ClassroomRequests.unpinClassroom;\n\n Flight.fetch(dispatch, request(classroom.data, onSuccess, onError));\n }\n\n if (\n !classroom.data\n || !students.data?.data\n || !groups.data?.data\n || !config.data\n || !allStudents.data\n )\n return <PartialManageClassroomStudents />;\n\n return (\n <ClassroomLayout\n classroom={classroom.data}\n currentUser={currentUser.data}\n onTogglePin={onTogglePin}\n activeTab='students'\n isRostered={isRostered}\n >\n {(() => {\n if (isRostered)\n return (\n <>\n <RosteringAlert type='classroom'/>\n {!students.data?.data?.length ? (\n <RosteredClassroomStudentsEmptyState />\n ) : (\n <ManageClassroomStudents\n classroom={classroom.data}\n students={students.data}\n groups={groups.data.data}\n onToggleGroup={onToggleGroup}\n config={config.data}\n schoolHasNoStudents={!allStudents.data?.data?.length}\n canManageUsers={hasPermissions(PermissionName.ManageUsers)}\n readOnly\n />\n )}\n </>\n );\n\n if (students.data?.data?.length) {\n return (\n <ManageClassroomStudents\n classroom={classroom.data}\n students={students.data}\n groups={groups.data.data}\n onToggleGroup={onToggleGroup}\n config={config.data}\n schoolHasNoStudents={!allStudents.data?.data?.length}\n canManageUsers={hasPermissions(PermissionName.ManageUsers)}\n />\n );\n }\n\n return (\n <ManageClassroomStudentsEmptyState\n classroom={classroom.data}\n classroomIdeasText={getPhrase('classroomIdeasText')}\n schoolHasNoStudents={!allStudents.data?.data?.length}\n canManageUsers={hasPermissions(PermissionName.ManageUsers)}\n />\n );\n })()}\n </ClassroomLayout>\n );\n}\n"],"names":["getPhrase","RosteringAlert","props","text","type","className","useBulkCheckboxManager","collection","options","idField","persistNamespace","initial","initialState","Map","items","forceUpdate","prevCollection","prevNamespace","reset","current","clear","isChecked","item","toString","get","isBulkChecked","length","every","setSelected","ids","forEach","id","set","map","i","join","preselectedIds","onToggleBulk","setValue","onToggleItem","nextItemState","getSelected","Array","from","keys","bulkChecked","deselectAll","hasSomeSelections","find","getSelectedCount","size","getMap","usePrevious","value","ref","mapColourToBsVariant","groupColour","namespace","ClassroomsNoStudentsState","EmptyState","src","ImageUrls","Text","phrase","canManageUsers","isRostering","LanguageService","appLink","application","action","href","target","STUDENT_ENGAGEMENT_IDEAS_LINK","ROSTERING_KB_ARTICLE_URL","RosteredClassroomStudentsEmptyState","ManageClassroomStudentsEmptyState","schoolHasNoStudents","icon","args","classroom","classroomIdeasText","ClassroomGroupPill","group","metadata","colour","name","ClassroomGroupExpander","count","DivButton","onClick","getNewGroupAppLink","students","params","addStudents","s","getCheckedStudentsForGroup","filter","student","users","data","u","ClassroomGroupDropdown","groups","preselections","g","totalCheckedForGroup","selectedStudents","dropdownProps","align","alignRight","disabled","show","Dropdown","as","SvgContainer","svgName","title","disabledTooltips","tooltipPlacement","tooltipSpanHack","tooltipSpanHackClassName","key","Checkbox","checked","onChange","shouldAdd","onSelectGroup","indeterminate","AppLink","AnalyticsHelper","analyticsOptions","actionType","workflowPhase","entity","defaultProps","getEditStudentAppLink","userType","UserGroup","getRemoveStudentsAppLink","studentId","classroomId","studentIds","ManageClassroomStudentItem","isComputingTruncation","setIsComputingTruncation","hasExpandedGroups","setHasExpandedGroups","groupVisibilityMapping","setGroupVisibilityMapping","groupListRef","expanderRef","hasPermissions","usePermissions","renderAllGroups","selectedGroups","actions","throttledResizeListener","FunctionHelper","reduce","acc","firstGroupPill","firstElementChild","lastVisibleId","topRowHeight","getBoundingClientRect","y","nextGroupVisibilityMapping","children","child","onToggleCheckbox","readOnly","Avatar","imageCdnUrl","config","initials","UserHelper","surname","imageUrl","avatar","url","Object","groupId","classroomGroups","toggleOn","onToggleGroup","location","readOnlyTooltip","PermissionName","push","label","tooltip","userId","descriptor","actionsDropdownClassName","ManageClassroomStudents","dispatch","alerts","CheckboxHelper","selectionCount","bulkPreselections","allStudentsFound","index","stu","edgeToEdge","selectedStudentIds","request","ClassroomRequests","studentCount","success","groupName","escapeText","error","Tooltip","spanHack","IconButton","PartialManageClassroomStudents","numItems","PartialPillTabSelector","fill","Math","random","baseAnalyticsOptions","ClassroomStudentsView","currentUser","UserRequests","allStudents","UserManagerRequests","customerId","ConfigRequests","isRostered","_integrations","rostered","analyticsData","useSetPageMetadata","classroomName","useHandleClassroomErrors","ClassroomLayout","onTogglePin","shouldPin","onSuccess","onError","activeTab"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[1863],{82872:(e,t,n)=>{n.d(t,{t:()=>S});var r=n(32735),a=n(91967),o=n(11607),i=n(83914),l=n(4594),c=n(76881),s=n(36511),u=n(45778),m=n(35223),d=n(64818),f=n(80247),p=n(23481);const v={avatar:"srrS3"};function g(e){var t=e.imageUrl,n=e.initials,a={};return t&&(a.backgroundImage="url('".concat(t,"')")),r.createElement("div",{className:v.avatar,style:a},t?r.createElement(r.Fragment,null," "):n)}var y=n(76177);const h={svgContainer:"laVU4",selection:"vEOCt",expander:"d1NHd",iconContainer:"rFH4W",icon:"BarYz",bubble:"HF0E8",spinnerContainer:"iKeXW",remove:"pyzCM",removeBubble:"mgt6Y"};var b=p.T.encloseNamespace("shared.inputSelection");function E(e){var t,n="".concat(h.svgContainer," ").concat(h.icon);return e.typeId===l.E.Classroom?n+=" text-teal":n+=" text-".concat((0,s.I)(null===(t=e.metadata)||void 0===t?void 0:t.colour)),n}function C(e){var t,n=function(e){var t;switch(e.typeId){case l.E.Classroom:return"text-teal-hover";case l.E.ClassroomGroup:return"text-".concat((0,s.I)(null===(t=e.metadata)||void 0===t?void 0:t.colour),"-hover")}}(e.selection),a=e.selection.typeId===l.E.Classroom;if(!e.canExpand){if(!e.selection.typeId||e.selection.typeId===l.E.User){var c=e.selection;return r.createElement("div",{className:h.svgContainer},r.createElement(g,{imageUrl:null===(t=c.avatar)||void 0===t?void 0:t.url,initials:d.l.getInitials(e.selection.name,e.selection.surname)}))}return r.createElement(y.u,{title:b(a?"emptyClassroom":"emptyGroup")},r.createElement("div",{className:"align-items-center border border-white bg-white ".concat(h.iconContainer)},r.createElement(i.x,{className:E(e.selection),svgName:a?m.vn.Classrooms:m.vn.Group})))}return e.hasExpanded?r.createElement("div",{className:"d-flex align-items-center text-white ".concat(h.spinnerContainer," ").concat(h.svgContainer)},r.createElement(f.Z,{as:"div",size:"sm",animation:"border",role:"status"})):r.createElement(r.Fragment,null,r.createElement(o.L,{className:"align-items-center cursor-pointer text-white border border-white rounded-circle ".concat(h.expander," ").concat(n),onClick:e.onClickExpand},r.createElement(i.x,{svgName:m.vn.Plus,className:"d-flex align-items-center ".concat(h.svgContainer)})),r.createElement("div",{className:"align-items-center border border-white bg-white ".concat(h.iconContainer)},r.createElement(i.x,{className:E(e.selection),svgName:a?m.vn.Classrooms:m.vn.Group})))}function x(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,o,i,l=[],c=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=o.call(n)).done)&&(l.push(r.value),l.length!==t);c=!0);}catch(e){s=!0,a=e}finally{try{if(!c&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(s)throw a}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return k(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?k(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function k(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function N(e){var t;if(!e.typeId)return"dark-blue";switch(e.typeId){case l.E.User:return"number"==typeof e.userType?2===e.userType?"dark-blue":"indigo":e.userType===c.Y.Learner?"dark-blue":"indigo";case l.E.Classroom:return"teal";case l.E.ClassroomGroup:return(0,s.I)(null===(t=e.metadata)||void 0===t?void 0:t.colour)}}function S(e){var t,n,a,c=u.G.isType(e.selection,l.E.Classroom),s=u.G.isType(e.selection,l.E.ClassroomGroup),d=e.onClickExpand&&(c||s),f=!!(null===(t=e.selection.users)||void 0===t?void 0:t.count),p=!!(null===(a=null===(n=e.selection.users)||void 0===n?void 0:n.data)||void 0===a?void 0:a.length),v=x(r.useState(!1),2),g=v[0],y=v[1],b=x(r.useState(d&&f),2),E=b[0],C=b[1];if(r.useEffect((function(){C(d&&f)}),[d,f]),p){var k=e.selection,S=N(e.selection);return r.createElement("div",{className:"d-flex align-items-center flex-wrap me-1 mt-1 pb-1 ps-1 pe-4 position-relative border-".concat(S," text-").concat(S," ").concat(h.bubble)},k.users.data.map((function(t){return r.createElement(w,{key:"".concat(t.id,":").concat(e.selection.id),selection:t,colourVariant:S,hasStudentExperience:e.hasStudentExperience})})),r.createElement(o.L,{className:"cursor-pointer position-absolute text-".concat(S," ").concat(h.removeBubble),onClick:function(){return e.onClickRemove(e.selection)}},r.createElement(i.x,{svgName:m.vn.Close,className:"d-flex align-items-center ".concat(h.svgContainer)})))}return r.createElement(w,{selection:e.selection,canExpand:E,hasExpanded:g,onClickExpand:function(){y(!0),e.onClickExpand(e.selection.id)},onClickRemove:e.onClickRemove,colourVariant:N(e.selection),hasStudentExperience:e.hasStudentExperience})}function w(e){var t=e.colourVariant||N(e.selection),n=e.selection.name;return e.selection.typeId===l.E.User&&(n=e.hasStudentExperience?d.l.getDisplayName(e.selection):d.l.getFullName(e.selection)),r.createElement("div",{className:"".concat(h.selection," bg-").concat(t," rounded-pill text-").concat(t," d-flex align-items-center me-1 mt-1 overflow-hidden")},!e.hideExpander&&r.createElement(C,{canExpand:e.canExpand,hasExpanded:e.hasExpanded,onClickExpand:e.onClickExpand,selection:e.selection}),r.createElement("span",{className:"mx-1 text-white text-truncate"},n),a.q.isFunction(e.onClickRemove)&&r.createElement(o.L,{className:"d-flex align-items-center cursor-pointer align-self-stretch text-white ".concat(h.remove),onClick:function(){return e.onClickRemove(e.selection)}},r.createElement(i.x,{svgName:m.vn.Close,className:"d-flex align-items-center ".concat(h.svgContainer)})))}},36511:(e,t,n)=>{n.d(t,{I:()=>a});var r=n(96787);function a(e){switch(e){case r.R.Pink:return"pink";case r.R.Orange:return"orange";case r.R.Green:return"green";case r.R.Blue:return"blue";case r.R.Purple:return"purple";case r.R.Indigo:return"indigo";default:return"pink"}}},45398:(e,t,n)=>{n.r(t),n.d(t,{BulkUserActionsAddToClassroomConfirmationView:()=>N});var r=n(32735),a=n(70680),o=n(81886),i=n(20354),l=n(2948),c=n(82872),s=n(149),u=n(83345),m=n(36033),d=n(38143),f=n(3044);function p(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var v="userManager.bulkUserActionsAddToClassroomConfirmation";function g(e){var t,n,a=(t=(0,l.D)(d.g.BULK_USER_ACTIONS),n=1,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,o,i,l=[],c=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=o.call(n)).done)&&(l.push(r.value),l.length!==t);c=!0);}catch(e){s=!0,a=e}finally{try{if(!c&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(s)throw a}}return l}}(t,n)||function(e,t){if(e){if("string"==typeof e)return p(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)?p(e,t):void 0}}(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())[0];return s.b.useSetWizardConfirmationCallback(e.onClickConfirm),r.createElement(u.D.Provider,{value:v},r.createElement(m.s,null,r.createElement("p",{className:"fw-semibold"},r.createElement(u.x,{namespace:v,phrase:"heading",options:{smartCount:e.userCount}})),a.classroom&&r.createElement("div",{className:"rounded rounded-3 pb-2"},r.createElement("div",{className:"d-flex"},r.createElement(c.t,{selection:a.classroom})))),r.createElement(f.Q,{users:e.users,imageCdnUrl:e.imageCdnUrl,hasMore:e.hasMoreUsers,isFetching:e.isFetchingUsers,fetchNext:e.fetchNextUserPage,userType:e.userType,userCount:e.userCount}))}var y=n(58703),h=n(39151),b=n(31949),E=n(29613),C=n(88323),x=n(18087);function k(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function N(e){var t,n,c,u=(0,C.h)(e.userType),m=u.users,f=u.count,p=u.isFetching,v=u.hasMore,N=u.fetchNext,S=(n=(0,l.D)(d.g.BULK_USER_ACTIONS),c=1,function(e){if(Array.isArray(e))return e}(n)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,o,i,l=[],c=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=o.call(n)).done)&&(l.push(r.value),l.length!==t);c=!0);}catch(e){s=!0,a=e}finally{try{if(!c&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(s)throw a}}return l}}(n,c)||function(e,t){if(e){if("string"==typeof e)return k(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?k(e,t):void 0}}(n,c)||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],w=i.a.useBasicFetch(b.N.currentUser()),I=i.a.useBasicFetch(h.L.config()),A=(0,a.I0)(),U=(0,x.Y)(e.userType),T=s.b.useCreateJobErrorAlert();function j(t){o.Q.C$.trigger(Object.assign(Object.assign({},U.bulkActionsStatus.polling),{params:{userType:e.userType,jobId:t.id}}))}return r.createElement(y.d,{appLinks:U,userType:e.userType,users:m,currentStep:"confirmation",userCount:f,loaded:!0},r.createElement(g,{users:m,imageCdnUrl:null===(t=I.data)||void 0===t?void 0:t.imageCdnUrl,hasMoreUsers:v,isFetchingUsers:p,fetchNextUserPage:N,userType:e.userType,onClickConfirm:function(){if(S){var t=s.b.getCreateJobRequestData(S,w.data.customerId,e.userType);i.a.fetch(A,E.q.createJob(t,j,T))}},userCount:f}))}}}]);
2
- //# sourceMappingURL=1863-5502813c32-lite.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scripts/1863-5502813c32-lite.chunk.js","mappings":"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","sources":["file:///Users/joshua.taylor/Projects/clickview/packages/libs/shared/src/apps/share/components/white-avatar/white-avatar.scss","file:///Users/joshua.taylor/Projects/clickview/packages/libs/shared/src/apps/share/components/white-avatar/WhiteAvatar.tsx","file:///Users/joshua.taylor/Projects/clickview/packages/libs/shared/src/apps/share/components/tokenized-typeahead/input-selection.scss","file:///Users/joshua.taylor/Projects/clickview/packages/libs/shared/src/apps/share/components/tokenized-typeahead/InputSelectionExpander.tsx","file:///Users/joshua.taylor/Projects/clickview/packages/libs/shared/src/apps/share/components/tokenized-typeahead/InputSelection.tsx","file:///Users/joshua.taylor/Projects/clickview/packages/libs/shared/src/utils/GroupHelper.ts","file:///Users/joshua.taylor/Projects/clickview/packages/libs/shared/src/apps/user-manager/components/bulk-actions-wizard/confirmation/add-to-classroom/BulkUserActionsAddToClassroomConfirmation.tsx","file:///Users/joshua.taylor/Projects/clickview/packages/projects/lite/src/apps/user-manager/views/wizard/confirmation/add-to-classroom/BulkUserActionsAddToClassroomConfirmationView.tsx"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport default {\"avatar\":\"srrS3\"};","import React from 'react';\n\nimport styles from './white-avatar.scss';\n\ninterface WhiteAvatarProps {\n initials: string;\n imageUrl?: string;\n}\n\nexport function WhiteAvatar(props: WhiteAvatarProps): React.ReactElement {\n const { imageUrl, initials } = props;\n\n const style: React.CSSProperties = {};\n\n if (imageUrl)\n style.backgroundImage = `url('${imageUrl}')`;\n\n return (\n <div className={styles.avatar} style={style}>\n {imageUrl ? <>&nbsp;</> : initials}\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"svgContainer\":\"laVU4\",\"selection\":\"vEOCt\",\"expander\":\"d1NHd\",\"iconContainer\":\"rFH4W\",\"icon\":\"BarYz\",\"bubble\":\"HF0E8\",\"spinnerContainer\":\"iKeXW\",\"remove\":\"pyzCM\",\"removeBubble\":\"mgt6Y\"};","import React from 'react';\nimport { Spinner } from 'react-bootstrap';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { WhiteAvatar } from 'libs/shared/apps/share/components/white-avatar/WhiteAvatar';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { BaseObject, Classroom, ClassroomGroup, User } from 'libs/shared/interfaces';\nimport { mapColourToBsVariant } from 'libs/shared/utils/GroupHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\nimport { UserHelper } from 'libs/shared/utils/UserHelper';\n\nimport styles from './input-selection.scss';\n\nconst getPhrase = LanguageService.encloseNamespace('shared.inputSelection');\n\nfunction mapEntityTypeToForegroundColor(entity: BaseObject): string {\n switch (entity.typeId) {\n case MasterType.Classroom: {\n return 'text-teal-hover';\n }\n\n case MasterType.ClassroomGroup: {\n return `text-${mapColourToBsVariant((entity as ClassroomGroup).metadata?.colour)}-hover`;\n }\n }\n}\n\nfunction getColouredIconClass(selection: Classroom | ClassroomGroup): string {\n let iconClass = `${styles.svgContainer} ${styles.icon}`;\n\n if (selection.typeId === MasterType.Classroom)\n iconClass += ' text-teal';\n else\n iconClass += ` text-${mapColourToBsVariant((selection as ClassroomGroup).metadata?.colour)}`;\n\n return iconClass;\n}\n\ninterface InputSelectionExpanderProps {\n canExpand: boolean;\n hasExpanded: boolean;\n selection: BaseObject;\n onClickExpand?: () => void;\n}\n\nexport function InputSelectionExpander(props: InputSelectionExpanderProps): JSX.Element {\n const colourClass = mapEntityTypeToForegroundColor(props.selection);\n\n const isClassroom = props.selection.typeId === MasterType.Classroom;\n\n if (!props.canExpand) {\n if (!props.selection.typeId || props.selection.typeId === MasterType.User) {\n const user = props.selection as User;\n\n return (\n <div className={styles.svgContainer}>\n <WhiteAvatar\n imageUrl={user.avatar?.url}\n initials={UserHelper.getInitials(props.selection.name, (props.selection as User).surname)}\n />\n </div>\n );\n }\n\n return (\n <Tooltip title={getPhrase(isClassroom ? 'emptyClassroom' : 'emptyGroup')}>\n <div className={`align-items-center border border-white bg-white ${styles.iconContainer}`}>\n <SvgContainer\n className={getColouredIconClass(props.selection)}\n svgName={isClassroom ? cvSvgLibrary.Classrooms : cvSvgLibrary.Group}\n />\n </div>\n </Tooltip>\n );\n }\n\n if (!props.hasExpanded) {\n return (\n <>\n {/* Visible on hover */}\n <DivButton\n className={`align-items-center cursor-pointer text-white border border-white rounded-circle ${styles.expander} ${colourClass}`}\n onClick={props.onClickExpand}\n >\n <SvgContainer svgName={cvSvgLibrary.Plus} className={`d-flex align-items-center ${styles.svgContainer}`} />\n </DivButton>\n\n {/* Visible when not hovering */}\n <div className={`align-items-center border border-white bg-white ${styles.iconContainer}`}>\n <SvgContainer\n className={getColouredIconClass(props.selection)}\n svgName={isClassroom ? cvSvgLibrary.Classrooms : cvSvgLibrary.Group}\n />\n </div>\n </>\n );\n }\n\n return (\n <div className={`d-flex align-items-center text-white ${styles.spinnerContainer} ${styles.svgContainer}`}>\n <Spinner as='div' size='sm' animation='border' role='status' />\n </div>\n );\n}","import React from 'react';\nimport { ButtonProps } from 'react-bootstrap';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { UserGroup } from 'libs/shared/enums/UserGroup';\nimport { Classroom, ClassroomGroup, User } from 'libs/shared/interfaces';\nimport { mapColourToBsVariant } from 'libs/shared/utils/GroupHelper';\nimport { MasterTypeHelper } from 'libs/shared/utils/MasterTypeHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\nimport { UserHelper } from 'libs/shared/utils/UserHelper';\n\nimport { InputSelectionExpander } from './InputSelectionExpander';\n\nimport styles from './input-selection.scss';\n\n/**\n * TODO: This entire file needs to be refactored to work\n * better with non standard entities. ATM it's also being used\n * in the invite a colleague UI for trials. - Sha\n */\ninterface OtherEntity {\n id: never;\n typeId: never;\n name: string;\n}\n\ntype Entity = Classroom | ClassroomGroup | User | OtherEntity;\n\nfunction mapEntityTypeToBsVariant(entity: Entity): ButtonProps['variant'] {\n if (!entity.typeId)\n return 'dark-blue';\n\n switch (entity.typeId) {\n case MasterType.User: {\n // TODO: Delete this once https://clickview.atlassian.net/browse/INBOX-2151 is addressed\n if (typeof(entity as User).userType === 'number')\n return ((entity as User).userType as any) === 2 ? 'dark-blue' : 'indigo';\n\n if ((entity as User).userType === UserGroup.Learner)\n return 'dark-blue';\n\n return 'indigo';\n }\n\n case MasterType.Classroom: {\n return 'teal';\n }\n\n case MasterType.ClassroomGroup: {\n return mapColourToBsVariant((entity as ClassroomGroup).metadata?.colour);\n }\n }\n}\n\ninterface InputSelectionProps {\n selection: Entity;\n onClickRemove?: (selection: Entity) => void;\n onClickExpand?: (id: string) => void;\n hasStudentExperience?: boolean;\n}\n\nexport function InputSelection(props: InputSelectionProps): JSX.Element {\n const isClassroom = MasterTypeHelper.isType(props.selection, MasterType.Classroom);\n const isClassroomGroup = MasterTypeHelper.isType(props.selection, MasterType.ClassroomGroup);\n const isExpandable = props.onClickExpand && (isClassroom || isClassroomGroup);\n\n /**\n * We only know that there are no members if props.selections.users.count exists\n * and is 0 as it is set to 0 in <MainShare /> after fetching the users.\n */\n const hasMembers = !!(props.selection as Classroom | ClassroomGroup).users?.count;\n const hasFetchedMembers = !!(props.selection as Classroom | ClassroomGroup).users?.data?.length;\n\n const [ hasExpanded, setHasExpanded ] = React.useState(false);\n const [ canExpand, setCanExpand ] = React.useState(isExpandable && hasMembers);\n\n React.useEffect(() => {\n setCanExpand(isExpandable && hasMembers);\n }, [ isExpandable, hasMembers ]);\n\n function onClickExpand(): void {\n setHasExpanded(true);\n props.onClickExpand(props.selection.id);\n }\n\n if (hasFetchedMembers) {\n const selection: Classroom | ClassroomGroup = props.selection as Classroom | ClassroomGroup;\n\n const colourVariant = mapEntityTypeToBsVariant(props.selection);\n\n return (\n <div className={`d-flex align-items-center flex-wrap me-1 mt-1 pb-1 ps-1 pe-4 position-relative border-${colourVariant} text-${colourVariant} ${styles.bubble}`}>\n {selection.users.data.map(user => (\n <InputToken\n key={`${user.id}:${props.selection.id}`}\n selection={user}\n colourVariant={colourVariant}\n hasStudentExperience={props.hasStudentExperience}\n />\n ))}\n\n <DivButton\n className={`cursor-pointer position-absolute text-${colourVariant} ${styles.removeBubble}`}\n onClick={() => props.onClickRemove(props.selection)}\n >\n <SvgContainer svgName={cvSvgLibrary.Close} className={`d-flex align-items-center ${styles.svgContainer}`} />\n </DivButton>\n </div>\n );\n }\n\n return (\n <InputToken\n selection={props.selection}\n canExpand={canExpand}\n hasExpanded={hasExpanded}\n onClickExpand={onClickExpand}\n onClickRemove={props.onClickRemove}\n colourVariant={mapEntityTypeToBsVariant(props.selection)}\n hasStudentExperience={props.hasStudentExperience}\n />\n );\n}\n\ninterface InputTokenProps<T extends HashObject> {\n selection: T | Entity;\n colourVariant: string;\n canExpand?: boolean;\n hasExpanded?: boolean;\n onClickExpand?: () => void;\n onClickRemove?: (selection: Entity) => void;\n hasStudentExperience?: boolean;\n hideExpander?: boolean;\n}\n\nexport function InputToken<T extends HashObject = Entity>(props: InputTokenProps<T>): JSX.Element {\n const colourVariant = props.colourVariant || mapEntityTypeToBsVariant(props.selection);\n\n let selectionName = props.selection.name;\n\n if (props.selection.typeId === MasterType.User) {\n selectionName = props.hasStudentExperience\n ? UserHelper.getDisplayName(props.selection as User)\n : UserHelper.getFullName(props.selection as User);\n }\n\n return (\n <div className={`${styles.selection} bg-${colourVariant} rounded-pill text-${colourVariant} d-flex align-items-center me-1 mt-1 overflow-hidden`}>\n {!props.hideExpander && (\n <InputSelectionExpander\n canExpand={props.canExpand}\n hasExpanded={props.hasExpanded}\n onClickExpand={props.onClickExpand}\n selection={props.selection}\n />\n )}\n\n <span className='mx-1 text-white text-truncate'>{selectionName}</span>\n\n {FunctionHelper.isFunction(props.onClickRemove) && (\n <DivButton\n className={`d-flex align-items-center cursor-pointer align-self-stretch text-white ${styles.remove}`}\n onClick={() => props.onClickRemove(props.selection)}\n >\n <SvgContainer svgName={cvSvgLibrary.Close} className={`d-flex align-items-center ${styles.svgContainer}`} />\n </DivButton>\n )}\n </div>\n );\n}","import { ButtonProps } from 'react-bootstrap';\n\nimport { ClassroomGroupColour } from 'libs/shared/interfaces';\n\nexport function mapColourToBsVariant(groupColour: ClassroomGroupColour): ButtonProps['variant'] {\n switch (groupColour) {\n case ClassroomGroupColour.Pink:\n return 'pink';\n case ClassroomGroupColour.Orange:\n return 'orange';\n case ClassroomGroupColour.Green:\n return 'green';\n case ClassroomGroupColour.Blue:\n return 'blue';\n case ClassroomGroupColour.Purple:\n return 'purple';\n case ClassroomGroupColour.Indigo:\n return 'indigo';\n default:\n return 'pink';\n }\n}\n","import React from 'react';\n\nimport { useViewModel } from 'libs/common/react/hooks/UseViewModel';\n\nimport { UserGroup } from 'libs/analytics/interfaces';\n\nimport { InputSelection } from 'libs/shared/apps/share/components/tokenized-typeahead/InputSelection';\nimport { BulkUserActionsAddToClassroomViewModel } from 'libs/shared/apps/user-manager/interfaces/viewmodels/BulkUserActionsViewModel';\nimport { BulkUserActionsHelper } from 'libs/shared/apps/user-manager/utils/BulkUserActionsHelper';\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\nimport { WizardConfirmationHeader } from 'libs/shared/components/wizard/confirmation-header/WizardConfirmationHeader';\nimport { SharedViewModelKeys } from 'libs/shared/constants/SharedViewModelKeys';\nimport { User } from 'libs/shared/interfaces';\n\nimport { BulkUserActionsConfirmationUserList } from '../user-list/BulkUserActionsConfirmationUserList';\n\nconst namespace = 'userManager.bulkUserActionsAddToClassroomConfirmation';\n\ninterface BulkUserActionsAddToClassroomConfirmationProps {\n users: User[];\n imageCdnUrl: string;\n userType: UserGroup;\n hasMoreUsers: boolean;\n isFetchingUsers: boolean;\n userCount: number;\n fetchNextUserPage: () => void;\n onClickConfirm: () => void;\n}\n\nexport function BulkUserActionsAddToClassroomConfirmation(\n props: BulkUserActionsAddToClassroomConfirmationProps\n): JSX.Element {\n const [viewModel] = useViewModel<BulkUserActionsAddToClassroomViewModel>(\n SharedViewModelKeys.BULK_USER_ACTIONS\n );\n\n BulkUserActionsHelper.useSetWizardConfirmationCallback(props.onClickConfirm);\n\n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n <WizardConfirmationHeader>\n <p className='fw-semibold'>\n <Text\n namespace={namespace}\n phrase='heading'\n options={{\n smartCount: props.userCount\n }}\n />\n </p>\n\n {/*\n * The viewModel gets cleared out when exiting the wizard, however this component requires a selection.\n * So we don't render our input selection if classroom is not set\n */}\n {viewModel.classroom &&\n <div className={`rounded rounded-3 pb-2`}>\n <div className='d-flex'>\n <InputSelection selection={viewModel.classroom} />\n </div>\n </div>\n }\n </WizardConfirmationHeader>\n\n <BulkUserActionsConfirmationUserList\n users={props.users}\n imageCdnUrl={props.imageCdnUrl}\n hasMore={props.hasMoreUsers}\n isFetching={props.isFetchingUsers}\n fetchNext={props.fetchNextUserPage}\n userType={props.userType}\n userCount={props.userCount}\n />\n </LanguageNamespaceContext.Provider>\n );\n}","import React from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/flight';\nimport { useViewModel } from 'libs/common/react/hooks/UseViewModel';\n\nimport { BulkUserActionsAddToClassroomConfirmation } from 'libs/shared/apps/user-manager/components/bulk-actions-wizard/confirmation/add-to-classroom/BulkUserActionsAddToClassroomConfirmation';\nimport { BulkUserActionsWizardLayout } from 'libs/shared/apps/user-manager/components/bulk-actions-wizard/layout/BulkUserActionsWizardLayout';\nimport { UserWizardParams } from 'libs/shared/apps/user-manager/interfaces/query-params/UserWizardParams';\nimport { BulkUserActionsViewModel } from 'libs/shared/apps/user-manager/interfaces/viewmodels/BulkUserActionsViewModel';\nimport { BulkUserActionsHelper } from 'libs/shared/apps/user-manager/utils/BulkUserActionsHelper';\nimport { SharedViewModelKeys } from 'libs/shared/constants/SharedViewModelKeys';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { BatchJob, Config, CurrentUser } from 'libs/shared/interfaces';\n\nimport { JobRequests } from 'shared/flight-requests/JobRequests';\n\nimport { useBulkActionsUsersWrapper } from 'apps/user-manager/hooks/useBulkActionsUsersWrapper';\nimport { getUserManagerAppLinks } from 'apps/user-manager/utils/LiteUserManagerAppLinks';\n\nexport function BulkUserActionsAddToClassroomConfirmationView(props: UserWizardParams): JSX.Element {\n const {\n users,\n count,\n isFetching,\n hasMore,\n fetchNext\n } = useBulkActionsUsersWrapper(props.userType);\n\n const [viewModel] = useViewModel<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\n const dispatch = useDispatch();\n\n const appLinks = getUserManagerAppLinks(props.userType);\n\n const onCreateJobError = BulkUserActionsHelper.useCreateJobErrorAlert();\n function startBulkAction(): void {\n if (!viewModel)\n return;\n\n const data = BulkUserActionsHelper.getCreateJobRequestData(\n viewModel,\n currentUser.data.customerId,\n props.userType\n );\n\n Flight.fetch(dispatch, JobRequests.createJob(data, onCreateJob, onCreateJobError));\n }\n\n function onCreateJob(job: BatchJob): void {\n Core.AppLinkHelper.trigger({\n ...appLinks.bulkActionsStatus.polling,\n params: {\n userType: props.userType,\n jobId: job.id\n }\n });\n }\n\n return (\n <BulkUserActionsWizardLayout\n appLinks={appLinks}\n userType={props.userType}\n users={users}\n currentStep='confirmation'\n userCount={count}\n loaded\n >\n <BulkUserActionsAddToClassroomConfirmation\n users={users}\n imageCdnUrl={config.data?.imageCdnUrl}\n hasMoreUsers={hasMore}\n isFetchingUsers={isFetching}\n fetchNextUserPage={fetchNext}\n userType={props.userType}\n onClickConfirm={startBulkAction}\n userCount={count}\n />\n </BulkUserActionsWizardLayout>\n );\n}"],"names":["WhiteAvatar","props","imageUrl","initials","style","backgroundImage","className","getPhrase","LanguageService","getColouredIconClass","selection","iconClass","typeId","MasterType","metadata","colour","InputSelectionExpander","colourClass","entity","mapEntityTypeToForegroundColor","isClassroom","canExpand","user","avatar","url","UserHelper","name","surname","Tooltip","title","SvgContainer","svgName","hasExpanded","Spinner","as","size","animation","role","DivButton","onClick","onClickExpand","mapEntityTypeToBsVariant","userType","UserGroup","InputSelection","MasterTypeHelper","isClassroomGroup","isExpandable","hasMembers","users","count","hasFetchedMembers","data","length","setHasExpanded","setCanExpand","colourVariant","map","InputToken","key","id","hasStudentExperience","onClickRemove","selectionName","hideExpander","FunctionHelper","mapColourToBsVariant","groupColour","namespace","BulkUserActionsAddToClassroomConfirmation","viewModel","SharedViewModelKeys","BulkUserActionsHelper","onClickConfirm","value","WizardConfirmationHeader","Text","phrase","options","smartCount","userCount","classroom","BulkUserActionsConfirmationUserList","imageCdnUrl","hasMore","hasMoreUsers","isFetching","isFetchingUsers","fetchNext","fetchNextUserPage","BulkUserActionsAddToClassroomConfirmationView","useBulkActionsUsersWrapper","currentUser","UserRequests","config","ConfigRequests","dispatch","appLinks","onCreateJobError","onCreateJob","job","bulkActionsStatus","polling","params","jobId","BulkUserActionsWizardLayout","currentStep","loaded","customerId","JobRequests"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[7301],{30357:(e,t,n)=>{n.d(t,{V:()=>c});var r=n(32735),a=n(34509),i=n(89965),o=n(83345),l="share.embedSize";function c(e){var t=e.autoplay,n=e.setAutoplay,c=e.videoSize,s=e.setVideoSize,u=e.videoSizes;return r.createElement("div",{className:"d-flex align-items-center"},!!u.length&&r.createElement(r.Fragment,null,r.createElement("div",{className:"me-1"},r.createElement(o.x,{namespace:l,phrase:"videoSize"})),r.createElement("div",{className:"pe-3"},r.createElement(a.Z,null,r.createElement(a.Z.Toggle,{id:"embed-resolution",variant:"outline-dark"},c.label),r.createElement(a.Z.Menu,null,u.map((function(e){return r.createElement(a.Z.Item,{key:"".concat(e.width,"x").concat(e.height),onClick:function(){return s(e)}},e.label)})))))),r.createElement("div",{className:"me-2"},r.createElement(o.x,{namespace:l,phrase:"autoplay"})),r.createElement(i.X,{id:"autoplay-checkbox",checked:t,onChange:function(){return n(!t)}}))}},62124:(e,t,n)=>{n.d(t,{a:()=>d});var r=n(32735),a=n(92802),i=n(23481),o=n(9673),l=n(83345),c=n(83523),s=n(76177),u="shared.linkExpiry",m=i.T.encloseNamespace(u);function d(e){var t=(0,a.u6)();return r.createElement("div",{className:"d-flex justify-content-between align-items-center pb-3"},r.createElement("div",null,r.createElement("label",{className:"m-0",htmlFor:""},r.createElement(l.x,{namespace:u,phrase:"linkExpirationHeading"})),r.createElement("p",{className:"m-0"},r.createElement(l.x,{namespace:u,phrase:"linkExpirationInfo"}))),r.createElement(s.u,{title:m("passwordProtected"),disable:!e.passwordProtectLink,spanHack:!0,trigger:"hover"},r.createElement(c.Z,{onClick:function(){e.passwordProtectLink||t.setFieldValue("linkExpireDate",(0,o.o)(!t.values.linkExpireDate))},on:!!t.values.linkExpireDate,disabled:e.passwordProtectLink,showStateWhenDisabled:!0})))}},20847:(e,t,n)=>{n.d(t,{z:()=>E});var r=n(32735),a=n(92802),i=n(80130),o=n(23481),l=n(11607),c=n(83914),s=n(35223);const u={passwordButton:"W9Jl8"};function m(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var d=o.T.encloseNamespace("share.setPasswordInput");function p(e){var t,n,o,p=(n=r.useState(!1),o=2,function(e){if(Array.isArray(e))return e}(n)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,o,l=[],c=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=i.call(n)).done)&&(l.push(r.value),l.length!==t);c=!0);}catch(e){s=!0,a=e}finally{try{if(!c&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw a}}return l}}(n,o)||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}}(n,o)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),f=p[0],v=p[1],y=null===(t=(0,a.u6)().errors)||void 0===t?void 0:t.password;return r.createElement(r.Fragment,null,r.createElement("input",{className:"form-control ".concat(y?"is-invalid":""),value:e.value,onChange:function(t){e.canEdit&&e.onChange(t.target.value)},type:f?"text":"password",placeholder:e.placeholder||d("passwordPlaceholder"),readOnly:!e.canEdit}),!!y&&r.createElement(i.Z.Control.Feedback,{type:"invalid"},y),!!e.canEdit&&r.createElement(l.L,{className:u.passwordButton,onClick:function(){return v(!f)}},r.createElement(c.x,{svgName:f?s.vn.VisibleOn:s.vn.VisibleOff,title:d(f?"hidePassword":"revealPassword"),tooltipPlacement:"top"})),!e.canEdit&&!!e.canReset&&!!e.onReset&&r.createElement(l.L,{className:u.passwordButton,onClick:e.onReset},r.createElement(c.x,{svgName:s.vn.Close,title:d("resetPassword"),tooltipPlacement:"top"})))}var f=n(9673),v=n(83345),y=n(83523);function h(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var g="shared.linkPassword",b="********";function E(e){var t,n,i,o=e.passwordProtectLink,l=e.setPasswordProtectLink,c=(0,a.u6)(),s=(n=r.useState(!!(null===(t=e.shareLink)||void 0===t?void 0:t.isPasswordProtected)),i=2,function(e){if(Array.isArray(e))return e}(n)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,o,l=[],c=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=i.call(n)).done)&&(l.push(r.value),l.length!==t);c=!0);}catch(e){s=!0,a=e}finally{try{if(!c&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw a}}return l}}(n,i)||function(e,t){if(e){if("string"==typeof e)return h(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)?h(e,t):void 0}}(n,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.")}()),u=s[0],m=s[1];return r.createElement("div",{className:"pb-3"},r.createElement("div",{className:"d-flex justify-content-between align-items-center"},r.createElement("div",null,r.createElement("label",{className:"m-0",htmlFor:""},r.createElement(v.x,{namespace:g,phrase:"passwordProtectHeading"})),r.createElement("p",{className:"m-0"},r.createElement(v.x,{namespace:g,phrase:"passwordProtectInfo"}))),r.createElement(y.Z,{onClick:function(){var t;(null===(t=e.shareLink)||void 0===t?void 0:t.isPasswordProtected)&&c.setFieldValue("removePassword",o),c.setFieldValue("password",""),l(!o),c.setFieldValue("linkExpireDate",(0,f.o)(!o))},on:o})),o&&r.createElement("div",{className:"position-relative mt-2"},r.createElement(p,{value:u?b:c.values.password,onChange:function(e){c.setFieldValue("password",e)},onReset:function(){c.setFieldValue("password",""),c.setFieldValue("removePassword",!0),m(!1)},canEdit:!u,canReset:!0})))}},9673:(e,t,n)=>{n.d(t,{o:()=>a});var r=30;function a(e){if(!e)return null;var t=new Date;return t.setDate(t.getDate()+r),t.toISOString()}},61193:(e,t,n)=>{n.d(t,{d:()=>i});var r=n(5173),a=n(23481),i=(0,r.Ry)().shape({removePassword:(0,r.O7)(),resourceId:(0,r.Z_)(),linkExpireDate:(0,r.Z_)().nullable(),password:(0,r.Z_)().test({name:"password-length",exclusive:!1,params:{},message:a.T.getPhrase("share.validation","minPassword"),test:function(e){return!((null==e?void 0:e.length)&&e.length<3)}}).default("")})},68123:(e,t,n)=>{n.r(t),n.d(t,{ShareView:()=>Qe});var r=n(32735),a=n(70680),i=n(23481),o=n(20354),l=n(30439),c=n(31250),s=n(59087),u=n(49985),m=n(65858),d=n(30357),p=n(64249),f=n(83345),v=n(26450);const y={embedHtmlInput:"mwvd0",copyBtnContainer:"myePx"};function h(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,o,l=[],c=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=i.call(n)).done)&&(l.push(r.value),l.length!==t);c=!0);}catch(e){s=!0,a=e}finally{try{if(!c&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw a}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return g(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)?g(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 g(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var b="share.copyEmbedHtml",E=i.T.encloseNamespace(b);function A(e){var t=v.i.getEmbedResolutions(),n=h(r.useState("copy"),2),a=n[0],i=n[1],o=h(r.useState(!1),2),l=o[0],c=o[1],g=h(r.useState(t.find((function(e){return"100%"===e.width}))),2),A=g[0],S=g[1],k=h(r.useState(!1),2),w=k[0],C=k[1],x=v.i.buildEmbedUrl({embedUrl:e.embedUrl,host:e.config.primaryUrl,shareId:e.shareId,autoplay:l}),L=v.i.getEmbedString({url:x,size:A});return r.createElement(f.D.Provider,{value:b},r.createElement("label",null,r.createElement(f.x,{namespace:b,phrase:"label"})),r.createElement("div",{className:"position-relative mb-3"},r.createElement("textarea",{className:"form-control rounded w-100 h-100 ".concat(y.embedHtmlInput),spellCheck:!1,value:L,rows:7,readOnly:!0}),r.createElement(s.CopyToClipboard,{onCopy:function(){i("copied"),setTimeout((function(){return i("copy")}),2e3),w||(C(!0),u.k.logUserAction(Object.assign(Object.assign({},e.entity),{embedDetails:{size:A,autoplay:l}}),u.k.mergeOptions(p.I.getAnalyticsOptions(e.entityType),{actionType:m.Vw.Share,descriptor:m.YM.CopyEmbedHtml,eventVersion:m.eq.V3})))},text:L},r.createElement("button",{className:"btn btn-outline-dark border border-secondary position-absolute bottom-0 end-0 ".concat(y.copyBtnContainer),type:"button"},E(a)))),r.createElement(d.V,{autoplay:l,setAutoplay:c,videoSize:A,setVideoSize:S,videoSizes:t}))}var S=n(11607),k=n(13876),w="shared.share";function C(e){return r.createElement(r.Fragment,null,r.createElement("div",{className:"mb-3"},r.createElement(A,{embedUrl:e.shareLink.embedUrl,entity:e.entity,entityType:e.entityType,config:e.config,entityId:e.entityId,shareId:e.shareLink.id,analyticsOptions:e.analyticsOptions})),r.createElement(k.u,null,r.createElement(S.L,{onClick:e.onClickCancel,className:"btn btn-outline-dark"},r.createElement(f.x,{namespace:w,phrase:"back"}))))}var x=n(80247),L=n(42648),N=n(97395),I=n(75896),O=n(1048),P=n(83914),j=n(35223);const T={hoverBackground:"ICTmv"};var U="share.getEmbedCode";function B(e){return r.createElement(S.L,{onClick:e.onClickGetEmbedCode,className:"d-inline-block p-1 pe-2 rounded-1 ".concat(T.hoverBackground)},r.createElement("div",{className:"d-flex align-items-center"},r.createElement("div",{className:"bg-dark text-white rounded-1 me-2"},r.createElement(P.x,{svgName:j.vn.Code,size:P.S.Large})),r.createElement(f.x,{namespace:U,phrase:"getEmbedCode"})))}var V=n(75314),z=n(7855),D=n(110),F=n(26361),M=n(31908);function R(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var H=i.T.encloseNamespace("share.shareLinkInfo");function Z(e,t,n){var r;if(!e||!t)return null;if(n)return H("justMySchoolTeachers");if(!M.M.isVideoType(e))return H("collectionRating");var a=F.l.getWeightedRestriction(null===(r=e._restrictions)||void 0===r?void 0:r.value);if(a&&!a.yearGroup)return H("onlyAdmins");var i,o,l,c=M.M.getRating(e),s=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return R(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?R(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,a=function(){};return{s:a,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:a}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,o=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return o=e.done,e},e:function(e){l=!0,i=e},f:function(){try{o||null==n.return||n.return()}finally{if(l)throw i}}}}(t);try{for(s.s();!(l=s.n()).done;){var u=l.value;(!i||u.value>i.value)&&(i=u),a&&u.value<=a.yearGroup||c&&u.rating.value<c.value||(!o||u.value<o.value)&&(o=u)}}catch(e){s.e(e)}finally{s.f()}return o?o.value===i.value?H("maxYearGroup",{yearGroup:i.name}):H("yearGroupRange",{yearGroup:o.name}):H("onlyStaff")}var G=n(4594),X=n(49080);const W={hoverBackground:"R3fNE"};function q(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,o,l=[],c=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=i.call(n)).done)&&(l.push(r.value),l.length!==t);c=!0);}catch(e){s=!0,a=e}finally{try{if(!c&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw a}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return Y(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)?Y(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 Y(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var J=i.T.encloseNamespace("share.shareLinkInfo"),Q=function(e){var t=e.linkExpireDate,n=e.isPasswordProtected,r=e.status;if(!t&&!n)return function(e){var t=e.entityTypeId,n=e.privacy,r=e.hasStudentExp,a=e.entity,i=e.yearGroups;if(t===G.E.Topic||t===G.E.Series)return{icon:j.vn.VisibleOn,text:J(r?"justMySchoolTeachers":"justMySchoolDescription")};if(!Array.isArray(n))switch(n.privacy){case"public":return{icon:j.vn.VisibleOn,text:J("publicDescription")};case"protected":return n.overrideRestrictions?{icon:j.vn.VisibleOn,text:J("clickViewOnly")}:{icon:j.vn.Lock,text:Z(a,i,r)};case"just_my_customer":return n.overrideRestrictions?{icon:j.vn.Lock,text:J(r?"justMySchoolTeachers":"justMySchoolDescription")}:{icon:j.vn.Lock,text:Z(a,i,r)};case"restricted":case"private":return{icon:j.vn.Lock,text:J("privateDescription")};default:return{}}}(e);if(!t)return{icon:j.vn.Lock,text:J("password")};var a=D.O.isToday(t),i=D.O.diffBetween(t,new Date,"day");if(!n){var o=a?J("expiryToday"):J("expiry",{days:i});return r===X.F.Expired&&(o=J("expired")),{icon:j.vn.Timer,text:o}}var l=a?J("passwordExpiryToday"):J("passwordExpiry",{days:i});return r===X.F.Expired&&(l=J("passwordExpired")),{icon:j.vn.Lock,text:l}};function K(e){var t=e.active,n=e.title,a=e.description,i=e.onClick;return r.createElement("li",{className:"".concat(t?"bg-light-blue":""," dropdown-item"),onClick:t?null:i},r.createElement("p",{className:"fw-semibold mb-1"},n),r.createElement("p",{className:"font-size-sm mb-0"},a))}function _(e){var t=q(r.useState(!1),2),n=t[0],a=t[1],i=q(r.useState(null),2),o=i[0],l=i[1],c=Q(e),s=c.icon,u=c.text;r.useEffect((function(){a(e.privacy.canManageAccess),l(e.privacy.privacy)}),[e.privacy]);var m=n?"just_my_customer":"protected",d=!e.isPasswordProtected&&!e.linkExpireDate&&e.shareOverrideRestrictions&&!e.hasStudentExp;return r.createElement("div",{className:"d-flex align-items-center"},d?r.createElement("div",{className:"btn-group"},r.createElement("button",{className:"btn border-0 info-link dropdown-toggle p-1 ".concat(W.hoverBackground),"data-bs-toggle":"dropdown"},r.createElement(P.x,{svgName:s,className:"svg-container me-1"}),r.createElement("span",{className:"me-1"},u)),r.createElement("ul",{className:"dropdown-menu cursor-pointer"},n&&r.createElement(K,{active:"public"===o,title:J("public"),description:J("publicDescription"),onClick:function(){return e.onClickSavePrivacy("public",!1)}}),r.createElement(K,{active:o===m&&e.privacy.overrideRestrictions,title:J("justMySchool"),description:J(n?"justMySchoolDescription":"clickViewOnly"),onClick:function(){return e.onClickSavePrivacy(m,!0)}}),r.createElement(K,{active:o===m&&!e.privacy.overrideRestrictions,title:J("respectRatings"),description:Z(e.entity,e.yearGroups,e.hasStudentExp),onClick:function(){return e.onClickSavePrivacy(m,!1)}}),r.createElement(K,{active:"private"===o,title:J("private"),description:J("privateDescription"),onClick:function(){return e.onClickSavePrivacy("private",!1)}}))):r.createElement(r.Fragment,null,r.createElement(P.x,{svgName:s,className:"svg-container me-1"}),r.createElement("span",null,u)))}var $=n(76177);function ee(){return r.createElement("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none"},r.createElement("circle",{cx:"12",cy:"12",r:"12",fill:"url(#pattern0)"}),r.createElement("defs",null,r.createElement("pattern",{id:"pattern0",patternContentUnits:"objectBoundingBox",width:"1",height:"1"},r.createElement("use",{xlinkHref:"#image0_3558_14996",transform:"scale(0.00520833)"})),r.createElement("image",{id:"image0_3558_14996",width:"192",height:"192",xlinkHref:"data:image/png;base64,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"})))}function te(){return r.createElement("svg",{viewBox:"0 0 40 40",fill:"none"},r.createElement("path",{d:"M29.692 15.31c.58 0 1.146-.173 1.628-.5a2.96 2.96 0 001.078-1.331 3.004 3.004 0 00-.634-3.235 2.918 2.918 0 00-1.5-.812 2.894 2.894 0 00-1.693.169 2.938 2.938 0 00-1.314 1.093 2.997 2.997 0 00.364 3.748 2.91 2.91 0 002.071.869zM20.043 26.267V13.849a.9.9 0 00-.259-.633.877.877 0 00-.624-.262H6.883a.877.877 0 00-.624.262.9.9 0 00-.259.633v12.418c0 .24.092.469.257.64.165.172.39.27.626.276H19.16a.899.899 0 00.626-.276.923.923 0 00.257-.64zm-3.51-10.389v1.92h-2.37v6.68H11.88V17.93H9.51v-2.182h7.022v.13z",fill:"#fff"}),r.createElement("path",{d:"M21.874 14.132v.917a4.03 4.03 0 002.05-1.47c.512-.699.79-1.545.793-2.415 0-1.1-.431-2.154-1.199-2.932a4.065 4.065 0 00-2.893-1.214 4.065 4.065 0 00-2.894 1.214 4.175 4.175 0 00-1.199 2.932h2.391a2.996 2.996 0 012.061.887c.55.552.868 1.297.89 2.081zM26.332 17.1h-4.458v8.883c0 .8-.309 1.566-.86 2.138-.552.57-1.302.9-2.091.917h-4.588a7.047 7.047 0 003.265 3.317c1.427.7 3.046.887 4.593.532a6.99 6.99 0 003.918-2.486 7.152 7.152 0 001.535-4.418v-7.551a1.348 1.348 0 00-.385-.942 1.313 1.313 0 00-.929-.39zM32.772 17.1h-3.597c.206.414.316.87.323 1.332v7.551a9.1 9.1 0 01-.516 2.859c.236.021.474.021.71 0a4.28 4.28 0 003.046-1.278A4.394 4.394 0 0034 24.477v-6.045c0-.339-.126-.665-.354-.912a1.307 1.307 0 00-.874-.42z",fill:"#fff"}))}var ne=n(50030),re="share.shareIntegrations";function ae(){var e="".concat(ne.Z.avatar," border border-light rounded-circle overflow-hidden");return r.createElement($.u,{title:i.T.getPhrase(re,"shareThroughIntegrations"),spanHack:!0},r.createElement("ul",{className:"list-unstyled d-flex mb-0"},r.createElement("li",{className:e,style:{zIndex:1}},r.createElement(ee,null)),r.createElement("li",{className:"".concat(e," ").concat(ne.Z.msTeamsContainer),style:{zIndex:0}},r.createElement(te,null))))}var ie=n(66903);function oe(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var le="share.shareAsLink";function ce(e){var t,n,a=(t=r.useState(!1),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,o,l=[],c=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=i.call(n)).done)&&(l.push(r.value),l.length!==t);c=!0);}catch(e){s=!0,a=e}finally{try{if(!c&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw a}}return l}}(t,n)||function(e,t){if(e){if("string"==typeof e)return oe(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)?oe(e,t):void 0}}(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),i=a[0],o=a[1];return r.createElement(r.Fragment,null,r.createElement("div",{className:"d-flex justify-content-between align-items-center"},r.createElement("div",{className:"".concat(e.shareLink?"w-100":"w-75 d-flex align-items-center")},e.shareLink?r.createElement(r.Fragment,null,r.createElement("div",{className:"d-flex justify-content-between align-items-center mb-1"},r.createElement(_,{linkExpireDate:e.shareLink.linkExpireDate,isPasswordProtected:e.shareLink.isPasswordProtected,privacy:e.privacy,entityTypeId:e.shareLink.objectTypeId,status:e.shareLink.status,onClickSavePrivacy:e.onClickSavePrivacy,hasStudentExp:e.hasStudentExp,entity:e.entity,yearGroups:e.yearGroups,shareOverrideRestrictions:e.shareOverrideRestrictions})),r.createElement(ie.k,{value:e.shareLink.url,onCopy:function(){i||(o(!0),u.k.logUserAction(Object.assign({},e.entity),u.k.mergeOptions(p.I.getAnalyticsOptions(e.entityType),{actionType:m.Vw.Share,descriptor:m.YM.CopyLink,eventVersion:m.eq.V3})))}})):r.createElement("div",{className:"d-flex align-items-center"},r.createElement("div",{className:"me-2"},e.enableIntegrations?r.createElement(ae,null):r.createElement(P.x,{svgName:j.vn.Link,className:"svg-container"})),r.createElement("span",{className:"fw-semibold"},r.createElement(f.x,{namespace:le,phrase:"createLink"})))),!e.shareLink&&r.createElement(S.L,{className:"info-link",onClick:e.onClickCreateLink},r.createElement(f.x,{phrase:"createLink"}))))}var se=n(74231),ue=n(92802),me=n(5173),de=n(38365),pe=n(82644),fe=i.T.encloseNamespace("share.shareMessage"),ve=me.Ry().shape({message:me.Z_().max(280,(function(){return fe("maxMessageLen")}))});function ye(){var e=(0,pe.b)();return r.createElement(ue.l0,null,r.createElement(de.W,{component:"textarea",name:"message",id:"message",placeholder:fe("placeholder"),value:e.values.message,label:fe("label"),showOptionalLabel:!0}),r.createElement(k.u,null,r.createElement(k.u.Submit,{variant:"dark",text:fe("share")})))}function he(e){return r.createElement(pe.n,{initialValues:{message:""},validationSchema:ve,onSubmit:function(t,n){var r=null;t.message&&(r=t.message),e.onClickShare(r,n)},allowInitialSubmit:!0},r.createElement(ye,null))}var ge=n(40424),be=n(16714),Ee=n(22902);function Ae(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,o,l=[],c=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=i.call(n)).done)&&(l.push(r.value),l.length!==t);c=!0);}catch(e){s=!0,a=e}finally{try{if(!c&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw a}}return l}}(e,t)||ke(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 Se(e){return function(e){if(Array.isArray(e))return we(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||ke(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 ke(e,t){if(e){if("string"==typeof e)return we(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)?we(e,t):void 0}}function we(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var Ce="shared.share",xe=i.T.encloseNamespace(Ce);function Le(e,t,n,r){if(!e)return[];var a=[].concat(Se(t),Se(n)).map((function(e){return e.id}));return e.filter((function(e){return!a.includes(e.id)&&e.id!==r}))}function Ne(e){var t,n,a=Ae(r.useState([]),2),i=a[0],o=a[1],l=Ae(r.useState(!1),2),c=l[0],s=l[1],u=(0,Ee.T)().hasPermissions,m=u(be.C.ManageIntegrations),d=u(be.C.ShareToUsers)||u(be.C.ShareToClassrooms)||u(be.C.ShareToClassroomGroups),p=Le(e.recentlySharedTo,i,e.directShareRecipients,e.currentUser.id);return r.useEffect((function(){s(!!e.shareLinkIsLoading)}),[e.shareLinkIsLoading]),r.createElement(r.Fragment,null,d&&r.createElement("div",{className:"bg-white rounded-bottom-3 pt-3 px-3 mb-2"},r.createElement("div",{className:"d-flex justify-content-between align-items-center pb-3"},r.createElement(z.R,{key:null!==(t=null==p?void 0:p.map((function(e){return e.id})).join(":"))&&void 0!==t?t:"share:search",getRemoteUrl:function(){return N._.safeUrlConcat(e.gatewayApiUrl,"v4/search")},getRemotePostBody:function(t){var n=[];return u(be.C.ShareToUsers)&&n.push({index:"user",filters:{userProfile:{status:["".concat(ge.w.Active.toLowerCase())],customerId:e.currentUser.customerId}}}),u(be.C.ShareToClassrooms)&&n.push({index:"classroom"}),u(be.C.ShareToClassroomGroups)&&n.push({index:"classroom_group"}),{query:t,indices:n,searchType:"user",limit:z.d}},requestHeaders:e.searchRequestHeaders,formatRemoteSuggestions:function(t){return Le(null==t?void 0:t.results,i,e.directShareRecipients,e.currentUser.id)},recentSearches:p,selections:i,onSuggestionSelected:function(e){return o([].concat(Se(i),[e]))},removeSelection:function(e){return o(i.filter((function(t){return t.id!==e.id})))},placeholder:xe("searchPlaceholder"),imageCdnUrl:e.imageCdnUrl,activationLength:2,fetchSelectionMembers:e.fetchRecipientUsers&&function(t){e.fetchRecipientUsers&&e.fetchRecipientUsers(t,(function(e){var n=[];i.forEach((function(r){var a;if(r.id!==t)return n.push(r);var i=O.t.deepClone(r);(null===(a=null==e?void 0:e.data)||void 0===a?void 0:a.length)?i.users=e:i.users={count:0,data:[],pagination:null},n.push(i)})),o(I.m.uniq(n,"id"))}))},debounceTime:300,emptyStateImageUrl:e.emptyStateImageUrl,errorStateImageUrl:e.errorStateImageUrl,hasStudentExperience:u(be.C.StudentExperience)})),!i.length&&e.directShareRecipients.length?r.createElement("div",null,r.createElement("h3",{className:"font-size-normal"},r.createElement(f.x,{phrase:"sharedTo"})),r.createElement(L.$B,{autoHeight:!0},r.createElement("ul",{className:"list-unstyled"},e.directShareRecipients.map((function(t){return r.createElement("li",{key:t.id,className:"mb-2 pe-1"},r.createElement(V.j,{entity:t,imageCdnUrl:e.imageCdnUrl,removeRecipient:e.onClickRemoveRecipient,showDisplayName:u(be.C.StudentExperience)}))}))))):r.createElement(r.Fragment,null),!!i.length&&r.createElement("div",{className:"pb-3"},r.createElement(he,{onClickShare:function(t,n){e.onClickShare(i.map((function(e){return{id:e.id,typeId:e.typeId}})),t,(function(){o([]),n()}))}}))),!i.length&&!c&&r.createElement("div",{className:"bg-white p-3 ".concat(d?"rounded-3":"rounded-bottom-3")},r.createElement("div",null,e.shareLink&&r.createElement("div",{className:"fw-semibold mb-2"},r.createElement(f.x,{namespace:Ce,phrase:"shareLink"})),r.createElement(ce,{entity:e.entity,entityType:e.entityType,shareLink:e.shareLink,onClickShowSettings:e.onClickShowSettings,onClickCreateLink:function(){s(!0),e.onClickCreateLink()},shareLinkIsLoading:e.shareLinkIsLoading,canAddPolicies:e.canAddPolicies,privacy:e.privacy,entityTypeId:e.entity.typeId,onClickSavePrivacy:e.onClickSavePrivacy,enableIntegrations:e.enableIntegrationBanner,hasStudentExp:u(be.C.StudentExperience),yearGroups:e.yearGroups,shareOverrideRestrictions:e.shareOverrideRestrictions}),e.shareLink&&e.enableIntegrationBanner&&r.createElement("div",{className:"".concat((null===(n=e.integrations)||void 0===n?void 0:n.length)&&e.canEmbed?"float-end":""," mt-1 pt-1")},r.createElement(se.T,{integrations:e.integrations,url:e.shareLink.url,closePopup:e.closePopup,appLink:m?e.integrationSettingAppLink:e.messagePopupAppLink})),e.shareLink&&e.canEmbed&&r.createElement("div",{className:"mt-1"},r.createElement(B,{onClickGetEmbedCode:e.onClickGetEmbedCode})),e.shareLink&&e.canAddPolicies&&r.createElement("button",{className:"btn btn-link text-info mt-2 p-0",onClick:e.onClickShowSettings},r.createElement(f.x,{namespace:Ce,phrase:"advancedSettings"})))),c&&r.createElement("div",{className:"bg-white rounded-3 p-3 text-center"},r.createElement(x.Z,{as:"div",animation:"border",role:"status"})))}var Ie=n(62124),Oe=n(20847),Pe=n(61193);function je(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var Te="shared.share",Ue=i.T.encloseNamespace(Te);function Be(e){var t,n,a=(0,Ee.T)().hasPermissions,i=(t=r.useState(!!e.shareLink.isPasswordProtected),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,o,l=[],c=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=i.call(n)).done)&&(l.push(r.value),l.length!==t);c=!0);}catch(e){s=!0,a=e}finally{try{if(!c&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw a}}return l}}(t,n)||function(e,t){if(e){if("string"==typeof e)return je(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)?je(e,t):void 0}}(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),o=i[0],l=i[1];return r.createElement(ue.l0,null,r.createElement("div",{className:"d-flex justify-content-between align-items-center pb-3"},r.createElement("div",null,r.createElement("label",{className:"mb-0"},r.createElement(f.x,{namespace:Te,phrase:"deleteLinkLabel"})),r.createElement("p",{className:"mb-0"},r.createElement(f.x,{namespace:Te,phrase:"deleteLinkDescription"}))),r.createElement(S.L,{onClick:e.onClickDeleteLink,className:"info-link justify-self-start"},r.createElement(f.x,{phrase:"deleteLink"}))),a(be.C.ManageShareLinkSettings)&&r.createElement(r.Fragment,null,r.createElement(Ie.a,{passwordProtectLink:o}),e.shareOverrideRestrictions&&r.createElement(Oe.z,{shareLink:e.shareLink,passwordProtectLink:o,setPasswordProtectLink:l})),r.createElement(k.u,null,r.createElement(k.u.Cancel,{onClick:e.onClickCancel,text:Ue("back"),variant:"outline-dark"}),r.createElement(k.u.Submit,{variant:"dark"})))}function Ve(e){var t={password:"",removePassword:!1,linkExpireDate:e.shareLink.linkExpireDate,overrideRestrictions:e.shareLink.overrideRestrictions};return r.createElement(r.Fragment,null,r.createElement(pe.n,{initialValues:t,onSubmit:e.onClickSaveLink,castInitialValues:!1,validationSchema:Pe.d},r.createElement(Be,{entity:e.entity,entityType:e.entityType,config:e.config,shareLink:e.shareLink,entityId:e.entityId,onClickCancel:e.onClickCancel,analyticsOptions:e.analyticsOptions,privacy:e.privacy,onClickDeleteLink:e.onClickDeleteLink,hasStudentExp:e.hasStudentExp,shareOverrideRestrictions:e.shareOverrideRestrictions})))}var ze=n(9111),De=n(39151),Fe=n(1666),Me=n(31949),Re=n(69883),He=n(37802),Ze=n(40841);function Ge(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var Xe="shared.share",We=i.T.encloseNamespace(Xe);function qe(e){switch(e){case"video":return We("titleVideo");case"clip":return We("titleClip");case"interactive":return We("titleInteractive");case"series":return We("titleSeries");case"playlist":return We("titlePlaylist");case"subject":return We("titleTopic")}}var Ye=function(e){return"video"===e||"interactive"===e||"clip"===e},Je=function(e){return"video"===e||"interactive"===e||"clip"===e};function Qe(e){var t,n,i,s,u,m=(0,a.I0)(),d=(0,Re.Z)(),v=!e.gatewayApiUrl,y=(s=r.useState("main"),u=2,function(e){if(Array.isArray(e))return e}(s)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,o,l=[],c=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=i.call(n)).done)&&(l.push(r.value),l.length!==t);c=!0);}catch(e){s=!0,a=e}finally{try{if(!c&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw a}}return l}}(s,u)||function(e,t){if(e){if("string"==typeof e)return Ge(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)?Ge(e,t):void 0}}(s,u)||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.")}()),h=y[0],g=y[1],b=(0,Ee.T)().hasPermissions,E=o.a.useBasicFetch(Me.N.currentUser()),A=p.I.getFetchFunctionByType(e.entityType)(e.entityId,null===(t=E.data)||void 0===t?void 0:t.id),S=o.a.useBasicFetch(De.L.config()),k=o.a.useBasicFetch(v&&Me.N.token()),w=o.a.useBasicFetch(l.o.getShareLinkByObjectId(e.entityId)),x=o.a.useBasicFetch(l.o.getSentDirectShareByObjectId(e.entityId)),L=o.a.useBasicFetch((null===(n=E.data)||void 0===n?void 0:n.customerId)&&p.I.getDirectShareRecipientsRequest(E.data.customerId,x.data)),N=E.data&&c.R.getRecentlySharedTo(E.data.id),I=!!(null==N?void 0:N.length),O=o.a.useBasicFetch(I&&l.o.getRecipientsById(N,E.data.customerId)),P=o.a.useBasicFetch(l.o.getPrivacy(e.entityId)),j=o.a.useBasicFetch((null===(i=E.data)||void 0===i?void 0:i.isAuthenticated)&&Fe.h.yearGroups(E.data.customerId)),T=(0,He.r)(null),U=T.shareToGoogleClassroom,B=T.shareToMicrosoftTeams,V=T.shareOverrideRestrictions,z=T.isLoadingSettings;function D(e,t){var n;(null===(n=t.recipients)||void 0===n?void 0:n.length)&&o.a.getFetch(m)(p.I.getDirectShareRecipientsRequest(e,t))}function F(e,t){o.a.getFetch(m)(l.o.getRecipientUsers(e,t))}function M(){w.data||p.I.createLink({dispatch:m,entity:A.data,entityType:e.entityType,alerts:d})}function R(t,n){p.I.updateLink(m,A.data,e.entityType,w.data,t,d,(function(){return g("main")}),n)}function H(){p.I.deleteLink(m,A.data,e.entityType,w.data,d,(function(){return g("main")}))}function Z(t,n,r){p.I.createOrUpdateDirectShare({dispatch:m,entity:A.data,entityType:e.entityType,currentUser:E.data,recipients:t,message:n,sentDirectShare:x.data,onSuccess:function(e){return D(E.data.customerId,e)},onError:function(){return d.error(We("directShareError",{name:A.data.name}))},onDone:r})}function G(t,n){p.I.removeDirectShareRecipient(m,t,e.entityType,x.data,(function(e){return D(E.data.customerId,e)}),(function(){d.error(We("removeDirectShareError")),n&&n()}))}function X(e,t){"private"!==e?o.a.fetch(m,l.o.updatePrivacy(w.data.id,e,t,(function(){return d.success(We("privaciesSuccess",{name:A.data.name}))}),(function(){return d.error(We("privaciesError",{name:A.data.name}))}))):H()}var W=!(!E.data||!S.data||v&&!k.data||!x.hasCompleted||!P.data||!A.data||z||!j.hasCompleted);return r.createElement(f.D.Provider,{value:Xe},r.createElement(ze.G,{title:qe(e.entityType),closePopup:e.closePopup,showLoadingSpinner:!W,contentClassName:W&&h?"bg-transparent border-0":"",bodyClassName:"p-0"},function(){if(!W)return r.createElement(r.Fragment,null);switch(h){case"main":return r.createElement(Ne,{shareLink:w.data,shareLinkIsLoading:w.isFetching,entity:A.data,entityType:e.entityType,directShareRecipients:L.data||[],recentlySharedTo:O.data||[],onClickCreateLink:M,onClickShowSettings:function(){return g("link-settings")},onClickShare:Z,onClickRemoveRecipient:G,onClickGetEmbedCode:function(){return g("copy-embed")},analyticsOptions:p.I.getAnalyticsOptions(e.entityType),gatewayApiUrl:e.gatewayApiUrl||S.data.gatewayApiUrl,imageCdnUrl:S.data.imageCdnUrl,searchRequestHeaders:v?{authorization:"Bearer ".concat(k.data.value)}:null,currentUser:E.data,fetchRecipientUsers:F,privacy:P.data,onClickSavePrivacy:X,canAddPolicies:Je(e.entityType),emptyStateImageUrl:e.emptyStateImageUrl,errorStateImageUrl:e.errorStateImageUrl,integrations:(t=U,n=B,Ze._.getShareIntegrations(t,n).filter((function(e){return e.enabled})).map((function(e){return e.id}))),integrationSettingAppLink:e.integrationSettingAppLink,messagePopupAppLink:e.messagePopupAppLink,closePopup:e.closePopup,enableIntegrationBanner:e.enableIntegrationBanner,canEmbed:Ye(e.entityType),yearGroups:j.data,shareOverrideRestrictions:V});case"link-settings":return r.createElement("div",{className:"bg-white p-3 rounded-bottom-3"},r.createElement(Ve,{entity:A.data,entityType:e.entityType,config:S.data,shareLink:w.data,entityId:e.entityId,analyticsOptions:p.I.getAnalyticsOptions(e.entityType),onClickSaveLink:R,onClickDeleteLink:H,onClickCancel:function(){return g("main")},privacy:P.data,hasStudentExp:b(be.C.StudentExperience),shareOverrideRestrictions:V}));case"copy-embed":return r.createElement("div",{className:"bg-white p-3 rounded-bottom-3"},r.createElement(C,{entity:A.data,entityType:e.entityType,config:S.data,shareLink:w.data,entityId:e.entityId,analyticsOptions:p.I.getAnalyticsOptions(e.entityType),onClickCancel:function(){return g("main")}}))}var t,n}()))}},38365:(e,t,n)=>{n.d(t,{n:()=>A,W:()=>S});var r=n(32735),a=n(80247),i=n(80130),o=n(92802),l=n(91967),c=n(1048),s=n(36848),u=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n};function m(e){var t=e.label,n=e.checkboxLabelClassName,a=e.checkboxLabelFontWeight,o=e.className,l=u(e,["label","checkboxLabelClassName","checkboxLabelFontWeight","className"]);return r.createElement(i.Z.Group,{className:"form-group"},r.createElement("div",{className:"form-check ".concat(o||"")},r.createElement(A,Object.assign({className:"form-check-input"},l)),r.createElement(i.Z.Label,{className:"form-check-label cursor-pointer ".concat("normal"===a?"fw-normal":""," \n ").concat(n),htmlFor:l.id},t),e.checkboxAppLink&&e.checkboxAppLinkText&&r.createElement(r.Fragment,null,r.createElement("span",null," "),r.createElement(s.F,{appLink:e.checkboxAppLink,className:"info-link"},e.checkboxAppLinkText))))}var d=n(83914),p=n(83345),f=n(73814),v=n(35223);function y(e){var t=(0,o.u6)().values[e.fieldName];return"string"!=typeof t?r.createElement(r.Fragment,null):r.createElement("div",{className:"float-end text-secondary fw-normal"},t.length,"/",e.limit," characters")}const h={revealPassword:"jCfI0",passwordInput:"RBJnf",passwordContainer:"d78lK",passwordContainerDisabled:"asbVo",infoTooltip:"wzyOG",spinner:"CycFx"};function g(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var b=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n},E="shared.formField";function A(e){var t,n,i=e.children,s=e.showLoadingSpinner,u=b(e,["children","showLoadingSpinner"]),m=(t=r.useState(e.type),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,o,l=[],c=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=i.call(n)).done)&&(l.push(r.value),l.length!==t);c=!0);}catch(e){s=!0,a=e}finally{try{if(!c&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw a}}return l}}(t,n)||function(e,t){if(e){if("string"==typeof e)return g(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)?g(e,t):void 0}}(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),p=m[0],f=m[1],y=l.q.isFunction(i)?function(e){return i(e)}:r.Children.count(i)?i:null;if("password"!==u.type)return s?r.createElement("div",{className:"position-relative"},r.createElement(o.gN,Object.assign({},c.t.omit(u,["formSize"])),y),r.createElement("div",{className:h.spinner},r.createElement(a.Z,{animation:"border",size:"sm"}))):r.createElement(o.gN,Object.assign({},c.t.omit(u,["formSize"])),y);var E="position-relative ".concat(h.passwordContainer);return u.className&&(E+=" ".concat(u.className)),u.disabled&&(E+=" ".concat(h.passwordContainerDisabled)),r.createElement("div",{className:E},r.createElement(o.gN,Object.assign({},c.t.omit(u,["formSize","type","className"]),{type:p,className:"".concat(h.passwordInput," border-0 w-100 h-100 outline-none rounded")}),y),"password"===u.type&&r.createElement(d.x,{svgName:"password"===p?v.vn.VisibleOn:v.vn.VisibleOff,className:"svg-container cursor-pointer ".concat(h.revealPassword),onClick:function(){f("password"===p?"text":"password")}}))}function S(e){var t=e.label,n=e.className,a=e.showCharacterCounter,l=e.showRequiredStar,s=e.infoTooltip,u=e.infoTooltipPlacement,g=e.infoText,S=e.formSize,k=e.showOptionalLabel,w=b(e,["label","className","showCharacterCounter","showRequiredStar","infoTooltip","infoTooltipPlacement","infoText","formSize","showOptionalLabel"]),C=(0,o.u6)(),x=C.errors,L=C.touched,N=function(){};if("checkbox"===w.type){var I=c.t.omit(e,["formSize","infoTooltipPlacement"]);return e.disabled&&(I.onChange=N),r.createElement(m,Object.assign({},I))}var O=Object.assign(Object.assign({},w),{className:f.w.getCustomFormControlClassName(x,L,w.name,S,n,"string"==typeof e.as?e.as:null)});return e.disabled&&(O.onChange=N),r.createElement(i.Z.Group,{className:"form-group"},!!t&&r.createElement(i.Z.Label,{htmlFor:w.id,className:"d-flex align-items-center"},t,l&&r.createElement("span",{className:"text-danger"},"*"),s&&r.createElement(d.x,{className:"svg-container text-secondary ".concat(h.infoTooltip),svgName:v.vn.Info,title:s,tooltipPlacement:u,tooltipSpanHack:!0}),k&&r.createElement("span",{className:"text-secondary"}," ",r.createElement(p.x,{namespace:E,phrase:"optional"})),!!a&&!!w.maxLength&&r.createElement("div",{className:"ms-auto"},r.createElement(y,{fieldName:w.name,limit:w.maxLength}))),r.createElement(A,Object.assign({},O)),!!g&&r.createElement(i.Z.Text,{className:"text-secondary"},g),r.createElement(o.Bc,{name:w.name},(function(e){return r.createElement(i.Z.Control.Feedback,{type:"invalid"},e)})))}A.defaultProps={autoComplete:"off"},S.defaultProps={autoComplete:"off",infoTooltipPlacement:"top"}},82644:(e,t,n)=>{n.d(t,{b:()=>u,n:()=>s});var r=n(32735),a=n(92802),i=n(91967),o=n(1048);function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var c=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n};function s(e){var t=e.castInitialValues,n=e.castValuesOnSubmit,s=e.initialValues,u=e.onSubmit,m=c(e,["castInitialValues","castValuesOnSubmit","initialValues","onSubmit"]),d=t&&e.validationSchema?e.validationSchema.cast(function(e){if(!e)return{};var t=o.t.deepClone(e);return function e(n){Object.keys(t).forEach((function(r){t.hasOwnProperty(r)&&(o.t.isObject(n[r])?e(n[r]):null===t[r]&&delete t[r])}))}(t),t}(s)):s,p={allowInitialSubmit:e.allowInitialSubmit};return r.createElement(a.J9,Object.assign({enableReinitialize:!0},m,{initialValues:d,onSubmit:function(t,r){var a=r.setSubmitting,i=r.resetForm,o=r.setFieldError,c=n&&e.validationSchema?e.validationSchema.cast(t):t;u(c,(function(){var e,t,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(n.reset&&i(),n.errors)for(var r=0,c=Object.entries(n.errors);r<c.length;r++){var s=(e=c[r],t=2,function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,o,l=[],c=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=i.call(n)).done)&&(l.push(r.value),l.length!==t);c=!0);}catch(e){s=!0,a=e}finally{try{if(!c&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw a}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return l(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)?l(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.")}()),u=s[0],m=s[1];o(u,m)}a(!1)}))},initialStatus:p}),i.q.isFunction(e.children)?function(t){return e.children(t)}:r.Children.count(e.children)?e.children:null)}function u(){return(0,a.u6)()}s.defaultProps={castInitialValues:!0,castValuesOnSubmit:!0}},73814:(e,t,n)=>{n.d(t,{w:()=>a});var r=n(92802),a={getCustomFormControlClassName:function(e,t,n,a,i,o){var l="";return l=function(e,t){var n="";return n="select"===e?"form-select":"form-control","sm"===t&&(n+=" ".concat(n,"-sm")),"lg"===t&&(n+=" ".concat(n,"-lg")),n}(o,a),(0,r.u9)(t,n)&&(0,r.u9)(e,n)&&(l+=" is-invalid"),i&&(l+=" ".concat(i)),l}}}}]);
2
- //# sourceMappingURL=7301-98679776b7-lite.chunk.js.map