@clickview/lite 0.48.0-rc.7 → 0.48.1
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.
- package/dist/bundles.json +1 -1
- package/dist/scripts/{1285-c322e093f9-lite.chunk.js → 1285-c3795fed18-lite.chunk.js} +2 -2
- package/dist/scripts/1285-c3795fed18-lite.chunk.js.map +1 -0
- package/dist/scripts/{170-1f815b85a1-lite.chunk.js → 170-2d124965b7-lite.chunk.js} +2 -2
- package/dist/scripts/{170-1f815b85a1-lite.chunk.js.map → 170-2d124965b7-lite.chunk.js.map} +1 -1
- package/dist/scripts/{1818-b9f9297d6d-lite.chunk.js → 1818-72409e60a9-lite.chunk.js} +1 -1
- package/dist/scripts/{1818-b9f9297d6d-lite.chunk.js.map → 1818-72409e60a9-lite.chunk.js.map} +1 -1
- package/dist/scripts/{1863-cf9df40052-lite.chunk.js → 1863-e7c4a6f342-lite.chunk.js} +1 -1
- package/dist/scripts/{1863-cf9df40052-lite.chunk.js.map → 1863-e7c4a6f342-lite.chunk.js.map} +1 -1
- package/dist/scripts/{1958-9889c1ad24-lite.chunk.js → 1958-5336189397-lite.chunk.js} +1 -1
- package/dist/scripts/{1958-9889c1ad24-lite.chunk.js.map → 1958-5336189397-lite.chunk.js.map} +1 -1
- package/dist/scripts/{2086-a247f6e201-lite.chunk.js → 2086-f7082703d0-lite.chunk.js} +1 -1
- package/dist/scripts/{2086-a247f6e201-lite.chunk.js.map → 2086-f7082703d0-lite.chunk.js.map} +1 -1
- package/dist/scripts/{2118-462a279c5a-lite.chunk.js → 2118-ec2a5f1e9b-lite.chunk.js} +2 -2
- package/dist/scripts/{2118-462a279c5a-lite.chunk.js.map → 2118-ec2a5f1e9b-lite.chunk.js.map} +1 -1
- package/dist/scripts/{2182-5c9db07f5b-lite.chunk.js → 2182-8e4d603a1b-lite.chunk.js} +1 -1
- package/dist/scripts/{2182-5c9db07f5b-lite.chunk.js.map → 2182-8e4d603a1b-lite.chunk.js.map} +1 -1
- package/dist/scripts/{2279-5e92c84310-lite.chunk.js → 2279-252e92e1d8-lite.chunk.js} +1 -1
- package/dist/scripts/{2279-5e92c84310-lite.chunk.js.map → 2279-252e92e1d8-lite.chunk.js.map} +1 -1
- package/dist/scripts/{2355-6cd89fa80d-lite.chunk.js → 2355-c588dc3ce2-lite.chunk.js} +1 -1
- package/dist/scripts/{2355-6cd89fa80d-lite.chunk.js.map → 2355-c588dc3ce2-lite.chunk.js.map} +1 -1
- package/dist/scripts/{2469-aa5bbbb17f-lite.chunk.js → 2469-46411b862e-lite.chunk.js} +1 -1
- package/dist/scripts/{2469-aa5bbbb17f-lite.chunk.js.map → 2469-46411b862e-lite.chunk.js.map} +1 -1
- package/dist/scripts/{2672-0fc559f1d1-lite.chunk.js → 2672-b01985cee8-lite.chunk.js} +1 -1
- package/dist/scripts/{2672-0fc559f1d1-lite.chunk.js.map → 2672-b01985cee8-lite.chunk.js.map} +1 -1
- package/dist/scripts/{2734-6c6d57d0f3-lite.chunk.js → 2734-6a7beb2ce2-lite.chunk.js} +1 -1
- package/dist/scripts/{2734-6c6d57d0f3-lite.chunk.js.map → 2734-6a7beb2ce2-lite.chunk.js.map} +1 -1
- package/dist/scripts/{287-ba98be7f21-lite.chunk.js → 287-3cbed16363-lite.chunk.js} +1 -1
- package/dist/scripts/{287-ba98be7f21-lite.chunk.js.map → 287-3cbed16363-lite.chunk.js.map} +1 -1
- package/dist/scripts/{2875-0e5f209e47-lite.chunk.js → 2875-aefd69a61f-lite.chunk.js} +1 -1
- package/dist/scripts/{2875-0e5f209e47-lite.chunk.js.map → 2875-aefd69a61f-lite.chunk.js.map} +1 -1
- package/dist/scripts/{3012-b5208d6981-lite.chunk.js → 3012-fd3eb34a14-lite.chunk.js} +2 -2
- package/dist/scripts/3012-fd3eb34a14-lite.chunk.js.map +1 -0
- package/dist/scripts/{3042-6650521d8b-lite.chunk.js → 3042-7c1b5e4ff7-lite.chunk.js} +1 -1
- package/dist/scripts/{3042-6650521d8b-lite.chunk.js.map → 3042-7c1b5e4ff7-lite.chunk.js.map} +1 -1
- package/dist/scripts/{3158-31baada6cc-lite.chunk.js → 3158-2147de456d-lite.chunk.js} +1 -1
- package/dist/scripts/{3158-31baada6cc-lite.chunk.js.map → 3158-2147de456d-lite.chunk.js.map} +1 -1
- package/dist/scripts/{3296-6d80e4dd56-lite.chunk.js → 3296-f3732c93d9-lite.chunk.js} +1 -1
- package/dist/scripts/{3296-6d80e4dd56-lite.chunk.js.map → 3296-f3732c93d9-lite.chunk.js.map} +1 -1
- package/dist/scripts/{3541-7ebd9db295-lite.chunk.js → 3541-15581012d3-lite.chunk.js} +1 -1
- package/dist/scripts/{3541-7ebd9db295-lite.chunk.js.map → 3541-15581012d3-lite.chunk.js.map} +1 -1
- package/dist/scripts/{3841-95df66e647-lite.chunk.js → 3841-bfae79638b-lite.chunk.js} +2 -2
- package/dist/scripts/{3841-95df66e647-lite.chunk.js.map → 3841-bfae79638b-lite.chunk.js.map} +1 -1
- package/dist/scripts/{3888-0bee9a9309-lite.chunk.js → 3888-87c1075a1b-lite.chunk.js} +1 -1
- package/dist/scripts/{3888-0bee9a9309-lite.chunk.js.map → 3888-87c1075a1b-lite.chunk.js.map} +1 -1
- package/dist/scripts/{4138-75a2bb69ab-lite.chunk.js → 4138-b9b03c9900-lite.chunk.js} +1 -1
- package/dist/scripts/{4138-75a2bb69ab-lite.chunk.js.map → 4138-b9b03c9900-lite.chunk.js.map} +1 -1
- package/dist/scripts/{4778-ebe369973c-lite.chunk.js → 4778-3c9f2b7f76-lite.chunk.js} +2 -2
- package/dist/scripts/{4778-ebe369973c-lite.chunk.js.map → 4778-3c9f2b7f76-lite.chunk.js.map} +1 -1
- package/dist/scripts/{4942-a27a31e79e-lite.chunk.js → 4942-acce40b333-lite.chunk.js} +2 -2
- package/dist/scripts/{4942-a27a31e79e-lite.chunk.js.map → 4942-acce40b333-lite.chunk.js.map} +1 -1
- package/dist/scripts/{5075-f8719465be-lite.chunk.js → 5075-53172298fe-lite.chunk.js} +1 -1
- package/dist/scripts/{5075-f8719465be-lite.chunk.js.map → 5075-53172298fe-lite.chunk.js.map} +1 -1
- package/dist/scripts/{5157-cd12e2e443-lite.chunk.js → 5157-47a0f5c088-lite.chunk.js} +1 -1
- package/dist/scripts/{5157-cd12e2e443-lite.chunk.js.map → 5157-47a0f5c088-lite.chunk.js.map} +1 -1
- package/dist/scripts/{5268-f4db3933ff-lite.chunk.js → 5268-9b7560f3b1-lite.chunk.js} +2 -2
- package/dist/scripts/{5268-f4db3933ff-lite.chunk.js.map → 5268-9b7560f3b1-lite.chunk.js.map} +1 -1
- package/dist/scripts/{5442-01ffd95162-lite.chunk.js → 5442-5ddfa2d951-lite.chunk.js} +1 -1
- package/dist/scripts/{5442-01ffd95162-lite.chunk.js.map → 5442-5ddfa2d951-lite.chunk.js.map} +1 -1
- package/dist/scripts/{5591-98cfe6c6e5-lite.chunk.js → 5591-119d72ede5-lite.chunk.js} +1 -1
- package/dist/scripts/{5591-98cfe6c6e5-lite.chunk.js.map → 5591-119d72ede5-lite.chunk.js.map} +1 -1
- package/dist/scripts/{5595-3763b14d77-lite.chunk.js → 5595-628d4f252c-lite.chunk.js} +2 -2
- package/dist/scripts/5595-628d4f252c-lite.chunk.js.map +1 -0
- package/dist/scripts/{6102-4d948a5e48-lite.chunk.js → 6102-6e5494bf09-lite.chunk.js} +3 -3
- package/dist/scripts/{6102-4d948a5e48-lite.chunk.js.map → 6102-6e5494bf09-lite.chunk.js.map} +1 -1
- package/dist/scripts/{6158-0c5e44f800-lite.chunk.js → 6158-d123add596-lite.chunk.js} +1 -1
- package/dist/scripts/{6158-0c5e44f800-lite.chunk.js.map → 6158-d123add596-lite.chunk.js.map} +1 -1
- package/dist/scripts/{6263-8957d50afe-lite.chunk.js → 6263-24e67b7df2-lite.chunk.js} +1 -1
- package/dist/scripts/{6263-8957d50afe-lite.chunk.js.map → 6263-24e67b7df2-lite.chunk.js.map} +1 -1
- package/dist/scripts/{6330-c66465bd6d-lite.chunk.js → 6330-9a2a5fc07e-lite.chunk.js} +1 -1
- package/dist/scripts/{6330-c66465bd6d-lite.chunk.js.map → 6330-9a2a5fc07e-lite.chunk.js.map} +1 -1
- package/dist/scripts/{671-003843ca84-lite.chunk.js → 671-5571f33165-lite.chunk.js} +1 -1
- package/dist/scripts/{671-003843ca84-lite.chunk.js.map → 671-5571f33165-lite.chunk.js.map} +1 -1
- package/dist/scripts/{7167-efe85af16e-lite.chunk.js → 7167-dc4c954c2b-lite.chunk.js} +1 -1
- package/dist/scripts/{7167-efe85af16e-lite.chunk.js.map → 7167-dc4c954c2b-lite.chunk.js.map} +1 -1
- package/dist/scripts/7293-58f4a7cf47-lite.chunk.js +2 -0
- package/dist/scripts/{7293-afd3349468-lite.chunk.js.map → 7293-58f4a7cf47-lite.chunk.js.map} +1 -1
- package/dist/scripts/{7301-f20e4bdb8f-lite.chunk.js → 7301-7c9342ef0c-lite.chunk.js} +1 -1
- package/dist/scripts/{7301-f20e4bdb8f-lite.chunk.js.map → 7301-7c9342ef0c-lite.chunk.js.map} +1 -1
- package/dist/scripts/{7708-ece31b78a9-lite.chunk.js → 7708-e91903481a-lite.chunk.js} +1 -1
- package/dist/scripts/{7708-ece31b78a9-lite.chunk.js.map → 7708-e91903481a-lite.chunk.js.map} +1 -1
- package/dist/scripts/{771-eb60e33941-lite.chunk.js → 771-5612b4ffc2-lite.chunk.js} +2 -2
- package/dist/scripts/{771-eb60e33941-lite.chunk.js.map → 771-5612b4ffc2-lite.chunk.js.map} +1 -1
- package/dist/scripts/{7855-37bcdd134e-lite.chunk.js → 7855-4b69540a71-lite.chunk.js} +1 -1
- package/dist/scripts/{7855-37bcdd134e-lite.chunk.js.map → 7855-4b69540a71-lite.chunk.js.map} +1 -1
- package/dist/scripts/{8024-66413cc05b-lite.chunk.js → 8024-765a4170c7-lite.chunk.js} +2 -2
- package/dist/scripts/{8024-66413cc05b-lite.chunk.js.map → 8024-765a4170c7-lite.chunk.js.map} +1 -1
- package/dist/scripts/{823-58d27c255b-lite.chunk.js → 823-33c5207c68-lite.chunk.js} +1 -1
- package/dist/scripts/{823-58d27c255b-lite.chunk.js.map → 823-33c5207c68-lite.chunk.js.map} +1 -1
- package/dist/scripts/8261-69854ff4d5-lite.chunk.js +2 -0
- package/dist/scripts/8261-69854ff4d5-lite.chunk.js.map +1 -0
- package/dist/scripts/{8466-ee9d40ee97-lite.chunk.js → 8466-cea62163e8-lite.chunk.js} +1 -1
- package/dist/scripts/{8466-ee9d40ee97-lite.chunk.js.map → 8466-cea62163e8-lite.chunk.js.map} +1 -1
- package/dist/scripts/{8681-41edd08b98-lite.chunk.js → 8681-49db3daae6-lite.chunk.js} +2 -2
- package/dist/scripts/{8681-41edd08b98-lite.chunk.js.map → 8681-49db3daae6-lite.chunk.js.map} +1 -1
- package/dist/scripts/{8772-9ae4d77363-lite.chunk.js → 8772-6c11095cea-lite.chunk.js} +1 -1
- package/dist/scripts/{8772-9ae4d77363-lite.chunk.js.map → 8772-6c11095cea-lite.chunk.js.map} +1 -1
- package/dist/scripts/{8906-b75b51bd0f-lite.chunk.js → 8906-2f6b5e4c5c-lite.chunk.js} +2 -2
- package/dist/scripts/{8906-b75b51bd0f-lite.chunk.js.map → 8906-2f6b5e4c5c-lite.chunk.js.map} +1 -1
- package/dist/scripts/{920-4de8efbcf1-lite.chunk.js → 920-acc6596891-lite.chunk.js} +1 -1
- package/dist/scripts/{920-4de8efbcf1-lite.chunk.js.map → 920-acc6596891-lite.chunk.js.map} +1 -1
- package/dist/scripts/{9212-8f95fbd9b9-lite.chunk.js → 9212-cc987a13bf-lite.chunk.js} +1 -1
- package/dist/scripts/{9212-8f95fbd9b9-lite.chunk.js.map → 9212-cc987a13bf-lite.chunk.js.map} +1 -1
- package/dist/scripts/{9242-2e533bdc0d-lite.chunk.js → 9242-144e7728ad-lite.chunk.js} +1 -1
- package/dist/scripts/{9242-2e533bdc0d-lite.chunk.js.map → 9242-144e7728ad-lite.chunk.js.map} +1 -1
- package/dist/scripts/{9264-d2285d4310-lite.chunk.js → 9264-518952f13f-lite.chunk.js} +1 -1
- package/dist/scripts/{9264-d2285d4310-lite.chunk.js.map → 9264-518952f13f-lite.chunk.js.map} +1 -1
- package/dist/scripts/{9478-8eacf2fe47-lite.chunk.js → 9478-4b3c088537-lite.chunk.js} +2 -2
- package/dist/scripts/{9478-8eacf2fe47-lite.chunk.js.map → 9478-4b3c088537-lite.chunk.js.map} +1 -1
- package/dist/scripts/{9484-be04a34bbf-lite.chunk.js → 9484-b85011dbea-lite.chunk.js} +2 -2
- package/dist/scripts/{9484-be04a34bbf-lite.chunk.js.map → 9484-b85011dbea-lite.chunk.js.map} +1 -1
- package/dist/scripts/bundle-11bfce2e8c.min.js +3 -0
- package/dist/scripts/{bundle-8f540a1154.min.js.map → bundle-11bfce2e8c.min.js.map} +1 -1
- package/package.json +1 -1
- package/dist/scripts/1285-c322e093f9-lite.chunk.js.map +0 -1
- package/dist/scripts/3012-b5208d6981-lite.chunk.js.map +0 -1
- package/dist/scripts/5595-3763b14d77-lite.chunk.js.map +0 -1
- package/dist/scripts/7293-afd3349468-lite.chunk.js +0 -2
- package/dist/scripts/8261-72453f1978-lite.chunk.js +0 -2
- package/dist/scripts/8261-72453f1978-lite.chunk.js.map +0 -1
- package/dist/scripts/bundle-8f540a1154.min.js +0 -3
- /package/dist/scripts/{170-1f815b85a1-lite.chunk.js.LICENSE.txt → 170-2d124965b7-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{2118-462a279c5a-lite.chunk.js.LICENSE.txt → 2118-ec2a5f1e9b-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{3841-95df66e647-lite.chunk.js.LICENSE.txt → 3841-bfae79638b-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{4778-ebe369973c-lite.chunk.js.LICENSE.txt → 4778-3c9f2b7f76-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{4942-a27a31e79e-lite.chunk.js.LICENSE.txt → 4942-acce40b333-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{5268-f4db3933ff-lite.chunk.js.LICENSE.txt → 5268-9b7560f3b1-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{6102-4d948a5e48-lite.chunk.js.LICENSE.txt → 6102-6e5494bf09-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{771-eb60e33941-lite.chunk.js.LICENSE.txt → 771-5612b4ffc2-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{8024-66413cc05b-lite.chunk.js.LICENSE.txt → 8024-765a4170c7-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{8681-41edd08b98-lite.chunk.js.LICENSE.txt → 8681-49db3daae6-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{8906-b75b51bd0f-lite.chunk.js.LICENSE.txt → 8906-2f6b5e4c5c-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{9478-8eacf2fe47-lite.chunk.js.LICENSE.txt → 9478-4b3c088537-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{9484-be04a34bbf-lite.chunk.js.LICENSE.txt → 9484-b85011dbea-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{bundle-8f540a1154.min.js.LICENSE.txt → bundle-11bfce2e8c.min.js.LICENSE.txt} +0 -0
package/dist/bundles.json
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
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),R=n(11607),M=n(89965),A=n(10874),P=n(83914),F=n(76177),G=n(86764),L=n(69883),D=n(299),_=n(3747),H=n(34509),j=n(36848),B=n(36511);function Z(e){var t;return e.group?a.createElement("div",{className:"classroom-pill text-white bg-".concat((0,B.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(R.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(H.Z,Object.assign({},c),a.createElement(H.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(H.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(M.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(j.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=Object.prototype.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=new 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(M.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,_.a)(G.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(M.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(R.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(F.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(F.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;return N?a.createElement(a.Fragment,null,a.createElement(c.P,{type:"classroom"}),a.createElement(x,null)):(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:N}):a.createElement(U,{classroom:h.data,classroomIdeasText:ke("classroomIdeasText"),schoolHasNoStudents:!(null===(s=null===(o=b.data)||void 0===o?void 0:o.data)||void 0===s?void 0:s.length),canManageUsers:O(d.C.ManageUsers)})}()):a.createElement(Se,null)}}}]);
|
|
2
|
-
//# sourceMappingURL=1285-
|
|
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),j=n(36848),B=n(36511);function Z(e){var t;return e.group?a.createElement("div",{className:"classroom-pill text-white bg-".concat((0,B.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(j.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=Object.prototype.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=new 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-c3795fed18-lite.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/1285-c3795fed18-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/components/rostering/rostering-alert/RosteringAlert.tsx","file:///app/packages/libs/shared/src/hooks/useBulkCheckboxManager.ts","file:///app/packages/libs/shared/src/hooks/usePrevious.ts","file:///app/packages/libs/shared/src/utils/GroupHelper.ts","file:///app/packages/projects/lite/src/apps/classrooms/views/classrooms/empty-state/ClassroomsNoStudentsState.tsx","file:///app/packages/projects/lite/src/apps/classrooms/components/manage-classroom-students/empty-state/ManageClassroomStudentsEmptyState.tsx","file:///app/packages/projects/lite/src/apps/classrooms/components/classroom-group-pill/ClassroomGroupPill.tsx","file:///app/packages/projects/lite/src/apps/classrooms/components/classroom-group-dropdown/ClassroomGroupDropdown.tsx","file:///app/packages/projects/lite/src/apps/classrooms/components/manage-classroom-student-item/manage-classroom-student-item.scss","file:///app/packages/projects/lite/src/apps/classrooms/components/manage-classroom-student-item/ManageClassroomStudentItem.tsx","file:///app/packages/projects/lite/src/apps/classrooms/components/manage-classroom-students/ManageClassroomStudents.tsx","file:///app/packages/projects/lite/src/apps/classrooms/components/manage-classroom-students/partial-loading/partial-manage-classroom-students.scss","file:///app/packages/projects/lite/src/apps/classrooms/components/manage-classroom-students/partial-loading/PartialManageClassroomStudents.tsx","file:///app/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} \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,3 +1,3 @@
|
|
|
1
|
-
/*! For license information please see 170-
|
|
1
|
+
/*! For license information please see 170-2d124965b7-lite.chunk.js.LICENSE.txt */
|
|
2
2
|
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[170],{11921:(e,t,n)=>{n.d(t,{F:()=>l});var r=n(32735),a=n(35223),o=n(83914);var i=function(e){switch(e){case"up":return"JAT0R";case"down":return"ld41u";case"right":return"HHkPe";case"left":return"jZTRR"}};function l(e){return r.createElement(o.x,{svgName:a.vn.Caret,className:"".concat(i(e.direction)," svg-container d-inline-block ").concat(e.className)})}l.defaultProps={direction:"right"}},73518:(e,t,n)=>{n.d(t,{p:()=>l});var r=n(32735),a=n(20455),o=n(95339);function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function l(e){var t,n,l=(t=r.useState(null),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,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 i(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?i(e,t):void 0}}(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.")}()),c=l[0],s=l[1],u=e.dragOverlayComponent,d=(0,a.VT)(a.we,{activationConstraint:{distance:10}}),f=(0,a.Dy)(d);return r.createElement(a.LB,{onDragEnd:function(t){s(null),e.handleDragEnd(t,e.source)},onDragStart:function(t){var n;s(t.active.data.current),null===(n=e.handleDragStart)||void 0===n||n.call(e,t)},sensors:f,collisionDetection:a.j2},e.children,r.createElement(a.y9,{dropAnimation:null,modifiers:[o.oJ],zIndex:1050},c?r.createElement(u,{activeDragData:c}):null))}},83834:(e,t,n)=>{n.d(t,{$:()=>w});var r=n(32735),a=n(57900),o=n(11921),i=n(11607),l=n(97395),c=n(83657),s=n(36848),u=n(88711),d=n(75163),f=n(5465),p=n(54610);const m={actions:"cN3nB",actionsContainer:"xM37V",dropStyle:"kvCLS",dragStyle:"md9Na"};function v(e){var t,n=e.folder.thumbnail?l._.urlBuilder(e.folder.thumbnail.url,{size:p.h2.Small}):null,a=null===(t=e.getFolderActions)||void 0===t?void 0:t.call(e,e.folder);return r.createElement(u.j,{draggable:e.drag&&{id:e.folder.id,data:e.folder},droppable:e.drop&&{id:e.folder.id,data:e.folder},dropStye:m.dropStyle,dragStyle:m.dragStyle},r.createElement("div",{className:"position-relative"},r.createElement(s.F,{className:"rounded-3 d-block text-decoration-none",appLink:e.getAppLink(e.folder),title:e.folder.name},r.createElement(d.Z,{data:n,imageType:p.__.Thumbnails,imageClassName:"rounded-top-lg"},r.createElement(f.oy,{name:e.folder.name,type:f.mS.Folder,extraClasses:"rounded-top-lg"})),r.createElement("h3",{className:"bg-white border-start border-end border-bottom rounded-bottom-lg font-size-normal fw-semibold mb-0 p-2"},r.createElement("span",{className:"text-truncate d-block"},e.folder.name))),(null==a?void 0:a.length)&&r.createElement(c.e,{actions:a,className:m.actionsContainer,actionsDropdownClassName:m.actions,dropdownToggleSvgSize:null})))}var y=n(83345),h=n(79967);function g(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var b="libraries.folderList",E="has:expanded:library:folders";function w(e){var t,n,l,c=(n=r.useState(a.SG.get(E)||!1),l=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,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,l)||function(e,t){if(e){if("string"==typeof e)return g(e,t);var n=Object.prototype.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}}(n,l)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),s=c[0],u=c[1],d=e.expandFolders||s,f=(t=(0,h.k)()).xxl||t.xl||t.lg?6:t.md?4:3;function p(){u(!d),a.SG.set(E,!d)}var m=d?e.folders:e.folders.slice(0,f),w=e.folders.length>f&&!e.expandFolders;return r.createElement(r.Fragment,null,r.createElement("div",{className:"d-flex justify-content-between align-items-center"},e.showHeading&&r.createElement(i.L,{className:"d-inline-flex align-items-center mb-2 px-2 ".concat(w?"":"cursor-default"),onClick:p},w&&r.createElement(o.F,{direction:d?"down":"right"}),r.createElement("h2",{className:"h4 mb-0"},r.createElement(y.x,{namespace:b,phrase:"folders",options:{count:e.folders.length}}))),!(d||!w)&&r.createElement("div",{className:"d-flex justify-content-end justify-self-end px-2"},r.createElement(i.L,{onClick:p,className:"text-dark hover-text-underline d-inline-block"},r.createElement(y.x,{namespace:b,phrase:"seeAll",options:{count:e.folders.length}}))),!(!d||!w)&&r.createElement("div",{className:"d-flex justify-content-end justify-self-end px-2"},r.createElement(i.L,{onClick:p,className:"text-dark hover-text-underline d-inline-block"},r.createElement(y.x,{namespace:b,phrase:"seeLess"}))),e.extraButtons?e.extraButtons:r.createElement(r.Fragment,null)),r.createElement("div",{className:"row mx-1"},m.map((function(t){return r.createElement("div",{key:t.id,className:"col-4 col-md-3 col-lg-2 px-1 pb-3"},r.createElement(v,{folder:t,getAppLink:e.getAppLink,getFolderActions:e.getFolderActions,drag:e.drag,drop:e.drop}))}))))}w.defaultProps={showHeading:!0}},65403:(e,t,n)=>{n.d(t,{i:()=>i});var r=n(32735);const a={partialFolderHeading:"dhbsL",partialFolderThumbnail:"CI9vk",partialFolderName:"l0Nll"};var o=function(){return r.createElement("div",{className:"col-4 col-md-3 col-lg-2 px-1 pb-3"},r.createElement("div",{className:"".concat(a.partialFolderThumbnail," partial-loading-background rounded-top-lg")}),r.createElement("div",{className:"".concat(a.partialFolderName," partial-loading-background border-bottom rounded-bottom-lg font-size-normal mb-0 p-2")}," "))};function i(e){var t=e.count,n=void 0===t?3:t;return r.createElement(r.Fragment,null,r.createElement("div",{className:"".concat(a.partialFolderHeading," h4 mb-2 partial-loading-background")}," "),r.createElement("div",{className:"row mx-n1"},Array(n).fill(null).map((function(e,t){return r.createElement(o,{key:t})}))))}},74696:(e,t,n)=>{n.d(t,{S:()=>s});var r=n(32735),a=n(68050),o=n(69111),i=n(9977),l=n(79967);const c={partialOptions:"Gufgq",partialName:"SicQQ",partialDescription:"dPGMq",partialThumbnail:"vZrnb",partialDragHandle:"iq73R"};function s(e){return r.createElement("div",{className:"mx-2"},Array(e.numVideos).fill(null).map((function(t,n){return r.createElement("div",{className:"d-flex",key:n},e.allowBulkActions&&r.createElement("div",{className:"form-check pe-3 pe-sm-2 mx-0 mx-md-2"}),r.createElement(u,Object.assign({},e)))})))}function u(e){var t=(0,l.k)(),n="sm"===i.O.getSize(t,"md"),s=e.withReordering&&!t.xs;return r.createElement(a.Z,{className:"".concat(n?"":"py-2"," flex-grow-1")},r.createElement(o.Z,Object.assign({},i.O.getThumbnailColumns(),{className:"flex-column align-items-flex-start ".concat(n?"pb-2 pe-1":"mb-1 pe-3 pe-md-2")}),r.createElement(a.Z,null,!!s&&r.createElement("div",{className:"d-flex align-items-center justify-content-center col-2"},r.createElement("div",{className:"partial-loading-background ".concat(c.partialDragHandle)})),r.createElement(o.Z,{xs:i.O.getThumbnailColSize(s)},r.createElement("div",{className:"partial-loading-background ".concat(n?"rounded":"rounded-3"," ").concat(c.partialThumbnail)})))),r.createElement(o.Z,Object.assign({},i.O.getDetailsColumns(),{className:n?"pb-2":"px-2"}),r.createElement("div",{className:"partial-loading-background mb-1 ".concat(c.partialName)}),r.createElement("div",{className:"partial-loading-background ".concat(c.partialDescription)})))}s.defaultProps={numVideos:15}},30254:(e,t,n)=>{n.d(t,{X:()=>p});var r=n(32735),a=n(81886),o=n(49985),i=n(36848),l=n(11607),c=n(89965),s=n(83345);function u(e,t){if(e){if("string"==typeof e)return d(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?d(e,t):void 0}}function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var f="shared.videoListActions";function p(e){var t,n,i=e.checkboxHelper,d=(t=r.useState([]),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,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)||u(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=d[0],v=d[1];return r.createElement(r.Fragment,null,r.createElement("div",{className:"d-flex align-items-center mb-3"},e.allowBulkAction&&r.createElement(r.Fragment,null,r.createElement(c.X,{id:"my-videos",name:"my-videos",className:"me-0 me-md-2",checked:i.bulkChecked,onChange:i.onToggleBulk,indeterminate:i.hasSomeSelections()}),r.createElement("div",{className:"btn-group drop-right px-2 ps-sm-0 ps-md-2"},r.createElement(l.L,{onClick:function(){var t;v(null===(t=e.getVideosBulkAction)||void 0===t?void 0:t.call(e,i.getSelected()))},className:"btn btn-outline-dark dropdown-toggle ".concat(i.hasSomeSelections()?"":"disabled"),id:"my-videos-action","data-bs-toggle":"dropdown","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},r.createElement(s.x,{namespace:f,phrase:"options"})),r.createElement("div",{className:"dropdown-menu dropdown-menu-end dropdown-menu-right","aria-labelledby":"my-videos-action"},p.length&&p.map((function(e){return r.createElement(l.L,{key:e.label,className:"dropdown-item ".concat(e.className),onClick:function(){return function(e){a.Q.C$.trigger(e.appLink),o.k.logUserAction(e.analyticsData,e.analyticsOptions)}(e)}},e.label)}))))),e.allowFilter&&r.createElement("div",{className:"border-start"},r.createElement(m,{type:"video",typeFilter:e.typeFilter,appLink:e.getAppLink()}),r.createElement(m,{type:"interactive",typeFilter:e.typeFilter,appLink:e.getAppLink()}),r.createElement(m,{type:"clip",typeFilter:e.typeFilter,appLink:e.getAppLink()}))))}function m(e){var t,n,a=e.typeFilter.includes(e.type),o=e.appLink,l=o.params;t=a?e.typeFilter.filter((function(t){return t!==e.type})):[].concat(function(e){if(Array.isArray(e))return d(e)}(n=e.typeFilter)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(n)||u(n)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),[e.type]);var c=Object.assign(Object.assign({},o),{params:Object.assign(Object.assign({},l),{type:t})});return r.createElement(i.F,{className:"ms-2 btn ".concat(a?"btn-dark":"btn-outline-dark"),appLink:c},r.createElement(s.x,{namespace:f,phrase:"video"===e.type?"videos":"clip"===e.type?"clips":"interactive"===e.type?"interactives":void 0}))}},94644:(e,t,n)=>{n.d(t,{r:()=>u});var r=n(50242),a=n(81886),o=n(67058),i=n(14553),l=n(49267),c=n(49075),s={notFound:o.d,forbidden:{rating:i.q,yearLevel:i.q,region:l.a,privacy:i.q},badRequest:c._};function u(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e){var o;o="number"==typeof e?e:e.status;var i=Object.assign(Object.assign({},s),t);o&&a.Q.Ry.isStatusCodeError(o)&&(o!==r.o.NotFound?o!==r.o.Forbidden?n.badRequest||a.Q.Ry.throw(new i.badRequest):n.forbidden||a.Q.Ry.throw(new i.forbidden.privacy):n.notFound||a.Q.Ry.throw(new i.notFound))}}},81409:(e,t,n)=>{n.d(t,{o:()=>o});var r=n(32735);function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function o(e,t){var n,o,i,l=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],c=(o=r.useState(!1),i=2,function(e){if(Array.isArray(e))return e}(o)||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}}(o,i)||function(e,t){if(e){if("string"==typeof e)return a(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?a(e,t):void 0}}(o,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.")}())[1];return r.useEffect((function(){var n=e();if(n)return n.off("add remove change"),n.on("add remove change",(function(){c((function(e){return!e}))})),t&&n.on("remove",t),function(){n.off("add remove change")}}),l),null===(n=e())||void 0===n?void 0:n.toJSON()}},91286:(e,t,n)=>{n.d(t,{v:()=>i});var r=n(32735),a=n(94644);function o(e){return e.map((function(e){return e.statusCode})).join(":")}function i(e,t,n){var i=Array.isArray(e)?e:[e];(0,r.useEffect)((function(){i.forEach((function(e){(0,a.r)(e.statusCode,t,n)}))}),[o(i),t,n])}},299:(e,t,n)=>{n.d(t,{X:()=>i});var r=n(32735),a=n(69217),o=n(94631),i=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.idField,i=void 0===n?"id":n,l=t.persistNamespace,c=t.initialState?t.initialState:new Map,s=r.useRef(c),u=(0,a.N)(),d=(0,o.D)(e),f=(0,o.D)(l);function p(){s.current.clear(),u()}function m(e){return"number"==typeof e?e=e.toString():"string"!=typeof e&&(e=e[i].toString()),s.current.get(e)}function v(){return!!(null==e?void 0:e.length)&&e.every(m)}function y(e){e.forEach((function(e){s.current.set(e,!0)})),u()}return r.useEffect((function(){t.initialState||l&&f===l||(null==d?void 0:d.map((function(e){return e[i]})).join())!==(null==e?void 0:e.map((function(e){return e[i]})).join())&&p()}),[d,f,e,t.initialState]),r.useEffect((function(){var e;(null===(e=t.preselectedIds)||void 0===e?void 0:e.length)&&y(t.preselectedIds)}),[]),{onToggleBulk:function(){var t=!v();e.forEach((function(e){t?s.current.set(e[i].toString(),!0):s.current.delete(e[i].toString())})),u()},onToggleItem:function(e){var t=!s.current.get(e.toString());t?s.current.set(e.toString(),t):s.current.delete(e.toString()),u()},getSelected:function(){return Array.from(s.current.keys())},isChecked:m,bulkChecked:v(),deselectAll:function(){(null==e?void 0:e.length)&&(e.forEach((function(e){s.current.delete(e[i].toString())})),u())},hasSomeSelections:function(){return!!(null==e?void 0:e.length)&&!!e.find((function(e){return m(e)}))},setSelected:y,getSelectedCount:function(){return s.current.size},reset:p,getMap:function(){return s.current}}}},94631:(e,t,n)=>{n.d(t,{D:()=>a});var r=n(32735);function a(e){var t=r.useRef();return r.useEffect((function(){t.current=e})),t.current}},11462:(e,t,n)=>{n.d(t,{d:()=>d,q:()=>u});var r=n(1048),a=n(28400);function o(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=l(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 o,i=!0,c=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return i=e.done,e},e:function(e){c=!0,o=e},f:function(){try{i||null==n.return||n.return()}finally{if(c)throw o}}}}function i(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)||l(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 l(e,t){if(e){if("string"==typeof e)return c(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?c(e,t):void 0}}function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function s(e,t,n){if(a.m.isEqual(e.id,t))return[e,n];var r,o=e.children;if(!o||!o.length)return[null,null];for(var u=0;u<o.length;u++){var d=i(s(o[u],t,[].concat(function(e){if(Array.isArray(e))return c(e)}(r=n)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(r)||l(r)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),[e])),2),f=d[0],p=d[1];if(f)return[f,p]}return[null,null]}var u=7,d={find:function(e,t){if(e&&e.children&&e.children.length)for(var n=0;n<e.children.length;n++){var r=i(s(e.children[n],t,[]),1)[0];if(r)return r}},getPath:function(e,t){if(e&&e.children&&e.children.length)for(var n=0;n<e.children.length;n++){var r=i(s(e.children[n],t,[]),2)[1];if(null==r?void 0:r.length)return r}},getParent:function(e,t){var n=d.getPath(e,t);return(null==n?void 0:n.length)?n[n.length-1]:null},convertNestedObjectToTree:function(e){var t,n=Object.assign(Object.assign({},e.data),{children:e.children});return(null===(t=n.children)||void 0===t?void 0:t.length)&&(n.children=n.children.map(d.convertNestedObjectToTree)),n},findDepth:function(e,t){var n,r,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;if(!e||0===e.length)return 0;var i,l=0,c=o(e);try{for(c.s();!(i=c.n()).done;){var s=i.value;if((null===(r=null===(n=s.data)||void 0===n?void 0:n.id)||void 0===r?void 0:r.toString())===t.toString())return a;var u=d.findDepth(s.children,t,a+1);if(u>0){l=u;break}}}catch(e){c.e(e)}finally{c.f()}return l},findMaxChildDepth:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(!e||0===e.length)return t;var n,r=t,a=o(e);try{for(a.s();!(n=a.n()).done;){var i=n.value,l=d.findMaxChildDepth(i.children,t+1);r=Math.max(r,l)}}catch(e){a.e(e)}finally{a.f()}return r},findTargetNode:function(e,t){var n,r;if(!e||0===e.length)return null;var a,i=o(e);try{for(i.s();!(a=i.n()).done;){var l=a.value;if((null===(r=null===(n=l.data)||void 0===n?void 0:n.id)||void 0===r?void 0:r.toString())===t.toString())return l;var c=d.findTargetNode(l.children,t);if(null!==c)return c}}catch(e){i.e(e)}finally{i.f()}return null},isMaxDepth:function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:u,a=d.findTargetNode(e,t);return d.findMaxChildDepth(a.children)+d.findDepth(e,n)>=r},flatten:function(e){if(!e)return[];var t=[];return e.children.forEach((function e(n){t.push(r.t.omit(n,["children"])),n.children.forEach(e)})),t}}},98860:(e,t,n)=>{n.d(t,{P:()=>l});var r=n(20354),a=n(98064),o=n(3010),i=n(45719);function l(e){var t=r.a.useGetFetch();function n(t){return a.D.childFolders(e,t)}return(0,o.i)(!!e&&n,!!e&&function(e){t(n(e))}),(0,i.P)(!!e&&function(e){return n(e).key})}},12617:(e,t,n)=>{n.d(t,{E:()=>s});var r=n(99940),a=n(97395),o=n(62803),i=n(5960),l=n(4594),c=n(78417),s={videos:function(e,t,n){var r=o.v.VIDEO_COLLECTION,s=o.v.CLIP_COLLECTION,u=o.v.INTERACTIVE,d="videos[".concat(r,"]{libraries.typeid:").concat(l.E.WorkspaceCollection,"}"),f="clips[".concat(s,"]{status:").concat(i.X.Published,"}"),p="interactives[".concat(u,"]{status:[").concat(i.X.Published,",").concat(i.X.Draft,"]}"),m=[];(null==n?void 0:n.length)?(n.includes("video")&&m.push(d),n.includes("clip")&&m.push(f),n.includes("interactive")&&m.push(p)):m.push(d,f,p);var v={query:"(".concat(m.join("|"),"){orderbydesc:timestamp}"),permissionFilterOption:c.r.StripMetadata};return t&&(v.cursor=t),{url:a._.urlBuilder("{gateway}/v1/objects/".concat(e,"/members"),v),key:"my:videos:".concat(e,":").concat(t).concat(n?":".concat(Array.isArray(n)?n.join(":"):n):"")}},workspaceWithCategories:function(){return{url:a._.urlBuilder("/api/domain/v2/me/libraries",{type:["workspace"],maxCategoryDepth:6}),key:"workspace:folders",normalize:!1}},exchangeWithCategories:function(){return{url:a._.urlBuilder("/api/domain/v2/me/libraries",{type:["exchange"],maxCategoryDepth:5}),key:"exchange:folders",normalize:!1}},addFolder:function(e){var t="/api/domain/v2/collections/".concat(e.collectionId,"/categories");return e.parentCategoryId&&(t=a._.urlBuilder(t,{parentCategoryId:e.parentCategoryId})),{url:t,key:"add:folder",type:r.k.POST,data:{name:e.name},invalidationKeys:["workspace","folder"]}},deleteFolder:function(e){return{url:"{gateway}/v1/objects/".concat(e),key:"delete:folder",type:r.k.DELETE,invalidationKeys:["workspace","folder"]}},moveFolder:function(e){return{url:"/api/domain/v2/objects/move",key:"move:folder",type:r.k.POST,data:{assocType:"has",newCollectionId:e.newFolderId,oldCollectionId:e.oldFolderId,objectIds:[e.moveFolderId]},invalidationKeys:["workspace","folder"]}},updateFolder:function(e,t){return{url:"{gateway}/v1/objects/".concat(e),key:"rename:folder",type:r.k.PUT,data:{name:t},invalidationKeys:["workspace","folder"]}},videoFolders:function(e,t){return{url:"/api/domain/v2/objects/".concat(e,"/categories?query=libraries{id:").concat(t,"}"),key:"video:folders:".concat(e)}},moveVideo:function(e){var t={newCollectionId:e.newFolderId,oldCollectionId:e.oldFolderId,objectIds:e.videoId};return{url:"/api/domain/v3/objects/move",key:"move:folder:".concat(t.objectIds.join(",")),type:r.k.POST,data:t,invalidationKeys:["video"]}},addToExchange:function(e){return{url:"{gateway}/v1/users/me/videos/exchange",key:"add:to:exchange",type:r.k.POST,data:e}}}},45967:(e,t,n)=>{n.d(t,{q:()=>h});var r=n(81886),a=n(60139),o=n(23481),i=n(20354),l=n(4594),c=n(69883),s=n(11462),u=n(14070),d=n(97291),f=n(12617);function p(e){return p="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},p(e)}function m(){m=function(){return t};var e,t={},n=Object.prototype,r=n.hasOwnProperty,a=Object.defineProperty||function(e,t,n){e[t]=n.value},o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",l=o.asyncIterator||"@@asyncIterator",c=o.toStringTag||"@@toStringTag";function s(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{s({},"")}catch(e){s=function(e,t,n){return e[t]=n}}function u(e,t,n,r){var o=t&&t.prototype instanceof b?t:b,i=Object.create(o.prototype),l=new j(r||[]);return a(i,"_invoke",{value:L(e,n,l)}),i}function d(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}t.wrap=u;var f="suspendedStart",v="suspendedYield",y="executing",h="completed",g={};function b(){}function E(){}function w(){}var x={};s(x,i,(function(){return this}));var k=Object.getPrototypeOf,O=k&&k(k(V([])));O&&O!==n&&r.call(O,i)&&(x=O);var S=w.prototype=b.prototype=Object.create(x);function N(e){["next","throw","return"].forEach((function(t){s(e,t,(function(e){return this._invoke(t,e)}))}))}function I(e,t){function n(a,o,i,l){var c=d(e[a],e,o);if("throw"!==c.type){var s=c.arg,u=s.value;return u&&"object"==p(u)&&r.call(u,"__await")?t.resolve(u.__await).then((function(e){n("next",e,i,l)}),(function(e){n("throw",e,i,l)})):t.resolve(u).then((function(e){s.value=e,i(s)}),(function(e){return n("throw",e,i,l)}))}l(c.arg)}var o;a(this,"_invoke",{value:function(e,r){function a(){return new t((function(t,a){n(e,r,t,a)}))}return o=o?o.then(a,a):a()}})}function L(t,n,r){var a=f;return function(o,i){if(a===y)throw Error("Generator is already running");if(a===h){if("throw"===o)throw i;return{value:e,done:!0}}for(r.method=o,r.arg=i;;){var l=r.delegate;if(l){var c=D(l,r);if(c){if(c===g)continue;return c}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(a===f)throw a=h,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);a=y;var s=d(t,n,r);if("normal"===s.type){if(a=r.done?h:v,s.arg===g)continue;return{value:s.arg,done:r.done}}"throw"===s.type&&(a=h,r.method="throw",r.arg=s.arg)}}}function D(t,n){var r=n.method,a=t.iterator[r];if(a===e)return n.delegate=null,"throw"===r&&t.iterator.return&&(n.method="return",n.arg=e,D(t,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),g;var o=d(a,t.iterator,n.arg);if("throw"===o.type)return n.method="throw",n.arg=o.arg,n.delegate=null,g;var i=o.arg;return i?i.done?(n[t.resultName]=i.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,g):i:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,g)}function T(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function C(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function j(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(T,this),this.reset(!0)}function V(t){if(t||""===t){var n=t[i];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var a=-1,o=function n(){for(;++a<t.length;)if(r.call(t,a))return n.value=t[a],n.done=!1,n;return n.value=e,n.done=!0,n};return o.next=o}}throw new TypeError(p(t)+" is not iterable")}return E.prototype=w,a(S,"constructor",{value:w,configurable:!0}),a(w,"constructor",{value:E,configurable:!0}),E.displayName=s(w,c,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===E||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,w):(e.__proto__=w,s(e,c,"GeneratorFunction")),e.prototype=Object.create(S),e},t.awrap=function(e){return{__await:e}},N(I.prototype),s(I.prototype,l,(function(){return this})),t.AsyncIterator=I,t.async=function(e,n,r,a,o){void 0===o&&(o=Promise);var i=new I(u(e,n,r,a),o);return t.isGeneratorFunction(n)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},N(S),s(S,c,"Generator"),s(S,i,(function(){return this})),s(S,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},t.values=V,j.prototype={constructor:j,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(C),!t)for(var n in this)"t"===n.charAt(0)&&r.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var n=this;function a(r,a){return l.type="throw",l.arg=t,n.next=r,a&&(n.method="next",n.arg=e),!!a}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],l=i.completion;if("root"===i.tryLoc)return a("end");if(i.tryLoc<=this.prev){var c=r.call(i,"catchLoc"),s=r.call(i,"finallyLoc");if(c&&s){if(this.prev<i.catchLoc)return a(i.catchLoc,!0);if(this.prev<i.finallyLoc)return a(i.finallyLoc)}else if(c){if(this.prev<i.catchLoc)return a(i.catchLoc,!0)}else{if(!s)throw Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return a(i.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var a=this.tryEntries[n];if(a.tryLoc<=this.prev&&r.call(a,"finallyLoc")&&this.prev<a.finallyLoc){var o=a;break}}o&&("break"===e||"continue"===e)&&o.tryLoc<=t&&t<=o.finallyLoc&&(o=null);var i=o?o.completion:{};return i.type=e,i.arg=t,o?(this.method="next",this.next=o.finallyLoc,g):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),g},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),C(n),g}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var a=r.arg;C(n)}return a}}throw Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:V(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),g}},t}var v=function(e,t,n,r){return new(n||(n=Promise))((function(a,o){function i(e){try{c(r.next(e))}catch(e){o(e)}}function l(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?a(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(i,l)}c((r=r.apply(e,t||[])).next())}))},y=o.T.encloseNamespace("myVideos.hooks");function h(){var e=(0,c.Z)(),t=i.a.useGetFetchAsync(),n=f.E.workspaceWithCategories(),o=i.a.useGetResponse(n.key);function p(i,l){return v(this,void 0,void 0,m().mark((function c(){var p,v,h;return m().wrap((function(c){for(;;)switch(c.prev=c.next){case 0:if(p=o.data,!o.shouldFetch){c.next=5;break}return c.next=4,t(n);case 4:p=c.sent;case 5:if(!s.d.isMaxDepth(p,i.id,l.id)){c.next=8;break}return r.Q.C$.trigger({application:d.O.MY_VIDEOS,action:u.e.MyVideos.MAX_FOLDER_DEPTH,args:[s.q]}),c.abrupt("return");case 8:return v={children:p.map(s.d.convertNestedObjectToTree)},h=s.d.getParent(v,i.id),c.prev=10,c.next=13,t(f.E.moveFolder({moveFolderId:i.id,newFolderId:l.id,oldFolderId:null==h?void 0:h.id}));case 13:e.success({type:a.NK.Success,heading:y("moveFolderSuccessHeading"),message:y("moveFolderSuccess",{folder:i.name,toFolder:l.name,escapeText:!0}),appLink:{application:d.O.MY_VIDEOS,action:u.e.MyVideos.MY_VIDEOS_FOLDER,args:[l.id,l.name]},appLinkText:y("goToFolder",{folder:l.name,escapeText:!0}),appLinkClassName:"text-blue"}),c.next=19;break;case 16:c.prev=16,c.t0=c.catch(10),e.error(y("error"));case 19:case"end":return c.stop()}}),c,null,[[10,16]])})))}function h(n,r,o){return v(this,void 0,void 0,m().mark((function i(){return m().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return i.prev=0,i.next=3,t(f.E.moveVideo({newFolderId:r.id,oldFolderId:o.id,videoId:Array.isArray(n)?n:[n.id]}));case 3:Array.isArray(n)?e.success({type:a.NK.Success,heading:y("moveVideosSucccessHeading"),message:y("moveVideosSuccess",{count:n.length,fromFolder:o.name,toFolder:r.name,escapeText:!0}),appLink:{application:d.O.MY_VIDEOS,action:u.e.MyVideos.MY_VIDEOS_FOLDER,args:[r.id,r.name]},appLinkText:y("goToFolder",{folder:r.name,escapeText:!0}),appLinkClassName:"text-blue"}):e.success({type:a.NK.Success,heading:y("moveVideoSucccessHeading"),message:y("moveVideoSuccess",{video:n.name,fromFolder:o.name,toFolder:r.name,escapeText:!0}),appLink:{application:d.O.MY_VIDEOS,action:u.e.MyVideos.MY_VIDEOS_FOLDER,args:[r.id,r.name]},appLinkText:y("goToFolder",{folder:r.name,escapeText:!0}),appLinkClassName:"text-blue"}),i.next=9;break;case 6:i.prev=6,i.t0=i.catch(0),e.error(y("error"));case 9:case"end":return i.stop()}}),i,null,[[0,6]])})))}return{handleDragEnd:function(e,t){var n,r;return v(this,void 0,void 0,m().mark((function a(){var o,i;return m().wrap((function(a){for(;;)switch(a.prev=a.next){case 0:if(o=null===(n=e.active)||void 0===n?void 0:n.data.current,(i=null===(r=e.over)||void 0===r?void 0:r.data.current)&&o.id!==i.id){a.next=4;break}return a.abrupt("return");case 4:if(o.typeId!==l.E.Category){a.next=7;break}return p(o,i),a.abrupt("return");case 7:h(o,i,t);case 8:case"end":return a.stop()}}),a)})))}}}},65202:(e,t,n)=>{n.d(t,{J:()=>v});var r=n(32735),a=n(81886),o=n(20354),i=n(70624),l=n(16714),c=n(31949),s=n(22902),u=n(14070),d=n(97291),f=n(57322),p=n(81409),m=n(48543);function v(e){var t=(0,s.T)().hasPermissions,n=o.a.useBasicFetch(c.N.currentUser()),v=t(l.C.UploadVideo),y=(0,i.G)(v&&f.K.CombineUploads),h=function(t,r,a){var o=(0,i.G)(t&&"combine:uploads:service");return(0,p.o)((function(){return t?null==o?void 0:o.getCollection():null}),(function(){n.data&&e.onRemove()}),a)}(v,0,[n.data]);h=null==h?void 0:h.filter((function(t){return e.categoryId?t.categoryId===e.categoryId:!t.categoryId}));var g=r.useCallback((function(e){a.Q.C$.trigger({application:d.O.UPLOAD,action:u.e.Upload.CANCEL_UPLOAD,args:[e.id],params:{name:e.name,status:e.status}})}),[]),b=r.useCallback((function(e){switch(e.status){case m.f.Errored:return void y.retryItem(e);case m.f.Processing:return void a.Q.C$.trigger({application:d.O.VIDEOS,action:u.e.Videos.EDIT_VIDEO,args:[e.videoId]});case m.f.Uploading:y.editUpload(e)}}),[]),E=null==h?void 0:h.reduce((function(e,t){return e[t.videoId]=!0,e}),{});return{uploadingVideos:h,onClickAlternate:b,onClickDelete:g,processingIds:E}}},74796:(e,t,n)=>{n.d(t,{f:()=>s});var r=n(23481),a=n(65858),o=n(35223),i=n(14070),l=n(97291),c=r.T.encloseNamespace("myVideos.utils");function s(){return function(e,t){var n={id:t.id,name:t.name},r={entity:a.py.Folder,location:"folder"===e?a.LZ.SubFolderList:a.LZ.MyVideos,workflowPhase:a.eu.Start};return[{label:c("addSubfolder"),button:"page"===e,className:"page"===e?"btn btn-outline-dark me-2":void 0,svgName:"page"===e?o.vn.Plus:void 0,appLink:{application:l.O.MY_VIDEOS,action:i.e.MyVideos.ADD_FOLDER,args:[t.id]},analyticsData:n,analyticsOptions:Object.assign(Object.assign({},r),{actionType:a.Vw.Create})},{label:c("moveFolder"),button:!1,appLink:{application:l.O.MY_VIDEOS,action:i.e.MyVideos.MOVE_FOLDER,args:[t.id]},analyticsData:n,analyticsOptions:Object.assign(Object.assign({},r),{actionType:a.Vw.Move})},{label:c("renameFolder"),button:!1,appLink:{application:l.O.MY_VIDEOS,action:i.e.MyVideos.RENAME_FOLDER,args:[t.id]},analyticsData:n,analyticsOptions:Object.assign(Object.assign({},r),{actionType:a.Vw.Rename})},{label:c("removeFolder"),className:"text-danger",button:!1,appLink:{application:l.O.MY_VIDEOS,action:i.e.MyVideos.DELETE_FOLDER,args:[t.id]},analyticsData:n,analyticsOptions:Object.assign(Object.assign({},r),{actionType:a.Vw.Delete})}]}}},61970:(e,t,n)=>{n.d(t,{y:()=>E,W:()=>b});var r=n(23481),a=n(65858),o=n(37802),i=n(4594),l={mapTypeId:function(e){switch(e){case i.E.Video:return a.py.Video;case i.E.Clip:return a.py.Clip;case i.E.Interactive:return a.py.Interactive;default:return null}}},c=n(35223),s=n(31908),u=n(14070),d=n(97291),f=n(10671),p=n(16714),m=n(12754),v=n(22902),y=n(15311),h=r.T.encloseNamespace("default.myVideos");function g(e){return s.M.isInteractive(e)?h("moveInteractive"):s.M.isClip(e)?h("moveClip"):h("moveVideo")}function b(e,t){return function(n){return[{label:h("moveVideo"),button:!1,appLink:{application:d.O.MY_VIDEOS,action:u.e.MyVideos.MOVE_VIDEO,params:{ids:n}},analyticsData:{ids:n},analyticsOptions:{entity:a.py.Video,actionType:a.Vw.Move,location:a.LZ.VideoListItem,workflowPhase:a.eu.Start}},{label:h("delete"),button:!1,appLink:{application:d.O.VIDEOS,action:u.e.Videos.DELETE_VIDEO,params:{ids:n,libraryId:e,categoryId:t}},className:"btn btn-link text-danger",analyticsOptions:{entity:a.py.Video,actionType:a.Vw.Delete,location:a.LZ.VideoList,workflowPhase:a.eu.Start},analyticsData:{ids:n}}]}}function E(){var e,t,n,r=(0,o.r)(null).myVideosFolders,i=(e=(0,y.r)().hasProduct,t=(0,o.r)(null).exchangeTvProductOption,n=(0,v.T)().hasPermissions,!(!e(m.x.Exchange)||"exchange"!==t&&"exchange_and_tv"!==t||!n(p.C.Exchange))),b=(0,f._)({location:f.i.VideoItem});return Object.assign(Object.assign({},b),{getVideoActions:function(e,t){if(!s.M.getCanBeConsumed(e).canConsume)return[{label:h("delete"),button:!1,svgName:c.vn.Delete,appLink:{application:d.O.VIDEOS,action:u.e.Videos.DELETE_VIDEO,params:{ids:[e.id]}},className:"btn btn-link text-danger",analyticsOptions:{entity:a.py.Video,actionType:a.Vw.Delete,location:a.LZ.VideoListItem,workflowPhase:a.eu.Start},analyticsData:{id:e.id}}];var n=b.getVideoActions(e,t);return r&&(n.push({order:67,label:g(e),svgName:c.vn.Move,button:!1,appLink:{application:d.O.MY_VIDEOS,action:u.e.MyVideos.MOVE_VIDEO,params:{ids:[e.id]}},analyticsData:{id:e.id},analyticsOptions:{entity:l.mapTypeId(e.typeId),actionType:a.Vw.Move,location:a.LZ.VideoListItem,workflowPhase:a.eu.Start},group:"edit"}),s.M.isVideo(e)&&i&&n.push({order:63,label:h("contribute"),svgName:c.vn.Upload,button:!1,appLink:{application:d.O.MY_VIDEOS,action:u.e.MyVideos.ADD_TO_EXCHANGE,args:[e.id]},analyticsData:{id:e.id},analyticsOptions:{entity:l.mapTypeId(e.typeId),actionType:a.Vw.Create,location:a.LZ.VideoListItem,workflowPhase:a.eu.Start,descriptor:a.ne.AddToExchange},group:"add"})),n}})}},14305:(e,t,n)=>{n.d(t,{K:()=>p,V:()=>m});var r=n(32735),a=n(23481),o=n(65858),i=n(23232),l=n(83345),c=n(99742),s=n(14070),u=n(97291),d="default.myVideosEmptyState",f=a.T.encloseNamespace(d);function p(){return r.createElement(l.D.Provider,{value:d},r.createElement(i.u,null,r.createElement(i.u.Image,{src:c.W.EmptyStates.MY_VIDEOS,altText:f("info")}),r.createElement(i.u.Heading,null,r.createElement(l.x,{phrase:"heading"})),r.createElement(i.u.Info,null,r.createElement(l.x,{phrase:"info"}))))}function m(){return r.createElement(l.D.Provider,{value:d},r.createElement(i.u,null,r.createElement(i.u.Image,{src:c.W.EmptyStates.MY_VIDEOS_PUBLIC,altText:f("publicInfo")}),r.createElement(i.u.Heading,null,r.createElement(l.x,{phrase:"publicHeading"})),r.createElement(i.u.Info,null,r.createElement(l.x,{phrase:"publicInfo"})),r.createElement(i.u.Cta,{text:a.T.getPhrase(d,"publicCta"),appLink:{application:u.O.SIGN_UP,action:s.e.SignUp.SIGN_UP},analyticsData:{},analyticsOptions:{actionType:o.Vw.Click,location:o.LZ.MyVideoLanding,entity:o.py.AppLink,workflowPhase:o.eu.Start,descriptor:o.Yu.SignUp}})))}},18097:(e,t,n)=>{n.d(t,{X:()=>O});var r=n(32735),a=n(68050),o=n(69111),i=n(79447),l=n(23481),c=n(28400),s=n(36848),u=n(75163),d=n(5465),f=n(83914),p=n(9977),m=n(5960),v=n(54610),y=n(79967),h=n(35223),g=n(14070),b=n(97291),E=n(48543),w=l.T.encloseNamespace("upload.uploadingItem");function x(e){switch(e){case E.f.Uploading:return"text-success";case E.f.Processing:return"text-info";case E.f.Errored:return"text-danger"}}function k(e){switch(e){case E.f.Uploading:return"success";case E.f.Processing:return"info";case E.f.Errored:return"danger"}}function O(e){var t,n,l=e.item,O=l.status,S=l.progress,N=l.name,I=(0,y.k)(),L="sm"===p.O.getSize(I,"md"),D=r.useCallback((function(){e.onClickAlternate(e.item)}),[e.item.status]),T=r.useCallback((function(){e.onClickDelete(e.item)}),[]),C=null;return(null===(t=e.item.video)||void 0===t?void 0:t.status)===m.X.Published&&(C={application:b.O.VIDEOS,action:g.e.Videos.PLAY_VIDEO,args:[e.item.videoId,c.m.slugify(e.item.video.name)]}),r.createElement("div",{className:"d-flex flex-row"},e.allowBulkAction&&r.createElement("div",{className:"form-check pe-2 mx-2"}),r.createElement(a.Z,{className:"".concat(L?"":"py-2"," g-0 flex-grow-1")},r.createElement(o.Z,Object.assign({},p.O.getThumbnailColumns(),{className:"flex-column align-items-flex-start ".concat(L?"pb-2 pe-2":"mb-1 px-2")}),r.createElement("div",{className:"position-relative overflow-hidden ".concat(L?"rounded":"rounded-3")},r.createElement(s.F,{appLink:C},r.createElement(u.Z,{data:null!==(n=e.item.thumbnailUrl)&&void 0!==n?n:"",imageType:v.__.Thumbnails,imageOptions:{size:v.h2.Medium}},r.createElement(d.oy,{type:d.mS.Video}))))),r.createElement(o.Z,Object.assign({},p.O.getDetailsColumns(),{className:L?"pb-2":"px-2"}),r.createElement(s.F,{appLink:C},r.createElement("h5",{className:"m-0 pb-1"},N)),r.createElement("span",{className:x(O)},function(e,t){var n=Math.round(t)||0;switch(e){case E.f.Uploading:return"".concat(w("uploading")," ").concat(n,"%");case E.f.Processing:return 0===n?r.createElement("em",null,w("waitingToBeProcessed")):r.createElement("em",null,w("processing")," ",n,"%");case E.f.Errored:return w("error")}}(O,S)),r.createElement("div",{className:"d-flex"},r.createElement(i.Z,{className:"flex-grow-1 align-self-center",variant:k(O),now:S}),r.createElement(f.x,{className:"svg-container cursor-pointer ms-2",svgName:O===E.f.Errored?h.vn.Retry:h.vn.Edit,onClick:D}),r.createElement(f.x,{className:"svg-container cursor-pointer ms-2",svgName:h.vn.Delete,onClick:T})))))}},35949:(e,t,n)=>{n.d(t,{U:()=>f});var r=n(32735),a=n(36518),o=n(83914),i=n(83345),l=n(4594),c=n(35223),s=n(31908);const u={dragOverlay:"ry0mg",dragThumbnail:"soAvD"};var d="shared.dragDropOverlay";function f(e){var t,n=e.activeDragData;return r.createElement("div",{className:"".concat(u.dragOverlay," position-relative")},r.createElement("div",{className:"position-absolute top-0 start-50 ms-n2 bg-white shadow p-2 rounded-3 font-size-md mw-100"},Array.isArray(n)?r.createElement("div",{className:"d-flex fw-semibold"},r.createElement("div",{className:"me-1"},r.createElement(o.x,{svgName:c.vn.Video})),r.createElement(i.x,{namespace:d,phrase:"bulkVideos",options:{length:n.length}})):r.createElement("div",{className:"d-flex"},n.typeId===l.E.Category?r.createElement("div",{className:"me-1"},r.createElement(o.x,{svgName:c.vn.Folder})):r.createElement(a.w,{src:null===(t=s.M.getThumbnail(n))||void 0===t?void 0:t.url,alt:n.name,className:"".concat(u.dragThumbnail," partial-loading-background rounded me-2")}),r.createElement("span",{className:"fw-semibold text-truncate"},n.name))))}},44110:(e,t,n)=>{n.d(t,{i:()=>i});var r=n(20354),a=n(89454),o=n(86698),i=function(){var e=(0,o.y)({redirectOnError:!0}),t=e.activePresentation,n=e.getFallbackPresentation,i=t||n();return r.a.useBasicFetch(!!i&&a.O.presentationAudiences(i.id))}},79447:(e,t,n)=>{n.d(t,{Z:()=>p});var r=n(95685),a=n.n(r),o=n(32735),i=n(46304),l=n(58661),c=n(74512);const s=1e3;function u(e,t,n){const r=(e-t)/(n-t)*100;return Math.round(r*s)/s}function d({min:e,now:t,max:n,label:r,visuallyHidden:o,striped:i,animated:l,className:s,style:d,variant:f,bsPrefix:p,...m},v){return(0,c.jsx)("div",{ref:v,...m,role:"progressbar",className:a()(s,`${p}-bar`,{[`bg-${f}`]:f,[`${p}-bar-animated`]:l,[`${p}-bar-striped`]:l||i}),style:{width:`${u(t,e,n)}%`,...d},"aria-valuenow":t,"aria-valuemin":e,"aria-valuemax":n,children:o?(0,c.jsx)("span",{className:"visually-hidden",children:r}):r})}const f=o.forwardRef((({isChild:e=!1,...t},n)=>{const r={min:0,max:100,animated:!1,visuallyHidden:!1,striped:!1,...t};if(r.bsPrefix=(0,i.vE)(r.bsPrefix,"progress"),e)return d(r,n);const{min:s,now:u,max:f,label:p,visuallyHidden:m,striped:v,animated:y,bsPrefix:h,variant:g,className:b,children:E,...w}=r;return(0,c.jsx)("div",{ref:n,...w,className:a()(b,h),children:E?(0,l.UI)(E,(e=>(0,o.cloneElement)(e,{isChild:!0}))):d({min:s,now:u,max:f,label:p,visuallyHidden:m,striped:v,animated:y,bsPrefix:h,variant:g},n)})}));f.displayName="ProgressBar";const p=f},68050:(e,t,n)=>{n.d(t,{Z:()=>s});var r=n(95685),a=n.n(r),o=n(32735),i=n(46304),l=n(74512);const c=o.forwardRef((({bsPrefix:e,className:t,as:n="div",...r},o)=>{const c=(0,i.vE)(e,"row"),s=(0,i.pi)(),u=(0,i.zG)(),d=`${c}-cols`,f=[];return s.forEach((e=>{const t=r[e];let n;delete r[e],null!=t&&"object"==typeof t?({cols:n}=t):n=t;const a=e!==u?`-${e}`:"";null!=n&&f.push(`${d}${a}-${n}`)})),(0,l.jsx)(n,{ref:o,...r,className:a()(t,c,...f)})}));c.displayName="Row";const s=c}}]);
|
|
3
|
-
//# sourceMappingURL=170-
|
|
3
|
+
//# sourceMappingURL=170-2d124965b7-lite.chunk.js.map
|