@clickview/lite 0.75.0-rc.2 → 0.75.0-rc.4
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/css/{119-lite-a1f592f602.chunk.css → 1243-lite-13eda8f6a0.chunk.css} +2 -4
- package/dist/css/{7230-lite-36ff6e6d53.chunk.css → 1867-lite-8baa8af02b.chunk.css} +3 -5
- package/dist/css/{5241-lite-baab687563.chunk.css → 4203-lite-9ffab89741.chunk.css} +3 -5
- package/dist/css/{8364-lite-99938dea56.chunk.css → 5193-lite-d434056013.chunk.css} +1 -0
- package/dist/css/{7339-lite-05c396fed3.chunk.css → 6756-lite-839687d3d7.chunk.css} +1 -0
- package/dist/css/{9527-lite-1d2221b6a8.chunk.css → 7103-lite-fef3024f61.chunk.css} +2 -4
- package/dist/css/{8856-lite-827b34aed7.chunk.css → 8856-lite-c114ab5c89.chunk.css} +1 -1
- package/dist/languages/en.json +1 -1
- package/dist/scripts/104-0c03791b45-lite.chunk.js +2 -0
- package/dist/scripts/104-0c03791b45-lite.chunk.js.map +1 -0
- package/dist/scripts/1074-4f6b136f9a-lite.chunk.js +2 -0
- package/dist/scripts/1074-4f6b136f9a-lite.chunk.js.map +1 -0
- package/dist/scripts/1087-861be5211f-lite.chunk.js +2 -0
- package/dist/scripts/1087-861be5211f-lite.chunk.js.map +1 -0
- package/dist/scripts/1192-d409863a3c-lite.chunk.js +2 -0
- package/dist/scripts/1192-d409863a3c-lite.chunk.js.map +1 -0
- package/dist/scripts/1199-d2fcbb547e-lite.chunk.js +2 -0
- package/dist/scripts/1199-d2fcbb547e-lite.chunk.js.map +1 -0
- package/dist/scripts/121-1b744469ee-lite.chunk.js +2 -0
- package/dist/scripts/121-1b744469ee-lite.chunk.js.map +1 -0
- package/dist/scripts/{1221-502395e693-lite.chunk.js → 1221-1109d5379d-lite.chunk.js} +3 -3
- package/dist/scripts/1221-1109d5379d-lite.chunk.js.map +1 -0
- package/dist/scripts/1243-ede924125c-lite.chunk.js +2 -0
- package/dist/scripts/1243-ede924125c-lite.chunk.js.map +1 -0
- package/dist/scripts/147-44ee7e9a78-lite.chunk.js +2 -0
- package/dist/scripts/147-44ee7e9a78-lite.chunk.js.map +1 -0
- package/dist/scripts/1491-ab92a040e5-lite.chunk.js +2 -0
- package/dist/scripts/1491-ab92a040e5-lite.chunk.js.map +1 -0
- package/dist/scripts/{1610-7f58bb25a9-lite.chunk.js → 1610-bb6eff2ff1-lite.chunk.js} +2 -2
- package/dist/scripts/1610-bb6eff2ff1-lite.chunk.js.map +1 -0
- package/dist/scripts/{7230-71f8d6d1bd-lite.chunk.js → 1867-3b447a1b85-lite.chunk.js} +2 -2
- package/dist/scripts/{7230-71f8d6d1bd-lite.chunk.js.map → 1867-3b447a1b85-lite.chunk.js.map} +1 -1
- package/dist/scripts/{218-297de74688-lite.chunk.js → 218-f6cc4a3b6a-lite.chunk.js} +2 -2
- package/dist/scripts/218-f6cc4a3b6a-lite.chunk.js.map +1 -0
- package/dist/scripts/2258-ed7383502f-lite.chunk.js +3 -0
- package/dist/scripts/2258-ed7383502f-lite.chunk.js.map +1 -0
- package/dist/scripts/{2968-c4c0114915-lite.chunk.js → 2968-13e56eeff8-lite.chunk.js} +1 -1
- package/dist/scripts/2968-13e56eeff8-lite.chunk.js.map +1 -0
- package/dist/scripts/3268-2736356687-lite.chunk.js +2 -0
- package/dist/scripts/{3268-faca1bf46e-lite.chunk.js.map → 3268-2736356687-lite.chunk.js.map} +1 -1
- package/dist/scripts/3597-eaae787997-lite.chunk.js +3 -0
- package/dist/scripts/3597-eaae787997-lite.chunk.js.map +1 -0
- package/dist/scripts/3836-425334ab13-lite.chunk.js +2 -0
- package/dist/scripts/{3836-f2a0c9f713-lite.chunk.js.map → 3836-425334ab13-lite.chunk.js.map} +1 -1
- package/dist/scripts/3837-e4c5bb738b-lite.chunk.js +2 -0
- package/dist/scripts/3837-e4c5bb738b-lite.chunk.js.map +1 -0
- package/dist/scripts/4185-7178e5a716-lite.chunk.js +2 -0
- package/dist/scripts/4185-7178e5a716-lite.chunk.js.map +1 -0
- package/dist/scripts/4203-ee50e89841-lite.chunk.js +3 -0
- package/dist/scripts/4203-ee50e89841-lite.chunk.js.map +1 -0
- package/dist/scripts/4598-bcd3f6f8a7-lite.chunk.js +2 -0
- package/dist/scripts/{4598-2b1daca7ae-lite.chunk.js.map → 4598-bcd3f6f8a7-lite.chunk.js.map} +1 -1
- package/dist/scripts/{4722-d96da2a258-lite.chunk.js → 4722-9eb591621a-lite.chunk.js} +3 -3
- package/dist/scripts/4722-9eb591621a-lite.chunk.js.map +1 -0
- package/dist/scripts/4948-f21dad2ca1-lite.chunk.js +2 -0
- package/dist/scripts/4948-f21dad2ca1-lite.chunk.js.map +1 -0
- package/dist/scripts/{5153-079b4125ae-lite.chunk.js → 5153-cf62a95421-lite.chunk.js} +3 -3
- package/dist/scripts/5153-cf62a95421-lite.chunk.js.map +1 -0
- package/dist/scripts/6137-bc8b193237-lite.chunk.js +2 -0
- package/dist/scripts/6137-bc8b193237-lite.chunk.js.map +1 -0
- package/dist/scripts/6756-cfd00009e4-lite.chunk.js +3 -0
- package/dist/scripts/6756-cfd00009e4-lite.chunk.js.map +1 -0
- package/dist/scripts/6790-36ce6dda04-lite.chunk.js +2 -0
- package/dist/scripts/6790-36ce6dda04-lite.chunk.js.map +1 -0
- package/dist/scripts/705-10a85bae7a-lite.chunk.js +2 -0
- package/dist/scripts/705-10a85bae7a-lite.chunk.js.map +1 -0
- package/dist/scripts/7103-14bd3771d2-lite.chunk.js +2 -0
- package/dist/scripts/7103-14bd3771d2-lite.chunk.js.map +1 -0
- package/dist/scripts/7148-d966512e45-lite.chunk.js +2 -0
- package/dist/scripts/7148-d966512e45-lite.chunk.js.map +1 -0
- package/dist/scripts/7205-12a6b2ac55-lite.chunk.js +2 -0
- package/dist/scripts/7205-12a6b2ac55-lite.chunk.js.map +1 -0
- package/dist/scripts/7438-38f60d3e8e-lite.chunk.js +2 -0
- package/dist/scripts/7438-38f60d3e8e-lite.chunk.js.map +1 -0
- package/dist/scripts/7480-e0749592fc-lite.chunk.js +2 -0
- package/dist/scripts/7480-e0749592fc-lite.chunk.js.map +1 -0
- package/dist/scripts/8010-e9163f5bee-lite.chunk.js +2 -0
- package/dist/scripts/8010-e9163f5bee-lite.chunk.js.map +1 -0
- package/dist/scripts/8410-1f1fd5ccf0-lite.chunk.js +3 -0
- package/dist/scripts/8410-1f1fd5ccf0-lite.chunk.js.map +1 -0
- package/dist/scripts/8705-ecd20ef6cb-lite.chunk.js +2 -0
- package/dist/scripts/8705-ecd20ef6cb-lite.chunk.js.map +1 -0
- package/dist/scripts/8856-4da691f96f-lite.chunk.js +2 -0
- package/dist/scripts/8856-4da691f96f-lite.chunk.js.map +1 -0
- package/dist/scripts/9003-fc8e674468-lite.chunk.js +2 -0
- package/dist/scripts/9003-fc8e674468-lite.chunk.js.map +1 -0
- package/dist/scripts/9042-add0f1c2e2-lite.chunk.js +2 -0
- package/dist/scripts/9042-add0f1c2e2-lite.chunk.js.map +1 -0
- package/dist/scripts/9103-4eec16d73b-lite.chunk.js +2 -0
- package/dist/scripts/9103-4eec16d73b-lite.chunk.js.map +1 -0
- package/dist/scripts/9134-a6a5fc92cf-lite.chunk.js +2 -0
- package/dist/scripts/9134-a6a5fc92cf-lite.chunk.js.map +1 -0
- package/dist/scripts/9266-f0ad8d5cb3-lite.chunk.js +2 -0
- package/dist/scripts/9266-f0ad8d5cb3-lite.chunk.js.map +1 -0
- package/dist/scripts/9620-3746c84350-lite.chunk.js +3 -0
- package/dist/scripts/9620-3746c84350-lite.chunk.js.map +1 -0
- package/dist/scripts/9740-9d50d31b72-lite.chunk.js +2 -0
- package/dist/scripts/9740-9d50d31b72-lite.chunk.js.map +1 -0
- package/dist/scripts/{bundle-95a6fc2722.min.js → bundle-fc60888464.min.js} +3 -3
- package/dist/scripts/{bundle-95a6fc2722.min.js.map → bundle-fc60888464.min.js.map} +1 -1
- package/package.json +1 -1
- package/dist/scripts/104-b62a8447f0-lite.chunk.js +0 -2
- package/dist/scripts/104-b62a8447f0-lite.chunk.js.map +0 -1
- package/dist/scripts/107-989ac2dc47-lite.chunk.js +0 -2
- package/dist/scripts/107-989ac2dc47-lite.chunk.js.map +0 -1
- package/dist/scripts/119-e3a8bd94dd-lite.chunk.js +0 -2
- package/dist/scripts/119-e3a8bd94dd-lite.chunk.js.map +0 -1
- package/dist/scripts/1199-a2ac2338d0-lite.chunk.js +0 -2
- package/dist/scripts/1199-a2ac2338d0-lite.chunk.js.map +0 -1
- package/dist/scripts/121-bf7a153eb8-lite.chunk.js +0 -2
- package/dist/scripts/121-bf7a153eb8-lite.chunk.js.map +0 -1
- package/dist/scripts/1221-502395e693-lite.chunk.js.map +0 -1
- package/dist/scripts/1400-43b37bfa8d-lite.chunk.js +0 -2
- package/dist/scripts/1400-43b37bfa8d-lite.chunk.js.map +0 -1
- package/dist/scripts/1610-7f58bb25a9-lite.chunk.js.map +0 -1
- package/dist/scripts/218-297de74688-lite.chunk.js.map +0 -1
- package/dist/scripts/2258-4d0639c9fe-lite.chunk.js +0 -3
- package/dist/scripts/2258-4d0639c9fe-lite.chunk.js.map +0 -1
- package/dist/scripts/2968-c4c0114915-lite.chunk.js.map +0 -1
- package/dist/scripts/3268-faca1bf46e-lite.chunk.js +0 -2
- package/dist/scripts/3836-f2a0c9f713-lite.chunk.js +0 -2
- package/dist/scripts/3837-fe321e8deb-lite.chunk.js +0 -2
- package/dist/scripts/3837-fe321e8deb-lite.chunk.js.map +0 -1
- package/dist/scripts/4025-306e0fbdd5-lite.chunk.js +0 -2
- package/dist/scripts/4025-306e0fbdd5-lite.chunk.js.map +0 -1
- package/dist/scripts/4164-5d3af57b67-lite.chunk.js +0 -2
- package/dist/scripts/4164-5d3af57b67-lite.chunk.js.map +0 -1
- package/dist/scripts/4185-e8e40dab72-lite.chunk.js +0 -2
- package/dist/scripts/4185-e8e40dab72-lite.chunk.js.map +0 -1
- package/dist/scripts/4562-545f04c53f-lite.chunk.js +0 -2
- package/dist/scripts/4562-545f04c53f-lite.chunk.js.map +0 -1
- package/dist/scripts/4598-2b1daca7ae-lite.chunk.js +0 -2
- package/dist/scripts/4722-d96da2a258-lite.chunk.js.map +0 -1
- package/dist/scripts/4948-66ba60c8e3-lite.chunk.js +0 -2
- package/dist/scripts/4948-66ba60c8e3-lite.chunk.js.map +0 -1
- package/dist/scripts/5153-079b4125ae-lite.chunk.js.map +0 -1
- package/dist/scripts/5241-163f5ac64c-lite.chunk.js +0 -3
- package/dist/scripts/5241-163f5ac64c-lite.chunk.js.map +0 -1
- package/dist/scripts/5349-bc0fcb4083-lite.chunk.js +0 -2
- package/dist/scripts/5349-bc0fcb4083-lite.chunk.js.map +0 -1
- package/dist/scripts/6135-a878a9cff0-lite.chunk.js +0 -3
- package/dist/scripts/6135-a878a9cff0-lite.chunk.js.map +0 -1
- package/dist/scripts/6509-23fdb20a4b-lite.chunk.js +0 -2
- package/dist/scripts/6509-23fdb20a4b-lite.chunk.js.map +0 -1
- package/dist/scripts/6790-5086b72662-lite.chunk.js +0 -2
- package/dist/scripts/6790-5086b72662-lite.chunk.js.map +0 -1
- package/dist/scripts/7148-432ab72091-lite.chunk.js +0 -2
- package/dist/scripts/7148-432ab72091-lite.chunk.js.map +0 -1
- package/dist/scripts/7205-2428f775a5-lite.chunk.js +0 -2
- package/dist/scripts/7205-2428f775a5-lite.chunk.js.map +0 -1
- package/dist/scripts/7339-5793c921bb-lite.chunk.js +0 -3
- package/dist/scripts/7339-5793c921bb-lite.chunk.js.map +0 -1
- package/dist/scripts/7438-a5f96e58fc-lite.chunk.js +0 -2
- package/dist/scripts/7438-a5f96e58fc-lite.chunk.js.map +0 -1
- package/dist/scripts/7926-6b040931aa-lite.chunk.js +0 -2
- package/dist/scripts/7926-6b040931aa-lite.chunk.js.map +0 -1
- package/dist/scripts/8536-f75009dd87-lite.chunk.js +0 -2
- package/dist/scripts/8536-f75009dd87-lite.chunk.js.map +0 -1
- package/dist/scripts/8687-549a2d9278-lite.chunk.js +0 -3
- package/dist/scripts/8687-549a2d9278-lite.chunk.js.map +0 -1
- package/dist/scripts/8856-df102acdff-lite.chunk.js +0 -2
- package/dist/scripts/8856-df102acdff-lite.chunk.js.map +0 -1
- package/dist/scripts/9134-42dc2390ce-lite.chunk.js +0 -2
- package/dist/scripts/9134-42dc2390ce-lite.chunk.js.map +0 -1
- package/dist/scripts/9266-c5d6705147-lite.chunk.js +0 -2
- package/dist/scripts/9266-c5d6705147-lite.chunk.js.map +0 -1
- package/dist/scripts/9284-402a14d41c-lite.chunk.js +0 -2
- package/dist/scripts/9284-402a14d41c-lite.chunk.js.map +0 -1
- package/dist/scripts/9470-11c8c2ca71-lite.chunk.js +0 -2
- package/dist/scripts/9470-11c8c2ca71-lite.chunk.js.map +0 -1
- package/dist/scripts/9527-111c8586a7-lite.chunk.js +0 -2
- package/dist/scripts/9527-111c8586a7-lite.chunk.js.map +0 -1
- package/dist/scripts/9528-2b478f4ca8-lite.chunk.js +0 -3
- package/dist/scripts/9528-2b478f4ca8-lite.chunk.js.map +0 -1
- package/dist/scripts/9591-230bcf0935-lite.chunk.js +0 -2
- package/dist/scripts/9591-230bcf0935-lite.chunk.js.map +0 -1
- /package/dist/css/{8687-lite-6787cc731a.chunk.css → 3597-lite-6787cc731a.chunk.css} +0 -0
- /package/dist/css/{5349-lite-829df3b4e7.chunk.css → 6137-lite-829df3b4e7.chunk.css} +0 -0
- /package/dist/css/{9470-lite-edb2d29928.chunk.css → 8010-lite-edb2d29928.chunk.css} +0 -0
- /package/dist/css/{6135-lite-41bdd1c5a3.chunk.css → 8410-lite-41bdd1c5a3.chunk.css} +0 -0
- /package/dist/css/{121-lite-1337d9acf0.chunk.css → 9042-lite-1337d9acf0.chunk.css} +0 -0
- /package/dist/css/{9528-lite-6787cc731a.chunk.css → 9620-lite-6787cc731a.chunk.css} +0 -0
- /package/dist/scripts/{1221-502395e693-lite.chunk.js.LICENSE.txt → 1221-1109d5379d-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{2258-4d0639c9fe-lite.chunk.js.LICENSE.txt → 2258-ed7383502f-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{4722-d96da2a258-lite.chunk.js.LICENSE.txt → 3597-eaae787997-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{5153-079b4125ae-lite.chunk.js.LICENSE.txt → 4203-ee50e89841-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{5241-163f5ac64c-lite.chunk.js.LICENSE.txt → 4722-9eb591621a-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{6135-a878a9cff0-lite.chunk.js.LICENSE.txt → 5153-cf62a95421-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{7339-5793c921bb-lite.chunk.js.LICENSE.txt → 6756-cfd00009e4-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{8687-549a2d9278-lite.chunk.js.LICENSE.txt → 8410-1f1fd5ccf0-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{9528-2b478f4ca8-lite.chunk.js.LICENSE.txt → 9620-3746c84350-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{bundle-95a6fc2722.min.js.LICENSE.txt → bundle-fc60888464.min.js.LICENSE.txt} +0 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[104],{33518:(e,t,a)=>{var n;a.d(t,{e:()=>n}),function(e){e.Public="Public",e.PinCode="PinCode",e.PasswordProtected="PasswordProtected",e.ProtectedOverrideRestriction="ProtectedOverrideRestriction",e.JustMySchoolOverrideRestriction="JustMySchoolOverrideRestriction",e.Protected="Protected",e.JustMySchool="JustMySchool",e.Direct="Direct"}(n||(n={}))},2510:(e,t,a)=>{var n;a.d(t,{y:()=>n}),function(e){e.Link="Link",e.Classroom="Classroom",e.Open="Open",e.Live="Live",e.LegacyDirect="LegacyDirect"}(n||(n={}))},18488:(e,t,a)=>{a.d(t,{o:()=>o});var n=a(99940),r=a(97395),i={namespace:"share-v2"},o={createShare:function(e){return{url:"{gateway}/v2/shares",key:"create:share-v2",type:n.k.POST,data:e,normalizeOptions:i,invalidationKeys:["sent:share-v2","get:share-v2:shares:object:".concat(e.objectId)]}},updateShare:function(e,t){return{url:"{gateway}/v2/shares/".concat(e),key:"update:share-v2",type:n.k.PUT,data:t,normalizeOptions:i,invalidationKeys:["share-v2:permanent-link:object","share-v2:".concat(e)]}},deleteShare:function(e){return{type:n.k.DELETE,url:"{gateway}/v2/shares/".concat(e),key:"delete:share-v2",normalizeOptions:i,invalidationKeys:["share-v2:permanent-link:object","sent:share-v2","share-v2:".concat(e)]}},getShare:function(e){return{url:"{gateway}/v2/shares/".concat(e),key:"share-v2:".concat(e),bootstrapName:"share-v2:".concat(e),type:n.k.GET,normalizeOptions:i}},getSentShares:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=Object.values(e).sort().join(":");return{url:r._.urlBuilder("{gateway}/v2/shares/sent",e),key:"sent:share-v2:".concat(t),type:n.k.GET,normalize:!1}},getShareLink:function(e){return{url:r._.urlBuilder("{gateway}/v2/shares/permanent-link",{objectId:e}),key:"share-v2:permanent-link:object:".concat(e),normalizeOptions:i}},createShareLink:function(e){return{type:n.k.POST,url:r._.urlBuilder("{gateway}/v2/shares/permanent-link",Object.assign({},e)),key:"create:share-v2:permanent-link:object:".concat(e.objectId),invalidationKeys:["share-v2:permanent-link:object:".concat(e.objectId),"sent:share-v2"],normalizeOptions:i}},getPrivacy:function(e){return{url:"{gateway}/v1/objects/".concat(e,"/access"),key:"privacy:".concat(e),normalize:!1}},getSharesByObjectId:function(e){return{url:"{gateway}/v2/shares/objects/".concat(e),key:"get:share-v2:shares:object:".concat(e),type:n.k.GET,normalizeOptions:i}},createSharePincode:function(e){return{url:"{gateway}/v2/shares/".concat(e,"/pincode"),key:"create:share-v2:".concat(e,":pincode"),type:n.k.POST}},getPincodeByShareId:function(e){return{url:"{gateway}/v2/shares/".concat(e,"/pincode"),key:"get:share-v2:".concat(e,":pincode")}},getPincodeByCode:function(e){return{url:"{gateway}/v2/shares/pincode?code=".concat(e),key:"get:share-v2:pincode:".concat(e)}}}},21789:(e,t,a)=>{a.d(t,{x:()=>o});var n=a(75896),r=a(110),i=a(4594),o={getFlattenedRecipients:function(e){return n.m.flatten(e.map((function(e){var t;return null!==(t=e.recipients)&&void 0!==t?t:[]})))},getFlattenedUniqueScopes:function(e){var t=o.getFlattenedRecipients(e);return n.m.uniq(t.map((function(e){var t;return null===(t=e.scopeId)||void 0===t?void 0:t.toString()}))).filter((function(e){return!!e}))},getClassroomIdFromShare:function(e){var t,a=null===(t=e.recipients)||void 0===t?void 0:t[0];if(a)return a.scopeId?a.scopeId.toString():a.recipientId&&a.recipientTypeId===i.E.Classroom?a.recipientId.toString():void 0},getClassroomForShare:function(e,t){var a=o.getClassroomIdFromShare(e);if(a)return t.find((function(e){return e.id.toString()===a.toString()}))},getRecipientsCount:function(e,t){var a,n,r,i;return t?null!==(i=null===(r=e.recipients)||void 0===r?void 0:r.filter((function(e){return e.recipientTypeId===t})).length)&&void 0!==i?i:0:null!==(n=null===(a=e.recipients)||void 0===a?void 0:a.length)&&void 0!==n?n:0},hasShareExpired:function(e){if(e.expireDate){var t=new Date,a=new Date(e.expireDate);if(r.O.isAfter(t,a))return!0}return!1},calculateDaysToExpiry:function(e){if(e.expireDate){var t=r.O.diffBetween(new Date(e.expireDate),new Date,"day")||1;return 0===t?1:t}},getShareLocalExpiry:function(e,t){if(!e.expireDate)return null;var a=r.O.convertUTCToLocal(e.expireDate);return r.O.format(a,t)}}},2267:(e,t,a)=>{a.d(t,{I:()=>i});var n=a(64249),r=a(40841),i={canEmbed:function(e){return["video","interactive","clip"].includes(e)},canAddPolicies:function(e){return["interactive"].includes(e)},getEnabledIntegrations:function(e,t){return r._.getShareIntegrations(e,t).filter((function(e){return e.enabled})).map((function(e){return e.id}))},getShareSettingsInitialValues:function(e,t){var a,n,r,i,o,c;return{preventScrubbing:null!==(r=null!==(n=null===(a=null==e?void 0:e.options)||void 0===a?void 0:a.preventScrubbing)&&void 0!==n?n:null==t?void 0:t.preventScrubbing)&&void 0!==r&&r,immediateFeedback:null!==(c=null!==(o=null===(i=null==e?void 0:e.options)||void 0===i?void 0:i.immediateFeedback)&&void 0!==o?o:null==t?void 0:t.immediateFeedback)&&void 0!==c&&c}},getEnabledSettingsField:function(e){return{showImmediateFeedbackField:"interactive"===e,showPreventScrubbingField:"interactive"===e}},getFetchFunctionByType:function(e){return n.I.getFetchFunctionByType(e)},getAnalyticsEntity:function(e){return n.I.getAnalyticsEntity(e)},getAnalyticsOptions:function(e){return n.I.getAnalyticsOptions(e)}}},83351:(e,t,a)=>{a.d(t,{P:()=>s});var n=a(32735),r=a(23481),i=a(13876),o=a(36532),c=r.T.encloseNamespace("assign.flowControls");function s(e){var t=e.hideBackButton||!e.onClickBack,a=e.hideNextButton||!e.onClickNext,r=e.hideCreateClassroomButton||!e.onClickCreateClassroom;return t&&a&&r?n.createElement(n.Fragment,null):n.createElement(i.u,{className:"justify-content-between"},n.createElement("div",null,!r&&n.createElement(i.u.Submit,{variant:"link",onClick:e.onClickCreateClassroom,text:c("createClassroom"),className:"text-info p-0"})),n.createElement("div",{className:"d-flex"},!t&&n.createElement(i.u.Cancel,{variant:"link",onClick:e.onClickBack,text:e.backButtonText||c("back")}),!a&&n.createElement(o.u,{title:e.nextButtonTooltip,disable:!e.nextButtonTooltip,placement:"top",spanHack:!0},n.createElement(i.u.Submit,{variant:"dark",onClick:e.onClickNext,text:e.nextButtonText||c("next"),disabled:e.disableNextButton,showSpinner:e.showSpinner}))))}},95890:(e,t,a)=>{a.d(t,{_:()=>u});var n=a(20354),r=a(2267),i=a(4594),o=a(16714),c=a(39151),s=a(20768),l=a(31949),p=a(22902),d=a(45778);function u(e){var t,a=n.a.useBasicFetch(l.N.currentUser()),u=r.I.getFetchFunctionByType(e.entityType)(e.objectId,null===(t=a.data)||void 0===t?void 0:t.id),S=n.a.useBasicFetch(c.L.config()),v=n.a.useBasicFetch(d.G.isType(u.data,i.E.Interactive)&&u.data.interactiveId&&s.b.interactive(u.data.interactiveId)),y=(0,p.T)(),I=y.hasPermissions,m=y.isLoaded,h=I(o.C.StudentExperience),O=I(o.C.CreateClassrooms);return{loaded:!!(a.data&&u.data&&S.data&&m),currentUser:a,entity:u,interactive:v,config:S,hasStudentExp:h,canCreateClassrooms:O}}},86099:(e,t,a)=>{a.d(t,{BR:()=>E,Qh:()=>y,Rv:()=>m,Sj:()=>h,Zm:()=>g,pY:()=>I,rq:()=>O});var n=a(23481),r=a(28400),i=a(2510),o=a(21789),c=a(4594),s=a(31908),l=a(14070),p=a(97291),d=a(40254),u=a(82431),S=n.T.encloseNamespace("shared.utils"),v=[c.E.Video,c.E.Clip,c.E.Interactive];function y(e){return s.M.isInteractive(e)?{application:p.O.INTERACTIVES,action:l.e.Interactives.VIEW_INTERACTIVE,args:[e.id,r.m.slugify(e.name)]}:s.M.isClip(e)?{application:p.O.CLIPS,action:l.e.Clips.PLAY_CLIP,args:[e.id,r.m.slugify(e.name)]}:s.M.isVideo(e)?{application:p.O.VIDEOS,action:l.e.Videos.PLAY_VIDEO,args:[e.id,r.m.slugify(e.name)]}:e.typeId===c.E.Playlist?{application:p.O.PLAYLISTS,action:l.e.Playlists.PLAYLIST,args:[e.id,r.m.slugify(e.name)]}:e.typeId===c.E.Series?u.j.getSeriesAppLink(e):void 0}function I(e,t){if(!e)return null;if(!v.includes(e.objectTypeId))return y({id:e.objectId.toString(),typeId:e.objectTypeId});if(e.type===i.y.Classroom){var a=o.x.getClassroomIdFromShare(e);return{application:p.O.CLASSROOMS,action:l.e.Classrooms.INSIGHTS_OVERVIEW,args:[a,e.shareId],params:t}}return e.type===i.y.Open?{application:p.O.CLASSROOMS,action:l.e.Classrooms.OPEN_CLASSROOM_INSIGHTS_OVERVIEW,args:[e.shareId],params:t}:{application:p.O.MY_SHARES,action:l.e.MyShares.INSIGHTS_OVERVIEW,args:[e.shareId],params:t}}function m(e,t){if(!e)return null;if(!v.includes(e.objectTypeId))return y({id:e.objectId.toString(),typeId:e.objectTypeId});if(e.type===i.y.Classroom){var a=o.x.getClassroomIdFromShare(e);return{application:p.O.CLASSROOMS,action:l.e.Classrooms.INSIGHTS_HEATMAP,args:[a,e.shareId],params:t}}return e.type===i.y.Open?{application:p.O.CLASSROOMS,action:l.e.Classrooms.OPEN_CLASSROOM_INSIGHTS_HEATMAP,args:[e.shareId],params:t}:{application:p.O.MY_SHARES,action:l.e.MyShares.INSIGHTS_HEATMAP,args:[e.shareId],params:t}}function h(e,t){if(!e)return null;if(!v.includes(e.objectTypeId))return y({id:e.objectId.toString(),typeId:e.objectTypeId});if(e.type===i.y.Classroom){var a=o.x.getClassroomIdFromShare(e);return{application:p.O.CLASSROOMS,action:l.e.Classrooms.INSIGHTS_QUESTIONS,args:[a,e.shareId],params:t}}return e.type===i.y.Open?{application:p.O.CLASSROOMS,action:l.e.Classrooms.OPEN_CLASSROOM_INSIGHTS_QUESTIONS,args:[e.shareId],params:t}:{application:p.O.MY_SHARES,action:l.e.MyShares.INSIGHTS_QUESTIONS,args:[e.shareId],params:t}}function O(e,t){if(!e)return null;if(!v.includes(e.objectTypeId))return y({id:e.objectId.toString(),typeId:e.objectTypeId});if(e.type===i.y.Classroom){var a=o.x.getClassroomIdFromShare(e);return{application:p.O.CLASSROOMS,action:l.e.Classrooms.INSIGHTS_STUDENTS,args:[a,e.shareId],params:t}}return e.type===i.y.Open?{application:p.O.CLASSROOMS,action:l.e.Classrooms.OPEN_CLASSROOM_INSIGHTS_STUDENTS,args:[e.shareId],params:t}:{application:p.O.MY_SHARES,action:l.e.MyShares.INSIGHTS_STUDENTS,args:[e.shareId],params:t}}function g(e){if(e){var t=f(e);return e.type===i.y.Link?{application:p.O.SHARE,action:l.e.Share.SHARE,args:[e.objectId],params:{entityType:t}}:d.W.assignDetails({objectId:e.objectId.toString(),shareId:e.shareId,entityType:t,detailsTitle:S("shareOptions")})}}function E(e){if(e){var t=f(e);return e.type===i.y.Link?{application:p.O.SHARE,action:l.e.Share.DELETE_SHARE_LINK,args:[e.objectId],params:{entityType:t,previousAppLink:{application:p.O.MY_SHARES,action:l.e.MyShares.HOME}}}:e.type===i.y.LegacyDirect?{application:p.O.SHARE,action:l.e.Share.DELETE_LEGACY_SHARE,args:[e.shareId],params:{previousAppLink:{application:p.O.MY_SHARES,action:l.e.MyShares.HOME}}}:e.type===i.y.Classroom?{application:p.O.SHARE,action:l.e.Share.DELETE_ASSIGNMENT,args:[e.shareId],params:{previousAppLink:{application:p.O.CLASSROOMS,action:l.e.Classrooms.CLASSROOM_HOME,args:[o.x.getClassroomIdFromShare(e)]}}}:e.type===i.y.Open?{application:p.O.SHARE,action:l.e.Share.DELETE_OPEN_CLASSROOM,args:[e.shareId],params:{previousAppLink:{application:p.O.CLASSROOMS,action:l.e.Classrooms.OPEN_CLASSROOMS,args:[o.x.getClassroomIdFromShare(e)]}}}:void 0}}function f(e){return e.objectTypeId===c.E.Video?"video":e.objectTypeId===c.E.Interactive?"interactive":e.objectTypeId===c.E.Clip?"clip":e.objectTypeId===c.E.Series?"series":e.objectTypeId===c.E.Playlist?"playlist":void 0}}}]);
|
|
2
|
+
//# sourceMappingURL=104-0c03791b45-lite.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/104-0c03791b45-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/apps/share-v2/enums/SharePrivacy.ts","file:///app/packages/libs/shared/src/apps/share-v2/enums/ShareType.ts","file:///app/packages/libs/shared/src/apps/share-v2/flight-requests/ShareRequests.ts","file:///app/packages/libs/shared/src/apps/share-v2/utils/ShareHelper.ts","file:///app/packages/libs/shared/src/apps/share-v2/utils/ShareViewHelper.tsx","file:///app/packages/projects/lite/src/apps/assign/components/flow-controls/FlowControls.tsx","file:///app/packages/projects/lite/src/apps/assign/hooks/useAssignSharedData.ts","file:///app/packages/projects/lite/src/shared/utils/ObjectAppLinkHelper.ts"],"sourcesContent":["export enum SharePrivacy {\n Public = 'Public',\n PinCode = 'PinCode',\n PasswordProtected = 'PasswordProtected',\n ProtectedOverrideRestriction = 'ProtectedOverrideRestriction',\n JustMySchoolOverrideRestriction = 'JustMySchoolOverrideRestriction',\n Protected = 'Protected',\n JustMySchool = 'JustMySchool',\n Direct = 'Direct'\n}","export enum ShareType {\n Link = 'Link',\n Classroom = 'Classroom',\n Open = 'Open',\n Live = 'Live',\n LegacyDirect = 'LegacyDirect',\n}","import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\n\nimport { ShareType } from 'libs/shared/apps/share-v2/enums/ShareType';\nimport { CreateShareLinkRequest } from 'libs/shared/apps/share-v2/interfaces/CreateShareLinkRequest';\nimport { CreateShareRequest } from 'libs/shared/apps/share-v2/interfaces/CreateShareRequest';\nimport { UpdateShareRequest } from 'libs/shared/apps/share-v2/interfaces/UpdateShareRequest';\n\nconst normalizeOptions: Flight.NormalizeOptions = {\n namespace: 'share-v2'\n};\n\nexport interface GetSentSharesParams {\n cursor?: string;\n scopeId?: string;\n objectTypeId?: number;\n type?: ShareType[];\n}\n\nexport const ShareRequests = {\n createShare(\n data: CreateShareRequest\n ): Flight.Request {\n return {\n url: '{gateway}/v2/shares',\n key: 'create:share-v2',\n type: HttpVerbs.POST,\n data,\n normalizeOptions,\n invalidationKeys: [ 'sent:share-v2', `get:share-v2:shares:object:${data.objectId}` ]\n };\n },\n\n updateShare(\n shareId: string,\n data: UpdateShareRequest\n ): Flight.Request {\n return {\n url: `{gateway}/v2/shares/${shareId}`,\n key: `update:share-v2`,\n type: HttpVerbs.PUT,\n data,\n normalizeOptions,\n invalidationKeys: [ 'share-v2:permanent-link:object', `share-v2:${shareId}` ]\n };\n },\n \n deleteShare(\n shareId: string\n ): Flight.Request {\n return {\n type: HttpVerbs.DELETE,\n url: `{gateway}/v2/shares/${shareId}`,\n key: `delete:share-v2`,\n normalizeOptions,\n invalidationKeys: [ 'share-v2:permanent-link:object', 'sent:share-v2', `share-v2:${shareId}` ]\n };\n },\n\n getShare(\n shareId: string\n ): Flight.Request {\n return {\n url: `{gateway}/v2/shares/${shareId}`,\n key: `share-v2:${shareId}`,\n bootstrapName: `share-v2:${shareId}`,\n type: HttpVerbs.GET,\n normalizeOptions\n };\n },\n\n getSentShares(\n params: GetSentSharesParams = {}\n ): Flight.Request {\n const key = Object.values(params).sort().join(':');\n\n return {\n url: UrlHelper.urlBuilder('{gateway}/v2/shares/sent', params),\n key: `sent:share-v2:${key}`,\n type: HttpVerbs.GET,\n normalize: false\n };\n },\n\n getShareLink(\n id: string\n ): Flight.Request {\n return {\n url: UrlHelper.urlBuilder('{gateway}/v2/shares/permanent-link', { objectId: id }),\n key: `share-v2:permanent-link:object:${id}`,\n normalizeOptions\n };\n },\n\n createShareLink(\n data: CreateShareLinkRequest\n ): Flight.Request {\n return {\n type: HttpVerbs.POST,\n url: UrlHelper.urlBuilder('{gateway}/v2/shares/permanent-link', { ...data }),\n key: `create:share-v2:permanent-link:object:${data.objectId}`,\n invalidationKeys: [ `share-v2:permanent-link:object:${data.objectId}`, 'sent:share-v2' ],\n normalizeOptions\n };\n },\n\n getPrivacy(id: string): Flight.Request {\n return {\n url: `{gateway}/v1/objects/${id}/access`,\n key: `privacy:${id}`,\n normalize: false\n };\n },\n \n getSharesByObjectId(\n objectId: string | number\n ): Flight.Request {\n return {\n url: `{gateway}/v2/shares/objects/${objectId}`,\n key: `get:share-v2:shares:object:${objectId}`,\n type: HttpVerbs.GET,\n normalizeOptions\n };\n },\n\n createSharePincode(shareId: string): Flight.Request {\n return {\n url: `{gateway}/v2/shares/${shareId}/pincode`,\n key: `create:share-v2:${shareId}:pincode`,\n type: HttpVerbs.POST\n };\n },\n\n getPincodeByShareId(shareId: string): Flight.Request {\n return {\n url: `{gateway}/v2/shares/${shareId}/pincode`,\n key: `get:share-v2:${shareId}:pincode`\n };\n },\n\n getPincodeByCode(code: string): Flight.Request {\n return {\n url: `{gateway}/v2/shares/pincode?code=${code}`,\n key: `get:share-v2:pincode:${code}`\n };\n }\n};\n","import { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { Share } from 'libs/shared/apps/share-v2/interfaces/Share';\nimport { ShareRecipient } from 'libs/shared/apps/share-v2/interfaces/ShareRecipient';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { Classroom } from 'libs/shared/interfaces';\n\nexport const ShareHelper = {\n getFlattenedRecipients(shares: Share[]): ShareRecipient[] {\n return ArrayHelper.flatten(shares.map(s => s.recipients ?? []));\n },\n\n getFlattenedUniqueScopes(shares: Share[]): string[] {\n const recipients = ShareHelper.getFlattenedRecipients(shares);\n return ArrayHelper.uniq(recipients.map(r => r.scopeId?.toString())).filter(x => !!x);\n },\n \n getClassroomIdFromShare(share: Share): string | undefined {\n const firstRecipient = share.recipients?.[0];\n \n if (!firstRecipient) return;\n \n if (firstRecipient.scopeId)\n return firstRecipient.scopeId.toString();\n \n if (firstRecipient.recipientId && firstRecipient.recipientTypeId === MasterType.Classroom)\n return firstRecipient.recipientId.toString();\n },\n\n getClassroomForShare(share: Share, classrooms: Classroom[]): Classroom | undefined {\n const classroomId = ShareHelper.getClassroomIdFromShare(share);\n \n if (!classroomId) return;\n \n return classrooms.find(classroom => classroom.id.toString() === classroomId.toString());\n },\n\n getRecipientsCount(share: Share, type?: MasterType.ClassroomGroup | MasterType.User): number {\n if (!type) return share.recipients?.length ?? 0;\n \n return share.recipients?.filter(r => r.recipientTypeId === type).length ?? 0;\n },\n\n hasShareExpired(share: Share): boolean {\n if (share.expireDate) {\n const now = new Date();\n const expireDate = new Date(share.expireDate);\n\n if (DateHelper.isAfter(now, expireDate))\n return true;\n }\n\n return false;\n },\n\n calculateDaysToExpiry(share: Share): number | undefined {\n if (!share.expireDate) return;\n\n const remainingDays = DateHelper.diffBetween(new Date(share.expireDate), new Date(), 'day') || 1;\n const smartCount = remainingDays === 0 ? 1 : remainingDays; // Prevent zero count\n\n return smartCount;\n },\n\n getShareLocalExpiry(share: Share, format: string): string | null {\n if (!share.expireDate)\n return null;\n \n const localDate = DateHelper.convertUTCToLocal(share.expireDate);\n return DateHelper.format(localDate, format);\n }\n};","import { AnalyticsOptions, EntityType } from 'libs/analytics/interfaces';\n\nimport { ShareViewHelper as OldShareViewHelper } from 'libs/shared/apps/share/views/share/ShareViewHelper';\nimport type { Share } from 'libs/shared/apps/share-v2/interfaces/Share';\nimport { IntegrationId } from 'libs/shared/enums/IntegrationId';\nimport type { Clip, Interactive, InteractiveMetadata, Playlist, Series, Subject, Video } from 'libs/shared/interfaces';\nimport { IntegrationHelper } from 'libs/shared/utils/IntegrationHelper';\n\nexport type SharableEntityType = 'video' | 'playlist' | 'subject' | 'series' | 'interactive' | 'clip';\nexport type SharableEntity = Video | Playlist | Subject | Series | InteractiveMetadata | Clip;\nexport interface ShareSettingsFormFields {\n preventScrubbing: boolean;\n immediateFeedback: boolean;\n}\n\nexport const ShareViewHelper = {\n canEmbed(type: SharableEntityType): boolean {\n return [ 'video', 'interactive', 'clip' ].includes(type);\n },\n\n /**\n * Only interactive entities can update share settings currently\n */\n canAddPolicies(type: SharableEntityType): boolean {\n return ['interactive'].includes(type);\n },\n\n getEnabledIntegrations(googleClassroomSetting: boolean, msftTeamsSetting: boolean): IntegrationId[] {\n const integrations = IntegrationHelper.getShareIntegrations(googleClassroomSetting, msftTeamsSetting);\n return integrations.filter(i => i.enabled).map(i => i.id);\n },\n\n getShareSettingsInitialValues(share: Share, interactive: Interactive | null) {\n return {\n preventScrubbing: share?.options?.preventScrubbing ?? interactive?.preventScrubbing ?? false,\n immediateFeedback: share?.options?.immediateFeedback ?? interactive?.immediateFeedback ?? false\n };\n },\n \n getEnabledSettingsField(entityType: SharableEntityType): {[key in `show${Capitalize<keyof ShareSettingsFormFields>}Field`]: boolean} {\n return {\n showImmediateFeedbackField: entityType === 'interactive',\n showPreventScrubbingField: entityType === 'interactive'\n };\n },\n\n /**\n * Methods from old ShareViewHelper imported here for namespacing\n */\n getFetchFunctionByType: (type: SharableEntityType) => {\n return OldShareViewHelper.getFetchFunctionByType(type);\n },\n\n getAnalyticsEntity(entityType: string): EntityType {\n return OldShareViewHelper.getAnalyticsEntity(entityType);\n },\n\n getAnalyticsOptions(entityType: SharableEntityType): AnalyticsOptions {\n return OldShareViewHelper.getAnalyticsOptions(entityType);\n }\n};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\n\nconst namespace = 'assign.flowControls';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface FlowControlsProps {\n showSpinner?: boolean;\n hideNextButton?: boolean;\n hideBackButton?: boolean;\n disableNextButton?: boolean;\n disableBackButton?: boolean;\n backButtonText?: string;\n hideCreateClassroomButton?: boolean;\n nextButtonText?: string;\n nextButtonTooltip?: string;\n onClickNext?: () => void;\n onClickBack?: () => void;\n onClickCreateClassroom?: () => void;\n}\n\nexport function FlowControls(props: FlowControlsProps): JSX.Element {\n const hideBackButton = props.hideBackButton || !props.onClickBack;\n const hideNextButton = props.hideNextButton || !props.onClickNext;\n const hideCreateClassroomButton = props.hideCreateClassroomButton || !props.onClickCreateClassroom;\n \n if (hideBackButton && hideNextButton && hideCreateClassroomButton)\n return <></>;\n \n return (\n <PopupButtons className='justify-content-between'>\n <div>\n {!hideCreateClassroomButton && (\n <PopupButtons.Submit variant='link' onClick={props.onClickCreateClassroom} text={getPhrase('createClassroom')} className='text-info p-0' />\n )}\n </div>\n <div className='d-flex'>\n {!hideBackButton && (\n <PopupButtons.Cancel variant='link' onClick={props.onClickBack} text={props.backButtonText || getPhrase('back')} />\n )}\n {!hideNextButton && (\n <Tooltip title={props.nextButtonTooltip} disable={!props.nextButtonTooltip} placement='top' spanHack>\n <PopupButtons.Submit\n variant='dark'\n onClick={props.onClickNext}\n text={props.nextButtonText || getPhrase('next')}\n disabled={props.disableNextButton}\n showSpinner={props.showSpinner}\n />\n </Tooltip>\n )}\n </div>\n </PopupButtons>\n );\n}","import { Flight } from 'libs/common/react/index';\n\nimport { SharableEntityType, ShareViewHelper } from 'libs/shared/apps/share-v2/utils/ShareViewHelper';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { InteractiveRequests } from 'libs/shared/flight-requests/InteractiveRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { Config, CurrentUser, Interactive, InteractiveMetadata } from 'libs/shared/interfaces';\nimport { MasterTypeHelper } from 'libs/shared/utils/MasterTypeHelper';\n\nexport interface UseAssignSharedDataOptions {\n objectId: string;\n entityType: SharableEntityType;\n}\n\nexport function useAssignSharedData(options: UseAssignSharedDataOptions) {\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const entity = ShareViewHelper.getFetchFunctionByType(options.entityType)(options.objectId, currentUser.data?.id);\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n /**\n * Fetch interactive videos options to set them as defaults\n * if the interactive share data does not have any options set.\n * We only fetch this if its an interactive share entity\n */\n const interactive = Flight.useBasicFetch<Interactive>(\n MasterTypeHelper.isType<InteractiveMetadata>(entity.data, MasterType.Interactive) && entity.data.interactiveId &&\n InteractiveRequests.interactive(entity.data.interactiveId)\n );\n\n const { hasPermissions, isLoaded } = usePermissions();\n\n const hasStudentExp = hasPermissions(PermissionName.StudentExperience);\n const canCreateClassrooms = hasPermissions(PermissionName.CreateClassrooms);\n \n const dataLoaded = (\n !!currentUser.data &&\n !!entity.data &&\n !!config.data &&\n !!isLoaded\n );\n \n return {\n loaded: dataLoaded,\n currentUser,\n entity,\n interactive,\n config,\n hasStudentExp,\n canCreateClassrooms\n };\n}","import { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { SharableEntityType } from 'libs/shared/apps/share/views/share/ShareViewHelper';\nimport { ShareType } from 'libs/shared/apps/share-v2/enums/ShareType';\nimport { Share } from 'libs/shared/apps/share-v2/interfaces/Share';\nimport { ShareHelper } from 'libs/shared/apps/share-v2/utils/ShareHelper';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { BaseObject, Series } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { AssignAppLinkHelper } from 'apps/assign/utils/AssignAppLinkHelper';\nimport { SeriesAppLinkHelper } from 'apps/series/SeriesAppLinkHelper';\n\nconst namespace = 'shared.utils';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst INSIGHTS_WHITELIST = [\n MasterType.Video,\n MasterType.Clip,\n MasterType.Interactive\n];\n\nexport function getObjectAppLink(object: BaseObject): Core.AppLink {\n if (VideoHelper.isInteractive(object)) {\n return {\n application: AppChannels.INTERACTIVES,\n action: Actions.Interactives.VIEW_INTERACTIVE,\n args: [ object.id, TextHelper.slugify(object.name) ]\n };\n }\n\n if (VideoHelper.isClip(object)) {\n return {\n application: AppChannels.CLIPS,\n action: Actions.Clips.PLAY_CLIP,\n args: [ object.id, TextHelper.slugify(object.name) ]\n };\n }\n\n if (VideoHelper.isVideo(object)) {\n return {\n application: AppChannels.VIDEOS,\n action: Actions.Videos.PLAY_VIDEO,\n args: [ object.id, TextHelper.slugify(object.name) ]\n };\n }\n\n if (object.typeId === MasterType.Playlist) {\n return {\n application: AppChannels.PLAYLISTS,\n action: Actions.Playlists.PLAYLIST,\n args: [ object.id, TextHelper.slugify(object.name) ]\n };\n }\n\n if (object.typeId === MasterType.Series) {\n return SeriesAppLinkHelper.getSeriesAppLink(object as Series);\n }\n}\n\nexport function getInsightsOverviewAppLink(share: Share, params?: HashObject): Core.AppLink {\n if (!share)\n return null;\n\n if (!INSIGHTS_WHITELIST.includes(share.objectTypeId))\n return getObjectAppLink({ id: share.objectId.toString(), typeId: share.objectTypeId });\n\n if (share.type === ShareType.Classroom) {\n const classroomId = ShareHelper.getClassroomIdFromShare(share);\n\n return {\n application: AppChannels.CLASSROOMS,\n action: Actions.Classrooms.INSIGHTS_OVERVIEW,\n args: [ classroomId, share.shareId ],\n params\n };\n }\n\n if (share.type === ShareType.Open) {\n return {\n application: AppChannels.CLASSROOMS,\n action: Actions.Classrooms.OPEN_CLASSROOM_INSIGHTS_OVERVIEW,\n args: [share.shareId],\n params\n };\n }\n\n return {\n application: AppChannels.MY_SHARES,\n action: Actions.MyShares.INSIGHTS_OVERVIEW,\n args: [share.shareId],\n params\n };\n}\n\nexport function getInsightsHeatmapAppLink(share: Share, params?: HashObject): Core.AppLink {\n if (!share)\n return null;\n\n if (!INSIGHTS_WHITELIST.includes(share.objectTypeId))\n return getObjectAppLink({ id: share.objectId.toString(), typeId: share.objectTypeId });\n\n if (share.type === ShareType.Classroom) {\n const classroomId = ShareHelper.getClassroomIdFromShare(share);\n\n return {\n application: AppChannels.CLASSROOMS,\n action: Actions.Classrooms.INSIGHTS_HEATMAP,\n args: [ classroomId, share.shareId ],\n params\n };\n }\n\n if (share.type === ShareType.Open) {\n return {\n application: AppChannels.CLASSROOMS,\n action: Actions.Classrooms.OPEN_CLASSROOM_INSIGHTS_HEATMAP,\n args: [share.shareId],\n params\n };\n }\n\n return {\n application: AppChannels.MY_SHARES,\n action: Actions.MyShares.INSIGHTS_HEATMAP,\n args: [share.shareId],\n params\n };\n}\n\nexport function getInsightsQuestionsAppLink(share: Share, params?: HashObject): Core.AppLink {\n if (!share)\n return null;\n\n if (!INSIGHTS_WHITELIST.includes(share.objectTypeId))\n return getObjectAppLink({ id: share.objectId.toString(), typeId: share.objectTypeId });\n\n if (share.type === ShareType.Classroom) {\n const classroomId = ShareHelper.getClassroomIdFromShare(share);\n\n return {\n application: AppChannels.CLASSROOMS,\n action: Actions.Classrooms.INSIGHTS_QUESTIONS,\n args: [ classroomId, share.shareId ],\n params\n };\n }\n\n if (share.type === ShareType.Open) {\n return {\n application: AppChannels.CLASSROOMS,\n action: Actions.Classrooms.OPEN_CLASSROOM_INSIGHTS_QUESTIONS,\n args: [share.shareId],\n params\n };\n }\n\n return {\n application: AppChannels.MY_SHARES,\n action: Actions.MyShares.INSIGHTS_QUESTIONS,\n args: [share.shareId],\n params\n };\n}\n\nexport function getInsightsStudentsAppLink(share: Share, params?: HashObject): Core.AppLink {\n if (!share)\n return null;\n \n if (!INSIGHTS_WHITELIST.includes(share.objectTypeId))\n return getObjectAppLink({ id: share.objectId.toString(), typeId: share.objectTypeId });\n\n if (share.type === ShareType.Classroom) {\n const classroomId = ShareHelper.getClassroomIdFromShare(share);\n\n return {\n application: AppChannels.CLASSROOMS,\n action: Actions.Classrooms.INSIGHTS_STUDENTS,\n args: [ classroomId, share.shareId ],\n params\n };\n }\n\n if (share.type === ShareType.Open) {\n return {\n application: AppChannels.CLASSROOMS,\n action: Actions.Classrooms.OPEN_CLASSROOM_INSIGHTS_STUDENTS,\n args: [share.shareId],\n params\n };\n }\n\n return {\n application: AppChannels.MY_SHARES,\n action: Actions.MyShares.INSIGHTS_STUDENTS,\n args: [share.shareId],\n params\n };\n}\n\nexport function getShareOptionsAppLink(share: Share): Core.AppLink {\n if (!share) return;\n\n const entityType = getSharableEntityType(share);\n\n if (share.type === ShareType.Link) {\n return {\n application: AppChannels.SHARE,\n action: Actions.Share.SHARE,\n args: [share.objectId],\n params: { entityType }\n };\n }\n\n return AssignAppLinkHelper.assignDetails({\n objectId: share.objectId.toString(),\n shareId: share.shareId,\n entityType,\n detailsTitle: getPhrase('shareOptions')\n });\n}\n\nexport function getDeleteShareAppLink(share: Share): Core.AppLink {\n if (!share) return;\n\n const entityType = getSharableEntityType(share);\n\n if (share.type === ShareType.Link) {\n return {\n application: AppChannels.SHARE,\n action: Actions.Share.DELETE_SHARE_LINK,\n args: [share.objectId],\n params: {\n entityType,\n previousAppLink: {\n application: AppChannels.MY_SHARES,\n action: Actions.MyShares.HOME\n } as Core.AppLink\n }\n };\n }\n\n if (share.type === ShareType.LegacyDirect) {\n return {\n application: AppChannels.SHARE,\n action: Actions.Share.DELETE_LEGACY_SHARE,\n args: [share.shareId],\n params: {\n previousAppLink: {\n application: AppChannels.MY_SHARES,\n action: Actions.MyShares.HOME\n } as Core.AppLink\n }\n };\n }\n\n if (share.type === ShareType.Classroom) {\n return {\n application: AppChannels.SHARE,\n action: Actions.Share.DELETE_ASSIGNMENT,\n args: [share.shareId],\n params: {\n previousAppLink: {\n application: AppChannels.CLASSROOMS,\n action: Actions.Classrooms.CLASSROOM_HOME,\n args: [ShareHelper.getClassroomIdFromShare(share)]\n } as Core.AppLink\n }\n };\n }\n\n if (share.type === ShareType.Open) {\n return {\n application: AppChannels.SHARE,\n action: Actions.Share.DELETE_OPEN_CLASSROOM,\n args: [share.shareId],\n params: {\n previousAppLink: {\n application: AppChannels.CLASSROOMS,\n action: Actions.Classrooms.OPEN_CLASSROOMS,\n args: [ShareHelper.getClassroomIdFromShare(share)]\n } as Core.AppLink\n }\n };\n }\n}\n\nexport function getInsightsReportAppLink(share: Share): Core.AppLink {\n if (!share) return;\n if (share.objectTypeId !== MasterType.Interactive) return;\n\n return {\n application: AppChannels.MY_SHARES,\n action: Actions.MyShares.INTERACTIVE_GENERATE_REPORT,\n args: [share.objectId]\n };\n}\n\nfunction getSharableEntityType(share: Share): SharableEntityType {\n if (share.objectTypeId === MasterType.Video)\n return 'video';\n\n if (share.objectTypeId === MasterType.Interactive)\n return 'interactive';\n \n if (share.objectTypeId === MasterType.Clip)\n return 'clip';\n\n if (share.objectTypeId === MasterType.Series)\n return 'series';\n\n if (share.objectTypeId === MasterType.Playlist)\n return 'playlist';\n}"],"names":["SharePrivacy","ShareType","normalizeOptions","namespace","ShareRequests","createShare","data","url","key","type","invalidationKeys","objectId","updateShare","shareId","deleteShare","getShare","bootstrapName","getSentShares","params","Object","values","sort","join","normalize","getShareLink","id","createShareLink","getPrivacy","getSharesByObjectId","createSharePincode","getPincodeByShareId","getPincodeByCode","code","ShareHelper","getFlattenedRecipients","shares","map","s","recipients","getFlattenedUniqueScopes","r","scopeId","toString","filter","x","getClassroomIdFromShare","share","firstRecipient","recipientId","recipientTypeId","getClassroomForShare","classrooms","classroomId","find","classroom","getRecipientsCount","length","hasShareExpired","expireDate","now","Date","calculateDaysToExpiry","remainingDays","getShareLocalExpiry","format","localDate","ShareViewHelper","canEmbed","includes","canAddPolicies","getEnabledIntegrations","googleClassroomSetting","msftTeamsSetting","i","enabled","getShareSettingsInitialValues","interactive","preventScrubbing","options","immediateFeedback","getEnabledSettingsField","entityType","showImmediateFeedbackField","showPreventScrubbingField","getFetchFunctionByType","getAnalyticsEntity","getAnalyticsOptions","getPhrase","FlowControls","props","hideBackButton","onClickBack","hideNextButton","onClickNext","hideCreateClassroomButton","onClickCreateClassroom","className","variant","onClick","text","backButtonText","title","nextButtonTooltip","disable","placement","spanHack","nextButtonText","disabled","disableNextButton","showSpinner","useAssignSharedData","currentUser","entity","config","interactiveId","hasPermissions","isLoaded","hasStudentExp","canCreateClassrooms","loaded","INSIGHTS_WHITELIST","getObjectAppLink","object","application","action","args","name","typeId","getInsightsOverviewAppLink","objectTypeId","getInsightsHeatmapAppLink","getInsightsQuestionsAppLink","getInsightsStudentsAppLink","getShareOptionsAppLink","getSharableEntityType","detailsTitle","getDeleteShareAppLink","previousAppLink"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[1074],{26136:(e,t,n)=>{n.d(t,{B:()=>c});var r=n(76198),a=n(23481),i=n(64818),o=a.T.encloseNamespace("shared.analyticsUtils");function c(e,t){return e?t?(0,r._8)((n=e.id,a=e.sessionId,c=+"".concat(n||function(e){if(!e)return 0;for(var t=0,n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n),t|=0;return Math.abs(t)}(a)).concat(Math.floor((new Date).getMinutes()/5)),{dictionaries:[r.O9,r.yd],separator:" ",length:2,style:"capital",seed:c})):i.l.getFullName(e)||o("anonUser"):o("anonUser");var n,a,c}},1619:(e,t,n)=>{n.d(t,{e:()=>f});var r=n(32735),a=n(23481),i=n(12528),o=n(83914),c=n(35223),l=n(33518),s=n(2510);function u(e){return u="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},u(e)}function m(e,t,n){return(t=function(e){var t=function(e){if("object"!=u(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=u(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==u(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var p=a.T.encloseNamespace("sharev2.shareAvatar"),d=m(m(m(m(m({},s.y.Open,c.vn.Classrooms),s.y.Link,c.vn.Link),s.y.Classroom,c.vn.Classrooms),s.y.Live,c.vn.Play),s.y.LegacyDirect,c.vn.Share),y=m(m(m(m(m({},s.y.Open,"blue"),s.y.Link,"black"),s.y.Classroom,"teal"),s.y.Live,"purple"),s.y.LegacyDirect,"indigo"),v=m(m(m(m(m({},s.y.Open,"openShareType"),s.y.Link,"linkShareType"),s.y.Classroom,"classroomShareType"),s.y.Live,"liveShareType"),s.y.LegacyDirect,"legacyDirectShareType");function f(e){var t,n;return r.createElement("div",{className:"d-flex align-items-center gap-2"},r.createElement("div",null,r.createElement(i.f,{svgName:d[e.type],variant:y[e.type],textVariant:"white",svgWrapperClassName:"p-1",svgSize:null!==(t=e.svgSize)&&void 0!==t?t:o.S.Standard})),r.createElement("div",{className:"d-flex flex-column"},r.createElement("p",{className:"m-0"},function(e){var t=e.type,n=e.classroomName,r=e.additionalTitleText;if(t===s.y.Classroom&&n)return n;var a=p(v[t]);return r&&(a+=" "+r),a}(e)),!e.hideSubtitle&&r.createElement("span",{className:"text-secondary"},null!==(n=e.subtitleText)&&void 0!==n?n:function(e){var t=e.type,n=e.privacy,r=e.studentCount,a=void 0===r?0:r,i=e.classroomGroupCount,o=void 0===i?0:i;switch(t){case s.y.Classroom:return function(e,t){return e&&t?"".concat(p("classroomGroupCount",{smartCount:e}),", ").concat(p("studentSubTitle",{smartCount:t})):e?p("groupSubTitle",{smartCount:e}):t?p("studentSubTitle",{smartCount:t}):p("allStudentsSubTitle")}(o,a);case s.y.Open:return p("openShareTypeSubTitle");case s.y.Link:return function(e){return[l.e.JustMySchool,l.e.Protected].includes(e)?p("respectRatingsSubTitle"):e===l.e.JustMySchoolOverrideRestriction?p("anyoneInSchoolSubTitle"):e===l.e.ProtectedOverrideRestriction?p("anyoneSignedInSubTitle"):e===l.e.Public?p("anyoneWithLinkSubTitle"):e===l.e.PinCode?p("anyoneWithPinSubTitle"):void 0}(n);case s.y.Live:return p("liveShareTypeSubTitle");case s.y.LegacyDirect:return p("legacyDirectTypeSubTitle");default:return p("publicShareTypeSubTitle")}}(e))))}},33518:(e,t,n)=>{var r;n.d(t,{e:()=>r}),function(e){e.Public="Public",e.PinCode="PinCode",e.PasswordProtected="PasswordProtected",e.ProtectedOverrideRestriction="ProtectedOverrideRestriction",e.JustMySchoolOverrideRestriction="JustMySchoolOverrideRestriction",e.Protected="Protected",e.JustMySchool="JustMySchool",e.Direct="Direct"}(r||(r={}))},8233:(e,t,n)=>{n.d(t,{R:()=>d});var r=n(23481),a=n(110),i=n(33518),o=n(4594),c=n(49080),l=n(26361),s=n(35223),u=n(31908);function m(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var p=r.T.encloseNamespace("sharev2.utils"),d={getPrivateIconAndText:function(e){var t=e.entityTypeId,n=e.privacy,r=e.hasStudentExp,a=e.entity,c=e.yearGroups;if(t===o.E.Topic||t===o.E.Series)return{icon:s.vn.VisibleOn,text:p(r?"justMySchoolTeachers":"justMySchoolDescription")};if(!Array.isArray(n))switch(n){case i.e.Public:return{icon:s.vn.VisibleOn,text:p("publicDescription")};case i.e.ProtectedOverrideRestriction:return{icon:s.vn.VisibleOn,text:p("clickViewOnly")};case i.e.Protected:return{icon:s.vn.Lock,text:d.getRespectRatingText(a,c,r)};case i.e.JustMySchoolOverrideRestriction:return{icon:s.vn.Lock,text:p(r?"justMySchoolTeachers":"justMySchoolDescription")};case i.e.JustMySchool:return{icon:s.vn.Lock,text:d.getRespectRatingText(a,c,r)};case i.e.PinCode:return{icon:s.vn.Lock,text:p("pinDescription")};case i.e.PasswordProtected:return{icon:s.vn.Lock,text:p("privateDescription")};default:return{}}},getIconAndText:function(e){var t=e.linkExpireDate,n=e.isPasswordProtected,r=e.status;if(!t&&!n)return d.getPrivateIconAndText(e);if(!t)return{icon:s.vn.Lock,text:p("password")};var i=a.O.isToday(t),o=a.O.diffBetween(t,new Date,"day");if(!n){var l=i?p("expiryToday"):p("expiry",{days:o});return r===c.F.Expired&&(l=p("expired")),{icon:s.vn.Timer,text:l}}var u=i?p("passwordExpiryToday"):p("passwordExpiry",{days:o});return r===c.F.Expired&&(u=p("passwordExpired")),{icon:s.vn.Lock,text:u}},getRespectRatingText:function(e,t,n){var r;if(!e||!t)return null;if(n)return p("justMySchoolTeachers");if(!u.M.isVideoType(e))return p("collectionRating");var a=l.l.getWeightedRestriction(null===(r=e._restrictions)||void 0===r?void 0:r.value);if(a&&!a.yearGroup)return p("onlyAdmins");var i,o,c,s=u.M.getRating(e),d=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return m(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?m(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,a=function(){};return{s:a,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:a}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,o=!0,c=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return o=e.done,e},e:function(e){c=!0,i=e},f:function(){try{o||null==n.return||n.return()}finally{if(c)throw i}}}}(t);try{for(d.s();!(c=d.n()).done;){var y=c.value;(!i||y.value>i.value)&&(i=y),a&&y.value<=a.yearGroup||s&&y.rating.value<s.value||(!o||y.value<o.value)&&(o=y)}}catch(e){d.e(e)}finally{d.f()}return o?1===t.length?p("clickViewOnly"):o.value===i.value?p("maxYearGroup",{yearGroup:i.name}):p("yearGroupRange",{yearGroup:o.name}):p("onlyStaff")},getShareLinkAccessType:function(e){return e.isTvContent||e.isClickViewContent?"protected":e.canManageAccess?"owner":"private"}}},40782:(e,t,n)=>{n.d(t,{I:()=>r,O:()=>l});var r,a=n(32735),i=n(2606),o=n(362);function c(e){var t=a.useCallback((function(t){if(t){var n=t.r.baseVal.value,r=2*Math.PI*n,a=r-e.percentage*r;t.style.strokeDasharray="".concat(r," ").concat(r),t.style.strokeDashoffset=a.toString()}}),[e.percentage]);return a.createElement("svg",null,a.createElement("circle",{r:(0,i.pu)(e.size),className:o.Z.backgroundCircle}),!(0,i.zR)(e.percentage)&&a.createElement("circle",{ref:t,r:(0,i.pu)(e.size),className:(0,i.V4)(e.percentage,e.scoreThresholds)}))}function l(e){var t,n=(0,i.Ki)(e.percentage),l=e.size||(e.layout===r.LabelInside?i.Mk.Large:i.Mk.Small),s=e.customLabel||(0,i.DV)(n);return e.layout===r.LabelOnly?a.createElement("span",{className:(0,i.IA)(n)},s):a.createElement("div",{className:"d-flex align-items-center justify-content-between ".concat(null!==(t=e.className)&&void 0!==t?t:"")},e.layout===r.LabelBefore&&a.createElement("span",{className:"me-2"},s),a.createElement("div",{className:(0,i.tw)(l,n)},a.createElement(c,{percentage:n,size:l,scoreThresholds:e.scoreThresholds}),e.layout===r.LabelInside&&a.createElement("span",{className:o.Z.centredPercentageText},s)))}!function(e){e.CircleOnly="circle_only",e.LabelOnly="label_only",e.LabelBefore="label_before",e.LabelInside="label_inside"}(r||(r={})),l.defaultProps={layout:r.CircleOnly}},2606:(e,t,n)=>{n.d(t,{DV:()=>f,IA:()=>d,Ki:()=>v,Mk:()=>c,V4:()=>p,pu:()=>m,tw:()=>y,zR:()=>b});var r=n(94892),a=n(362);function i(e){return i="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},i(e)}function o(e,t,n){return(t=function(e){var t=function(e){if("object"!=i(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=i(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==i(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var c,l=.2,s=.36;!function(e){e.Small="small",e.Large="large",e.ExtraSmall="extraSmall"}(c||(c={}));var u=o(o(o({},c.ExtraSmall,{size:2}),c.Small,{size:2}),c.Large,{size:5.8});function m(e){var t=u[e].size,n=e===c.Large?s:l;return"".concat(t/2-2*n,"rem")}function p(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:r.i;return e>=t.HIGH?a.Z.circleSuccess:e>=t.MODERATE?a.Z.circleWarning:a.Z.circleDanger}function d(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:r.i;return e>=t.HIGH?"text-success":e>=t.MODERATE?"text-warning":"text-danger"}function y(e,t){var n="d-inline-block ".concat(a.Z.circleContainer);return e===c.Large&&(n+=" ".concat(a.Z.lgCircleContainer)),e===c.ExtraSmall&&(n+=" ".concat(a.Z.xsCircleContainer)),b(t)&&(n+=" ".concat(a.Z.pendingCircle)),n}function v(e){if(!b(e))return+e.toFixed(2)}function f(e){return b(e)?"--%":"".concat(Math.round(100*e),"%")}function b(e){return"number"!=typeof e}},38502:(e,t,n)=>{n.d(t,{r:()=>m});var r=n(32735),a=n(49985),i=n(15611),o=n(18559),c=n(11607),l=n(83914),s=n(22771);function u(e){return r.createElement(r.Fragment,null,!!e.tab.svgName&&r.createElement("div",{className:e.tab.name?"pe-1":""},r.createElement(l.x,{svgName:e.tab.svgName})),e.tab.name,"number"==typeof e.tab.count&&r.createElement("div",{className:"ps-2"},r.createElement(o.C,{type:o.g.Count,data:e.tab.count})))}function m(e){var t;return r.createElement("nav",{className:null!==(t=e.className)&&void 0!==t?t:"",ref:e.containerRef},r.createElement("ul",{className:"\n list-unstyled d-inline-block m-0 ".concat(s.Z.pillTabSelector,"\n ").concat(e.borderRadius?s.Z.radiusSmall:"","\n ").concat(e.listClassName,"\n ")},e.tabs.map((function(e,t){return r.createElement("li",{className:"\n p-0 ".concat(s.Z.tab," ").concat(e.active?"btn btn-dark":"btn btn-outline-dark","\n ").concat(e.name?s.Z.minWidth:""," ").concat(e.className,"\n "),key:t},e.appLink?r.createElement(i.F,{appLink:e.appLink,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,className:"\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ".concat(s.Z.tabLink,"\n ")},r.createElement(u,{tab:e})):r.createElement(c.L,{className:"\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ".concat(s.Z.tabLink,"\n "),onClick:function(){return function(e){!e.active&&e.onSelect&&(e.onSelect(),e.analyticsData&&e.analyticsOptions&&a.k.logUserAction(e.analyticsData,e.analyticsOptions))}(e)}},r.createElement(u,{tab:e})))}))))}m.defaultProps={borderRadius:"lg"}},94892:(e,t,n)=>{n.d(t,{T:()=>a,i:()=>r});var r={HIGH:.75,MODERATE:.5},a={HIGH:.7,MODERATE:.7}},93322:(e,t,n)=>{n.d(t,{F:()=>i});var r=n(32735),a=n(13126);function i(){r.useEffect((function(){return a.e.lockContentWidth(),function(){return a.e.unlockContentWidth()}}),[])}},99746:(e,t,n)=>{n.d(t,{p:()=>y});var r=n(32735),a=n(57900),i=n(97395),o=n(2948),c=n(91693),l=n(83345),s=n(4594),u=n(35223),m=n(86702);function p(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var d="lite.insightsAdminAlert";function y(e){var t,n,y=(t=(0,o.D)(m.y.INSIGHTS_ADMIN_ALERT,!0,{storage:a.Z1.LocalStorage}),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,o,c=[],l=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=i.call(n)).done)&&(c.push(r.value),c.length!==t);l=!0);}catch(e){s=!0,a=e}finally{try{if(!l&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw a}}return c}}(t,n)||function(e,t){if(e){if("string"==typeof e)return p(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?p(e,t):void 0}}(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),v=y[0],f=y[1];return e.hasAnalytics&&v?r.createElement("div",{role:"alert",className:"d-flex justify-content-between align-items-center bg-light-blue rounded p-2 mb-4"},r.createElement("div",null,r.createElement(l.x,{namespace:d,phrase:"adminAlert"}),r.createElement("a",{className:"text-info",href:function(){if(!e.video)return e.analyticsUrl;var t="";return e.video.typeId===s.E.Interactive&&(t="/interactives/".concat(e.video.id,"/views")),e.video.typeId===s.E.Video&&(t="/videos/".concat(e.video.id,"/views")),e.video.typeId===s.E.Clip&&(t="/clips/".concat(e.video.id,"/views")),i._.safeUrlConcat(e.analyticsUrl,t)}(),target:"_blank"},r.createElement(l.x,{namespace:d,phrase:"analytics"})),"."),r.createElement(c.h,{svgName:u.vn.Close,className:"text-blue",onClick:function(){f(!1)}})):r.createElement(r.Fragment,null)}},9540:(e,t,n)=>{n.d(t,{j:()=>H});var r=n(32735),a=n(23481),i=n(57900),o=n(2948),c=n(31453),l=n(2510),s=n(76306),u=n(49935),m=n(91693),p=n(38502),d=n(83914),y=n(83345),v=n(83523),f=n(36532),b=n(38143),h=n(4594),g=n(35223),S=n(14070),E=n(97291),T=n(46390),x=n(86099),N=n(22490),k=n(99746),O=n(1619),C=n(21789),A=n(8233);const L={withDivider:"Tum3w"};var w=a.T.encloseNamespace("insights.shareInfo"),I="DD/MM/YY";function R(e){if(!e.sharedObject)return r.createElement(r.Fragment,null);var t=!!e.share.expireDate,n=C.x.hasShareExpired(e.share),a=A.R.getPrivateIconAndText({privacy:e.share.privacy,entityTypeId:e.sharedObject.typeId,hasStudentExp:!1,entity:e.entity,yearGroups:e.yearGroups}).text;return r.createElement("div",{className:(0,c.A)("d-flex flex-row align-items-center",L.withDivider,e.className)},r.createElement(O.e,{privacy:e.share.privacy,type:e.share.type,svgSize:d.S.Small,classroomName:e.classroomName,additionalTitleText:t&&"(".concat(n?w("expired"):C.x.getShareLocalExpiry(e.share,I),")"),hideSubtitle:!0}),!t&&!!a&&r.createElement("p",{className:"mb-0"},a))}var M=n(69003);const D={withDivider:"ZSzT3"};function P(e,t){if(e){if("string"==typeof e)return j(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?j(e,t):void 0}}function j(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var _="insights.header",V=a.T.encloseNamespace(_);function Z(e){return r.createElement("div",null,r.createElement("label",{htmlFor:"anonymiseNames",className:"mb-0 pe-3"},r.createElement(y.x,{namespace:_,phrase:"anonymiseNames"})),r.createElement(v.Z,{id:"anonymiseNames",on:e.anonymiseUsers,onClick:e.toggleAnonymiseUsers}))}function G(e){return r.createElement(f.u,{id:"audienceFilter",title:V("demoOnly"),spanHack:e.isDemo},r.createElement("div",{className:e.isDemo?"pointer-events-none":""},e.children))}function H(e){var t,n,a,v=(n=(0,o.D)(b.g.ANONYMISE_USERS,!1,{storage:i.Z1.LocalStorage}),a=2,function(e){if(Array.isArray(e))return e}(n)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,o,c=[],l=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=i.call(n)).done)&&(c.push(r.value),c.length!==t);l=!0);}catch(e){s=!0,a=e}finally{try{if(!l&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw a}}return c}}(n,a)||P(n,a)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),O=v[0],C=v[1],A=(0,T.G)().isPlugin,L=(0,x.Zm)(e.share);return r.createElement("div",null,r.createElement(k.p,{analyticsUrl:e.analyticsWebUrl,hasAnalytics:e.hasAnalytics,video:e.video}),r.createElement("section",{className:"mb-4"},r.createElement("div",{className:"d-flex justify-content-between mb-3"},e.video?r.createElement(u.Oo,{breadcrumbs:function(){if(!e.video)return[];if(!e.share)return[];var t={name:V("shares"),appLink:{application:E.O.MY_SHARES,action:S.e.MyShares.HOME}};return e.share.type===l.y.Classroom&&(t={name:V("classrooms"),appLink:{application:E.O.CLASSROOMS,action:S.e.Classrooms.HOME}}),e.share.type===l.y.Open&&(t={name:V("openClassrooms"),appLink:{application:E.O.CLASSROOMS,action:S.e.Classrooms.OPEN_CLASSROOMS}}),[t,{name:e.video.name,active:!0}]}()}):r.createElement(u.b2,null),r.createElement("div",{className:"d-flex gap-2"},!A&&r.createElement(G,{isDemo:e.isDemo},r.createElement(m.h,{svgName:g.vn.Share,className:"btn btn-outline-dark",appLink:L},r.createElement(y.x,{namespace:_,phrase:"shareOptions"}))),r.createElement(G,{isDemo:e.isDemo},r.createElement(s.m,{dropdownToggleClassName:"btn btn-outline-dark",actions:function(){var t,n=[];return(null===(t=e.video)||void 0===t?void 0:t.typeId)===h.E.Interactive&&n.push({label:V("generateReport"),svgName:g.vn.Print,appLink:{application:E.O.MY_SHARES,action:S.e.MyShares.INTERACTIVE_GENERATE_REPORT,args:[e.video.id]}}),[].concat(n,function(e){return function(e){if(Array.isArray(e))return j(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||P(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}((0,M.sD)({share:e.share,sharedObject:e.video,isPlugin:A,hideShareOptionsActions:!0})))}()})))),r.createElement("div",{className:"d-flex justify-content-between mb-3"},r.createElement("div",{className:"me-2"},e.video&&r.createElement(r.Fragment,null,r.createElement("h1",{className:"mb-0 d-inline me-2"},e.video.name),!e.isDemo&&r.createElement(f.u,{title:V(e.video.typeId===h.E.Interactive?"viewInteractive":e.video.typeId===h.E.Clip?"viewClip":"viewVideo"),type:"text",spanHack:!0,spanHackClassName:"d-inline-block align-text-bottom"},r.createElement(m.h,{svgName:g.vn.NewWindow,appLink:N.W.getAppLink(e.video),svgSize:d.S.Large,className:"d-inline-block",customSize:!0}))),!e.video&&r.createElement("h1",{className:"partial-loading-background",style:{width:"20rem"}}," "))),r.createElement("div",{className:(0,c.A)("d-flex flex-row align-items-center mb-3",D.withDivider)},r.createElement(R,{sharedObject:e.video,share:e.share,entity:e.video,yearGroups:e.yearGroups,classroomName:null===(t=e.classroom)||void 0===t?void 0:t.name}),r.createElement(Z,{anonymiseUsers:O,toggleAnonymiseUsers:function(){return C(!O)}})),r.createElement("div",{className:"d-flex align-items-center mb-4"},r.createElement(p.r,{tabs:e.tabs}))))}},10447:(e,t,n)=>{n.d(t,{$6:()=>l,aq:()=>u,kj:()=>s});var r=n(23481),a=n(14070),i=n(97291),o=n(86099),c=r.T.encloseNamespace("shared.insightsUtils");function l(e,t,n){return[{name:c("insights"),active:"insights"===t,appLink:(0,o.pY)(e,n)},{name:c("heatmap"),active:"heatmap"===t,appLink:(0,o.Rv)(e,n)}]}function s(e,t){return[{name:c("insights"),active:"insights"===t,appLink:(0,o.pY)(e)},{name:c("results"),active:"results"===t,appLink:(0,o.rq)(e)},{name:c("questions"),active:"questions"===t,appLink:(0,o.Sj)(e)},{name:c("heatmap"),active:"heatmap"===t,appLink:(0,o.Rv)(e)}]}function u(e,t,n){return[{name:c("insights"),active:"insights"===t,appLink:{application:i.O.MY_SHARES,action:a.e.MyShares.INTERACTIVE_OVERVIEW_DEMO,args:[e],params:n}},{name:c("results"),active:"results"===t,appLink:{application:i.O.MY_SHARES,action:a.e.MyShares.INTERACTIVE_STUDENTS_DEMO,args:[e],params:n}},{name:c("questions"),active:"questions"===t,appLink:{application:i.O.MY_SHARES,action:a.e.MyShares.INTERACTIVE_QUESTIONS_DEMO,args:[e],params:n}},{name:c("heatmap"),active:"heatmap"===t,appLink:{application:i.O.MY_SHARES,action:a.e.MyShares.INTERACTIVE_HEATMAP_DEMO,args:[e],params:n}}]}},362:(e,t,n)=>{n.d(t,{Z:()=>r});const r={circleContainer:"p8Vgz",backgroundCircle:"asGGE",circleSuccess:"PXLNj",circleWarning:"ZckRN",circleDanger:"slBRg",lgCircleContainer:"N8KCI",xsCircleContainer:"RPqZ2",pendingCircle:"DKrcq",centredPercentageText:"tpmLR"}},22771:(e,t,n)=>{n.d(t,{Z:()=>r});const r={pillTabSelector:"Hdi6o",tab:"RvNxr",minWidth:"GHSz9",radiusSmall:"VhJJa",tabLink:"WFyvo"}}}]);
|
|
2
|
+
//# sourceMappingURL=1074-4f6b136f9a-lite.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/1074-4f6b136f9a-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/apps/analytics/utils/AnonymiseUserUtils.ts","file:///app/packages/libs/shared/src/apps/share-v2/components/share-avatar/ShareAvatar.tsx","file:///app/packages/libs/shared/src/apps/share-v2/enums/SharePrivacy.ts","file:///app/packages/libs/shared/src/apps/share-v2/utils/ShareLinkHelper.ts","file:///app/packages/libs/shared/src/components/percentage-indicator/PercentageIndicator.tsx","file:///app/packages/libs/shared/src/components/percentage-indicator/PercentageIndicatorUtils.ts","file:///app/packages/libs/shared/src/components/pill-tab-selector/PillTabSelector.tsx","file:///app/packages/libs/shared/src/constants/ScoreThresholds.ts","file:///app/packages/libs/shared/src/hooks/useLockContentWidth.ts","file:///app/packages/projects/lite/src/apps/my-shares/components/insights-admin-alert/InsightsAdminAlert.tsx","file:///app/packages/projects/lite/src/apps/my-shares/components/share-info/share-info.scss","file:///app/packages/projects/lite/src/apps/my-shares/components/share-info/ShareInfo.tsx","file:///app/packages/projects/lite/src/apps/my-shares/components/insights-header/insights-header.scss","file:///app/packages/projects/lite/src/apps/my-shares/components/insights-header/InsightsHeader.tsx","file:///app/packages/projects/lite/src/apps/my-shares/utils/InsightsAppLinkUtils.ts","file:///app/packages/libs/shared/src/components/percentage-indicator/percentage-indicator.scss","file:///app/packages/libs/shared/src/components/pill-tab-selector/pill-tab-selector.scss"],"sourcesContent":["import { animals, colors, Config as UniqueNamesConfig, uniqueNamesGenerator } from 'unique-names-generator';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { AnonUser } from 'libs/shared/interfaces/models/interactive-results/AnonUser';\nimport { UserHelper } from 'libs/shared/utils/UserHelper';\n\nconst namespace = 'shared.analyticsUtils';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction guidToSeed(guid: string): number {\n if (!guid)\n return 0;\n\n // Simple hash function (DJB2-like) for browsers\n let hash = 0;\n for (let i = 0; i < guid.length; i++) {\n const char = guid.charCodeAt(i);\n hash = ((hash << 5) - hash) + char;\n hash |= 0; // Convert to 32bit integer\n }\n return Math.abs(hash);\n}\n\nfunction getUniqueNamesConfig(userId: string, sessionId: string): UniqueNamesConfig {\n /**\n * Generate a seed that is unique to each user but changes every 5 minutes.\n * \n * We use a seed so that if the same user's name is anonymised multiple times\n * in quick succession (e.g. multiple renders), the same name will be returned each time.\n * \n * We change the seed every 5 minutes so that students don't always have the same name.\n */\n const seed = +`${userId || guidToSeed(sessionId)}${Math.floor((new Date()).getMinutes() / 5)}`;\n\n return {\n dictionaries: [ colors, animals ],\n separator: ' ',\n length: 2,\n style: 'capital',\n seed\n };\n}\n\nexport function anonymiseUserName(user: AnonUser, shouldAnonymise: boolean): string {\n if (!user) {\n return getPhrase('anonUser');\n }\n\n if (!shouldAnonymise)\n return UserHelper.getFullName(user) || getPhrase('anonUser');\n\n return uniqueNamesGenerator(getUniqueNamesConfig(user.id, user.sessionId));\n}\n","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { IconCircle } from 'libs/shared/components/icon-circle/IconCircle';\nimport { SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { SharePrivacy } from '../../enums/SharePrivacy';\nimport { ShareType } from '../../enums/ShareType';\n\nconst namespace = 'sharev2.shareAvatar';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst icons = {\n [ShareType.Open]: cvSvgLibrary.Classrooms,\n [ShareType.Link]: cvSvgLibrary.Link,\n [ShareType.Classroom]: cvSvgLibrary.Classrooms,\n [ShareType.Live]: cvSvgLibrary.Play,\n [ShareType.LegacyDirect]: cvSvgLibrary.Share\n};\n\nconst iconColours = {\n [ShareType.Open]: 'blue',\n [ShareType.Link]: 'black',\n [ShareType.Classroom]: 'teal',\n [ShareType.Live]: 'purple',\n [ShareType.LegacyDirect]: 'indigo'\n};\n\nconst shareTypeTitlePhraseMap = {\n [ShareType.Open]: 'openShareType',\n [ShareType.Link]: 'linkShareType',\n [ShareType.Classroom]: 'classroomShareType',\n [ShareType.Live]: 'liveShareType',\n [ShareType.LegacyDirect]: 'legacyDirectShareType'\n};\n\nfunction getTitle({ type, classroomName, additionalTitleText }: ShareAvatarProps) {\n if (type === ShareType.Classroom && classroomName)\n return classroomName;\n\n let title = getPhrase(shareTypeTitlePhraseMap[type]);\n\n if (additionalTitleText)\n title += ' ' + additionalTitleText;\n\n return title;\n}\n\nfunction getClassroomSubtitle(classroomGroupCount: number, studentCount: number): string {\n if (classroomGroupCount && studentCount)\n return `${getPhrase('classroomGroupCount', { smartCount: classroomGroupCount })}, ${getPhrase('studentSubTitle', { smartCount: studentCount })}`;\n\n if (classroomGroupCount)\n return getPhrase('groupSubTitle', { smartCount: classroomGroupCount });\n\n if (studentCount)\n return getPhrase('studentSubTitle', { smartCount: studentCount });\n\n return getPhrase('allStudentsSubTitle');\n}\n\nfunction getLinkSubtitle(privacy: SharePrivacy) {\n if ([ SharePrivacy.JustMySchool, SharePrivacy.Protected ].includes(privacy))\n return getPhrase('respectRatingsSubTitle');\n\n if (privacy === SharePrivacy.JustMySchoolOverrideRestriction)\n return getPhrase('anyoneInSchoolSubTitle');\n\n if (privacy === SharePrivacy.ProtectedOverrideRestriction)\n return getPhrase('anyoneSignedInSubTitle');\n\n if (privacy === SharePrivacy.Public)\n return getPhrase('anyoneWithLinkSubTitle');\n\n if (privacy === SharePrivacy.PinCode)\n return getPhrase('anyoneWithPinSubTitle');\n}\n\nfunction getSubtitle({ type, privacy, studentCount = 0, classroomGroupCount = 0 }: ShareAvatarProps) {\n switch (type) {\n case ShareType.Classroom:\n return getClassroomSubtitle(classroomGroupCount, studentCount);\n\n case ShareType.Open:\n return getPhrase('openShareTypeSubTitle');\n\n case ShareType.Link:\n return getLinkSubtitle(privacy);\n \n case ShareType.Live:\n return getPhrase('liveShareTypeSubTitle');\n\n case ShareType.LegacyDirect:\n return getPhrase('legacyDirectTypeSubTitle');\n\n default:\n return getPhrase('publicShareTypeSubTitle');\n }\n}\n\ninterface ShareAvatarProps {\n type: ShareType;\n privacy: SharePrivacy;\n studentCount?: number;\n classroomGroupCount?: number;\n classroomName?: string;\n hideSubtitle?: boolean;\n subtitleText?: string;\n svgSize?: SvgContainerSize;\n additionalTitleText?: string;\n}\n\nexport function ShareAvatar(props: ShareAvatarProps): JSX.Element {\n return (\n <div className='d-flex align-items-center gap-2'>\n <div>\n <IconCircle\n svgName={icons[props.type]}\n variant={iconColours[props.type]}\n textVariant='white'\n svgWrapperClassName='p-1'\n svgSize={props.svgSize ?? SvgContainerSize.Standard}\n />\n </div>\n <div className='d-flex flex-column'>\n <p className='m-0'>{getTitle(props)}</p>\n {!props.hideSubtitle && <span className='text-secondary'>{props.subtitleText ?? getSubtitle(props)}</span>}\n </div>\n </div>\n );\n}","export enum SharePrivacy {\n Public = 'Public',\n PinCode = 'PinCode',\n PasswordProtected = 'PasswordProtected',\n ProtectedOverrideRestriction = 'ProtectedOverrideRestriction',\n JustMySchoolOverrideRestriction = 'JustMySchoolOverrideRestriction',\n Protected = 'Protected',\n JustMySchool = 'JustMySchool',\n Direct = 'Direct'\n}","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { SharePrivacy } from 'libs/shared/apps/share-v2/enums/SharePrivacy';\nimport type { SharePrivacyResponse } from 'libs/shared/apps/share-v2/interfaces/SharePrivacyResponse';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { ShareLinkStatus } from 'libs/shared/enums/ShareLinkStatus';\nimport type { BaseObject, YearGroup } from 'libs/shared/interfaces';\nimport { RestrictionHelper } from 'libs/shared/utils/RestrictionHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nconst namespace = 'sharev2.utils';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface GetIconAndTextOptions {\n linkExpireDate: string;\n isPasswordProtected: boolean;\n privacy: SharePrivacy;\n status: ShareLinkStatus;\n entityTypeId: MasterType;\n hasStudentExp: boolean;\n entity: BaseObject;\n yearGroups: YearGroup[];\n}\n\ninterface GetPrivateIconAndTextOptions {\n privacy: SharePrivacy;\n entityTypeId: MasterType;\n hasStudentExp: boolean;\n entity: BaseObject;\n yearGroups: YearGroup[];\n}\n\nexport const ShareLinkHelper = {\n getPrivateIconAndText: (options: GetPrivateIconAndTextOptions) => {\n const { entityTypeId, privacy, hasStudentExp, entity, yearGroups } = options;\n \n if (entityTypeId === MasterType.Topic || entityTypeId === MasterType.Series)\n return { icon: cvSvgLibrary.VisibleOn, text: getPhrase(hasStudentExp ? 'justMySchoolTeachers' : 'justMySchoolDescription') };\n \n /**\n * This is mainly for typescript, privacy will be an array for playlists\n * but that is handled above\n */\n if (Array.isArray(privacy))\n return;\n \n switch (privacy) {\n case SharePrivacy.Public:\n return { icon: cvSvgLibrary.VisibleOn, text: getPhrase('publicDescription') };\n case SharePrivacy.ProtectedOverrideRestriction:\n return { icon: cvSvgLibrary.VisibleOn, text: getPhrase('clickViewOnly') };\n case SharePrivacy.Protected:\n return {\n icon: cvSvgLibrary.Lock,\n text: ShareLinkHelper.getRespectRatingText(entity, yearGroups, hasStudentExp)\n };\n case SharePrivacy.JustMySchoolOverrideRestriction:\n return { icon: cvSvgLibrary.Lock, text: getPhrase(hasStudentExp ? 'justMySchoolTeachers' : 'justMySchoolDescription') };\n case SharePrivacy.JustMySchool:\n return {\n icon: cvSvgLibrary.Lock,\n text: ShareLinkHelper.getRespectRatingText(entity, yearGroups, hasStudentExp)\n };\n case SharePrivacy.PinCode:\n return { icon: cvSvgLibrary.Lock, text: getPhrase('pinDescription') };\n case SharePrivacy.PasswordProtected:\n return { icon: cvSvgLibrary.Lock, text: getPhrase('privateDescription') };\n default:\n return {};\n }\n },\n\n getIconAndText: (options: GetIconAndTextOptions) => {\n const { linkExpireDate, isPasswordProtected, status } = options;\n if (!linkExpireDate && !isPasswordProtected)\n return ShareLinkHelper.getPrivateIconAndText(options);\n \n if (!linkExpireDate)\n return { icon: cvSvgLibrary.Lock, text: getPhrase('password') };\n \n const isToday = DateHelper.isToday(linkExpireDate);\n const dayDifference = DateHelper.diffBetween(linkExpireDate, new Date(), 'day');\n \n if (!isPasswordProtected) {\n let text = isToday\n ? getPhrase('expiryToday')\n : getPhrase('expiry', { days: dayDifference });\n \n if (status === ShareLinkStatus.Expired)\n text = getPhrase('expired');\n \n return { icon: cvSvgLibrary.Timer, text };\n }\n \n let text = isToday\n ? getPhrase('passwordExpiryToday')\n : getPhrase('passwordExpiry', { days: dayDifference });\n \n if (status === ShareLinkStatus.Expired)\n text = getPhrase('passwordExpired');\n \n return { icon: cvSvgLibrary.Lock, text };\n },\n\n getRespectRatingText(video: BaseObject, yearGroups: YearGroup[], hasStudentExp: boolean) {\n if (!video || !yearGroups)\n return null;\n \n if (hasStudentExp)\n return getPhrase('justMySchoolTeachers');\n \n if (!VideoHelper.isVideoType(video))\n return getPhrase('collectionRating');\n \n const restriction = RestrictionHelper.getWeightedRestriction(video._restrictions?.value);\n \n /**\n * Restrictions without a year level are teacher restricitons, which means only admins can see it.\n */\n if (restriction && !restriction.yearGroup)\n return getPhrase('onlyAdmins');\n \n const rating = VideoHelper.getRating(video);\n \n let maxYearGroup: YearGroup;\n let minAllowedYearGroup: YearGroup;\n \n for (const yearGroup of yearGroups) {\n /**\n * If our year level is our new highest so far, save it\n */\n if (!maxYearGroup || yearGroup.value > maxYearGroup.value)\n maxYearGroup = yearGroup;\n \n /**\n * If the restriction is higher than this year level, skip it.\n */\n if (restriction && yearGroup.value <= restriction.yearGroup)\n continue;\n \n /**\n * If therating is higher than this year level's rating value, skip it.\n */\n if (rating && yearGroup.rating.value < rating.value)\n continue;\n \n /**\n * If our year level is the new lowest so far, save it\n */\n if (!minAllowedYearGroup || yearGroup.value < minAllowedYearGroup.value)\n minAllowedYearGroup = yearGroup;\n }\n \n /**\n * If no year levels are allowed, then it's staff only.\n */\n if (!minAllowedYearGroup)\n return getPhrase('onlyStaff');\n \n \n /**\n * If there's only one year level, and it's allowed, then we can just\n * say that everyone in your school can access it.\n */\n if (yearGroups.length === 1)\n return getPhrase('clickViewOnly');\n \n /**\n * We differentiate the copy if it's the highest year level or not. \n * Basically if we need to say \"X and above\" or not.\n */\n if (minAllowedYearGroup.value === maxYearGroup.value)\n return getPhrase('maxYearGroup', { yearGroup: maxYearGroup.name });\n \n return getPhrase('yearGroupRange', { yearGroup: minAllowedYearGroup.name });\n },\n\n getShareLinkAccessType(privacy: SharePrivacyResponse): 'private' | 'owner' | 'protected' {\n /**\n * If an entity is not a ClickView content and they cannot manage access\n * settings of the entity (which they can if its their private entity)\n * it means that its a TV content\n */\n if (privacy.isTvContent || privacy.isClickViewContent)\n return 'protected';\n\n if (privacy.canManageAccess)\n return 'owner';\n\n return 'private';\n }\n};","import React from 'react';\n\nimport { ScoreThresholds } from 'libs/shared/constants/ScoreThresholds';\n\nimport {\n getCircleClassName,\n getCircleContainerClassName,\n getCircleRadius,\n getColouredLabelClassName,\n getFormattedPercentage,\n getPercentageToFixed,\n isPending,\n ProgressCircleSize\n} from './PercentageIndicatorUtils';\n\nimport styles from './percentage-indicator.scss';\n\ninterface ProgressCircleProps {\n size: ProgressCircleSize;\n scoreThresholds?: ScoreThresholds;\n percentage?: number;\n}\n\nfunction ProgressCircle(props: ProgressCircleProps): JSX.Element {\n const ref = React.useCallback((circle: SVGCircleElement) => {\n if (!circle)\n return;\n\n const radius = circle.r.baseVal.value;\n const circumference = 2 * Math.PI * radius;\n const offset = circumference - props.percentage * circumference;\n\n circle.style.strokeDasharray = `${circumference} ${circumference}`;\n circle.style.strokeDashoffset = offset.toString();\n }, [props.percentage]);\n\n return (\n <svg>\n <circle r={getCircleRadius(props.size)} className={styles.backgroundCircle} />\n {!isPending(props.percentage) &&\n <circle\n ref={ref}\n r={getCircleRadius(props.size)}\n className={getCircleClassName(props.percentage, props.scoreThresholds)}\n />\n }\n </svg>\n );\n}\n\nexport enum PercentageIndicatorLayout {\n CircleOnly = 'circle_only',\n LabelOnly = 'label_only',\n LabelBefore = 'label_before',\n LabelInside = 'label_inside'\n}\n\ninterface PercentageIndicatorProps {\n layout: PercentageIndicatorLayout;\n percentage?: number; // Between 0 and 1 or undefined for pending\n className?: string;\n customLabel?: string;\n scoreThresholds?: ScoreThresholds;\n size?: ProgressCircleSize;\n}\n\nPercentageIndicator.defaultProps = {\n layout: PercentageIndicatorLayout.CircleOnly\n};\n\nexport function PercentageIndicator(props: PercentageIndicatorProps): JSX.Element {\n const percentageToFixed = getPercentageToFixed(props.percentage);\n\n const size = props.size ||\n (props.layout === PercentageIndicatorLayout.LabelInside\n ? ProgressCircleSize.Large\n : ProgressCircleSize.Small\n );\n\n const label = props.customLabel || getFormattedPercentage(percentageToFixed);\n\n if (props.layout === PercentageIndicatorLayout.LabelOnly)\n return (\n <span className={getColouredLabelClassName(percentageToFixed)}>\n {label}\n </span>\n );\n\n return (\n <div className={`d-flex align-items-center justify-content-between ${props.className ?? ''}`}>\n {props.layout === PercentageIndicatorLayout.LabelBefore &&\n <span className='me-2'>\n {label}\n </span>\n }\n <div className={getCircleContainerClassName(size, percentageToFixed)}>\n <ProgressCircle percentage={percentageToFixed} size={size} scoreThresholds={props.scoreThresholds} />\n {props.layout === PercentageIndicatorLayout.LabelInside &&\n <span className={styles.centredPercentageText}>\n {label}\n </span>\n }\n </div>\n </div>\n );\n}","import { ScoreThresholdDefaults, ScoreThresholds } from 'libs/shared/constants/ScoreThresholds';\n\nimport styles from './percentage-indicator.scss';\n\n/**\n * Values for width and strokeWidth are taken from progress-circle.scss.\n * If either are changed, they must be updated in both places.\n */\nconst CIRCLE_WIDTH = 2; // rem\nconst CIRCLE_WIDTH_LG = 5.8; // rem\nconst CIRCLE_STROKE_WIDTH = 0.2; // rem\nconst CIRCLE_STROKE_WIDTH_LG = 0.36; // rem\n \nexport enum ProgressCircleSize {\n Small = 'small',\n Large = 'large',\n ExtraSmall = 'extraSmall'\n}\n\nconst ProgressCircleSizeMap = {\n [ProgressCircleSize.ExtraSmall]: {\n size: CIRCLE_WIDTH\n },\n [ProgressCircleSize.Small]: {\n size: CIRCLE_WIDTH\n },\n [ProgressCircleSize.Large]: {\n size: CIRCLE_WIDTH_LG\n }\n};\n\n/**\n * radius = width / 2 - strokeWidth * 2\n */\nexport function getCircleRadius(size: ProgressCircleSize): string {\n const width = ProgressCircleSizeMap[size].size;\n const strokeWidth = size === ProgressCircleSize.Large ? CIRCLE_STROKE_WIDTH_LG : CIRCLE_STROKE_WIDTH;\n return `${width / 2 - strokeWidth * 2}rem`;\n}\n \nexport function getCircleClassName(\n percentage: number,\n scoreThresholds: ScoreThresholds = ScoreThresholdDefaults\n): string {\n if (percentage >= scoreThresholds.HIGH)\n return styles.circleSuccess;\n \n if (percentage >= scoreThresholds.MODERATE)\n return styles.circleWarning;\n \n return styles.circleDanger;\n}\n \nexport function getColouredLabelClassName(\n percentage: number,\n scoreThresholds: ScoreThresholds = ScoreThresholdDefaults\n): string {\n if (percentage >= scoreThresholds.HIGH)\n return 'text-success';\n \n if (percentage >= scoreThresholds.MODERATE)\n return 'text-warning';\n \n return 'text-danger';\n}\n \nexport function getCircleContainerClassName(size: ProgressCircleSize, percentage?: number): string {\n let className = `d-inline-block ${styles.circleContainer}`;\n \n if (size === ProgressCircleSize.Large)\n className += ` ${styles.lgCircleContainer}`;\n\n if (size === ProgressCircleSize.ExtraSmall)\n className += ` ${styles.xsCircleContainer}`;\n\n if (isPending(percentage))\n className += ` ${styles.pendingCircle}`;\n \n return className;\n}\n\nexport function getPercentageToFixed(percentage?: number): number | undefined {\n if (isPending(percentage))\n return;\n \n return +percentage.toFixed(2);\n}\n \nexport function getFormattedPercentage(percentage?: number): string {\n if (isPending(percentage))\n return `--%`;\n\n return `${Math.round(percentage * 100)}%`;\n}\n\nexport function isPending(percentage?: number): boolean {\n return typeof percentage !== 'number';\n}","import React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Badge, BadgeType } from 'libs/shared/components/badges/Badge';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\n\nimport { SvgContainer } from '../svg-container/SvgContainer';\n\nimport styles from './pill-tab-selector.scss';\n\ninterface TabContentsProps {\n tab: PillTab;\n}\n\nfunction TabContents(props: TabContentsProps): JSX.Element {\n return (\n <>\n {!!props.tab.svgName && (\n <div className={props.tab.name ? 'pe-1' : ''}>\n <SvgContainer svgName={props.tab.svgName} />\n </div>\n )}\n\n {props.tab.name}\n\n {typeof (props.tab.count) === 'number' && (\n <div className='ps-2'>\n <Badge type={BadgeType.Count} data={props.tab.count} />\n </div>\n )}\n </>\n );\n}\n\nexport interface PillTab {\n name: string;\n active: boolean;\n svgName?: string;\n\n className?: string;\n\n appLink?: Core.AppLink;\n onSelect?: () => void;\n\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n\n count?: number;\n}\n\ninterface PillTabSelectorProps {\n tabs: PillTab[];\n containerRef?: (el: HTMLElement) => void;\n listClassName?: string;\n className?: string;\n borderRadius?: 'sm' | 'lg'\n}\n\nPillTabSelector.defaultProps = {\n borderRadius: 'lg'\n};\n\nexport function PillTabSelector(props: PillTabSelectorProps): JSX.Element {\n function onSelectTab(tab: PillTab): void {\n if (tab.active || !tab.onSelect)\n return;\n\n tab.onSelect();\n\n if (tab.analyticsData && tab.analyticsOptions)\n AnalyticsHelper.logUserAction(tab.analyticsData, tab.analyticsOptions);\n }\n\n return (\n <nav className={props.className ?? ''} ref={props.containerRef}>\n <ul className={`\n list-unstyled d-inline-block m-0 ${styles.pillTabSelector}\n ${props.borderRadius ? styles.radiusSmall : ''}\n ${props.listClassName}\n `}>\n {props.tabs.map((tab, index) => {\n return (\n <li\n className={`\n p-0 ${styles.tab} ${tab.active ? 'btn btn-dark' : 'btn btn-outline-dark'}\n ${tab.name ? styles.minWidth : ''} ${tab.className}\n `}\n key={index}\n >\n {tab.appLink ? (\n <AppLink\n appLink={tab.appLink}\n analyticsData={tab.analyticsData}\n analyticsOptions={tab.analyticsOptions}\n className={`\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ${styles.tabLink}\n `}\n >\n <TabContents tab={tab} />\n </AppLink>\n ) : (\n <DivButton\n className={`\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ${styles.tabLink}\n `}\n onClick={() => onSelectTab(tab)}\n >\n <TabContents tab={tab} />\n </DivButton>\n )}\n </li>\n );\n })}\n </ul>\n </nav>\n );\n}\n","export interface ScoreThresholds {\n HIGH: number;\n MODERATE: number;\n}\n\nexport const ScoreThresholdDefaults: ScoreThresholds = {\n HIGH: 0.75,\n MODERATE: 0.5\n};\n\nexport const ScoreThresholdInsights: ScoreThresholds = {\n HIGH: 0.7,\n MODERATE: 0.7\n};","import React from 'react';\n\nimport { LayoutHelper } from 'libs/shared/utils/LayoutHelper';\n\nexport function useLockContentWidth(): void {\n React.useEffect(() => {\n LayoutHelper.lockContentWidth();\n return () => LayoutHelper.unlockContentWidth();\n }, []);\n}","import React from 'react';\n\nimport { StorageType } from 'libs/common/backbone/utils/LocalStorageHelper';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { useViewModel } from 'libs/common/react/hooks/UseViewModel';\n\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { VideoTypes } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { ViewModelKeys } from 'shared/constants/LiteViewModels';\n\nconst namespace = 'lite.insightsAdminAlert';\n\ninterface InsightsAdminAlertProps {\n hasAnalytics: boolean;\n analyticsUrl: string;\n video?: VideoTypes;\n}\n\n// eslint-disable-next-line rulesdir/require-view-title\nexport function InsightsAdminAlert(props: InsightsAdminAlertProps) {\n const [ show, setShow ] = useViewModel(\n ViewModelKeys.INSIGHTS_ADMIN_ALERT,\n true,\n { storage: StorageType.LocalStorage }\n );\n\n function onDismiss() {\n setShow(false);\n }\n\n function getAnalyticsUrl() {\n if (!props.video) return props.analyticsUrl;\n\n let videoRoute = '';\n\n if (props.video.typeId === MasterType.Interactive)\n videoRoute = `/interactives/${props.video.id}/views`;\n\n if (props.video.typeId === MasterType.Video)\n videoRoute = `/videos/${props.video.id}/views`;\n\n if (props.video.typeId === MasterType.Clip)\n videoRoute = `/clips/${props.video.id}/views`;\n\n return UrlHelper.safeUrlConcat(props.analyticsUrl, videoRoute);\n }\n\n if (!props.hasAnalytics || !show)\n return <></>;\n\n return (\n <div role='alert' className='d-flex justify-content-between align-items-center bg-light-blue rounded p-2 mb-4'>\n <div>\n <Text namespace={namespace} phrase='adminAlert' />\n <a className='text-info' href={getAnalyticsUrl()} target='_blank'>\n <Text namespace={namespace} phrase='analytics' />\n </a>.\n </div>\n <IconButton svgName={cvSvgLibrary.Close} className='text-blue' onClick={onDismiss} />\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"withDivider\":\"Tum3w\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { classNames } from 'libs/common/react/utils/ClassNameHelper';\n\nimport { ShareAvatar } from 'libs/shared/apps/share-v2/components/share-avatar/ShareAvatar';\nimport { Share } from 'libs/shared/apps/share-v2/interfaces/Share';\nimport { ShareHelper } from 'libs/shared/apps/share-v2/utils/ShareHelper';\nimport { ShareLinkHelper } from 'libs/shared/apps/share-v2/utils/ShareLinkHelper';\nimport { SharableEntity } from 'libs/shared/apps/share-v2/utils/ShareViewHelper';\nimport { SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { BaseObject, YearGroup } from 'libs/shared/interfaces';\n\nimport styles from './share-info.scss';\n\nconst namespace = 'insights.shareInfo';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst EXPIRE_DATE_FORMAT = 'DD/MM/YY';\n\ninterface ShareInfoProps {\n sharedObject: SharableEntity;\n share: Share;\n entity: BaseObject;\n yearGroups: YearGroup[];\n className?: string;\n classroomName?: string;\n}\n\nexport function ShareInfo(props: ShareInfoProps): JSX.Element {\n if (!props.sharedObject)\n return <></>;\n\n const hasExpiry = !!props.share.expireDate;\n const hasExpired = ShareHelper.hasShareExpired(props.share);\n const { text: privacyText } = ShareLinkHelper.getPrivateIconAndText({\n privacy: props.share.privacy,\n entityTypeId: props.sharedObject.typeId,\n hasStudentExp: false,\n entity: props.entity,\n yearGroups: props.yearGroups\n });\n\n function getExpiryText(): string {\n if (hasExpired)\n return `(${getPhrase('expired')})`;\n\n return `(${ShareHelper.getShareLocalExpiry(props.share, EXPIRE_DATE_FORMAT)})`;\n }\n\n return (\n <div className={classNames('d-flex flex-row align-items-center', styles.withDivider, props.className)}>\n <ShareAvatar\n privacy={props.share.privacy}\n type={props.share.type}\n svgSize={SvgContainerSize.Small}\n classroomName={props.classroomName}\n additionalTitleText={hasExpiry && getExpiryText()}\n hideSubtitle\n />\n {!hasExpiry && !!privacyText && <p className='mb-0'>{privacyText}</p>}\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"withDivider\":\"ZSzT3\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { StorageType } from 'libs/common/backbone/utils/LocalStorageHelper';\nimport { useViewModel } from 'libs/common/react/hooks/UseViewModel';\nimport { classNames } from 'libs/common/react/utils/ClassNameHelper';\n\nimport { DateRangeQueryParams } from 'libs/shared/apps/analytics/interfaces/DateRangeQueryParams';\nimport { ShareType } from 'libs/shared/apps/share-v2/enums/ShareType';\nimport { Share } from 'libs/shared/apps/share-v2/interfaces/Share';\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { ActionsDropdown } from 'libs/shared/components/actions/ActionsDropdown';\nimport { Breadcrumb, Breadcrumbs, PartialBreadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\nimport { PillTab, PillTabSelector } from 'libs/shared/components/pill-tab-selector/PillTabSelector';\nimport { SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { ToggleSwitch } from 'libs/shared/components/toggle-switch/ToggleSwitch';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { SharedViewModelKeys } from 'libs/shared/constants/SharedViewModelKeys';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { Classroom, VideoTypes, YearGroup } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { usePluginHelper } from 'shared/hooks/use-plugin-helper/usePluginHelper';\nimport { getShareOptionsAppLink } from 'shared/utils/ObjectAppLinkHelper';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\n\nimport { InsightsAdminAlert } from 'apps/my-shares/components/insights-admin-alert/InsightsAdminAlert';\nimport { ShareInfo } from 'apps/my-shares/components/share-info/ShareInfo';\nimport { getShareObjectActions } from 'apps/my-shares/views/my-shares/MySharesViewUtils';\n\nimport styles from './insights-header.scss';\n\nconst namespace = 'insights.header';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface AnonymiseNamesToggleProps {\n anonymiseUsers: boolean;\n toggleAnonymiseUsers: () => void;\n}\n\nfunction AnonymiseNamesToggle(props: AnonymiseNamesToggleProps) {\n return (\n <div>\n <label htmlFor='anonymiseNames' className='mb-0 pe-3'><Text namespace={namespace} phrase='anonymiseNames' /></label>\n <ToggleSwitch id='anonymiseNames' on={props.anonymiseUsers} onClick={props.toggleAnonymiseUsers} />\n </div>\n );\n}\n\ninterface DemoTooltipProps extends React.PropsWithChildren {\n isDemo: boolean;\n}\n\nfunction DemoTooltip(props: DemoTooltipProps) {\n return (\n <Tooltip\n id='audienceFilter'\n title={getPhrase('demoOnly')}\n spanHack={props.isDemo}\n >\n <div className={props.isDemo ? 'pointer-events-none' : ''}>\n {props.children}\n </div>\n </Tooltip>\n );\n}\n\ninterface InsightsHeaderProps {\n video: VideoTypes;\n hasClassrooms?: boolean;\n dateRangeAppLinkParams?: DateRangeQueryParams;\n tabs: PillTab[]\n isDemo?: boolean;\n analyticsWebUrl?: string;\n hasAnalytics?: boolean;\n share: Share;\n yearGroups: YearGroup[];\n classroom?: Classroom;\n}\n\nexport function InsightsHeader(props: InsightsHeaderProps) {\n const [ anonymiseUsers, setAnonymiseUsers ] = useViewModel<boolean>(\n SharedViewModelKeys.ANONYMISE_USERS,\n false,\n { storage: StorageType.LocalStorage }\n );\n\n const { isPlugin } = usePluginHelper();\n\n const shareOptionsAppLink = getShareOptionsAppLink(props.share);\n\n function getBreadcrumbs(): Breadcrumb[] {\n if (!props.video) return [];\n if (!props.share) return [];\n\n let rootBreadcrumb: Breadcrumb = {\n name: getPhrase('shares'),\n appLink: {\n application: AppChannels.MY_SHARES,\n action: Actions.MyShares.HOME\n }\n };\n\n if (props.share.type === ShareType.Classroom) {\n rootBreadcrumb = {\n name: getPhrase('classrooms'),\n appLink: {\n application: AppChannels.CLASSROOMS,\n action: Actions.Classrooms.HOME\n }\n };\n }\n\n if (props.share.type === ShareType.Open) {\n rootBreadcrumb = {\n name: getPhrase('openClassrooms'),\n appLink: {\n application: AppChannels.CLASSROOMS,\n action: Actions.Classrooms.OPEN_CLASSROOMS\n }\n };\n }\n\n return [\n rootBreadcrumb,\n {\n name: props.video.name,\n active: true\n }\n ];\n }\n\n function getActions() {\n const actions: ActionOptions[] = [];\n\n if (props.video?.typeId === MasterType.Interactive) {\n actions.push({\n label: getPhrase('generateReport'),\n svgName: cvSvgLibrary.Print,\n appLink: {\n application: AppChannels.MY_SHARES,\n action: Actions.MyShares.INTERACTIVE_GENERATE_REPORT,\n args: [props.video.id]\n }\n });\n }\n\n return [ ...actions, ...getShareObjectActions({\n share: props.share,\n sharedObject: props.video,\n isPlugin,\n hideShareOptionsActions: true\n }) ];\n }\n\n function getVideoEntityPhrase() {\n if (props.video.typeId === MasterType.Interactive) return 'viewInteractive';\n if (props.video.typeId === MasterType.Clip) return 'viewClip';\n\n return 'viewVideo';\n }\n\n return (\n <div>\n <InsightsAdminAlert\n analyticsUrl={props.analyticsWebUrl}\n hasAnalytics={props.hasAnalytics}\n video={props.video}\n />\n <section className='mb-4'>\n <div className='d-flex justify-content-between mb-3'>\n {props.video\n ? <Breadcrumbs breadcrumbs={getBreadcrumbs()} />\n : <PartialBreadcrumbs />\n }\n <div className='d-flex gap-2'>\n {!isPlugin &&\n <DemoTooltip isDemo={props.isDemo}>\n <IconButton svgName={cvSvgLibrary.Share} className='btn btn-outline-dark' appLink={shareOptionsAppLink}>\n <Text namespace={namespace} phrase='shareOptions' />\n </IconButton>\n </DemoTooltip>\n }\n <DemoTooltip isDemo={props.isDemo}>\n <ActionsDropdown\n dropdownToggleClassName='btn btn-outline-dark'\n actions={getActions()}\n />\n </DemoTooltip>\n </div>\n </div>\n \n <div className='d-flex justify-content-between mb-3'>\n <div className='me-2'>\n {props.video && (\n <>\n <h1 className='mb-0 d-inline me-2'>{props.video.name}</h1>\n {!props.isDemo &&\n <Tooltip title={getPhrase(getVideoEntityPhrase())} type='text' spanHack spanHackClassName='d-inline-block align-text-bottom'>\n <IconButton\n svgName={cvSvgLibrary.NewWindow}\n appLink={VideoAppLinkHelper.getAppLink(props.video)}\n svgSize={SvgContainerSize.Large}\n className='d-inline-block'\n customSize\n />\n </Tooltip>\n }\n </>\n )}\n {!props.video && <h1 className='partial-loading-background' style={{ width: '20rem' }}> </h1>}\n </div>\n </div>\n <div className={classNames('d-flex flex-row align-items-center mb-3', styles.withDivider)}>\n <ShareInfo\n sharedObject={props.video}\n share={props.share}\n entity={props.video}\n yearGroups={props.yearGroups}\n classroomName={props.classroom?.name}\n />\n <AnonymiseNamesToggle\n anonymiseUsers={anonymiseUsers}\n toggleAnonymiseUsers={() => setAnonymiseUsers(!anonymiseUsers)}\n />\n </div>\n <div className='d-flex align-items-center mb-4'>\n <PillTabSelector tabs={props.tabs} />\n </div>\n </section>\n </div>\n );\n}","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { Share } from 'libs/shared/apps/share-v2/interfaces/Share';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { getInsightsHeatmapAppLink, getInsightsOverviewAppLink, getInsightsQuestionsAppLink, getInsightsStudentsAppLink } from 'shared/utils/ObjectAppLinkHelper';\n\nconst namespace = 'shared.insightsUtils';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport type InsightsTabs = 'insights' | 'heatmap' | 'results' | 'questions';\n\nexport function getInsightsVideoTabs(share: Share, active: InsightsTabs, params?: HashObject) {\n return [\n {\n name: getPhrase('insights'),\n active: active === 'insights',\n appLink: getInsightsOverviewAppLink(share, params)\n },\n {\n name: getPhrase('heatmap'),\n active: active === 'heatmap',\n appLink: getInsightsHeatmapAppLink(share, params)\n }\n ];\n}\n\nexport function getInsightsInteractiveTabs(share: Share, active: InsightsTabs) {\n return [\n {\n name: getPhrase('insights'),\n active: active === 'insights',\n appLink: getInsightsOverviewAppLink(share)\n },\n {\n name: getPhrase('results'),\n active: active === 'results',\n appLink: getInsightsStudentsAppLink(share)\n },\n {\n name: getPhrase('questions'),\n active: active === 'questions',\n appLink: getInsightsQuestionsAppLink(share)\n },\n {\n name: getPhrase('heatmap'),\n active: active === 'heatmap',\n appLink: getInsightsHeatmapAppLink(share)\n }\n ];\n}\n\nexport function getInsightsDemoInteractiveTabs(id: string, active: InsightsTabs, params: HashObject) {\n return [\n {\n name: getPhrase('insights'),\n active: active === 'insights',\n appLink: {\n application: AppChannels.MY_SHARES,\n action: Actions.MyShares.INTERACTIVE_OVERVIEW_DEMO,\n args: [id],\n params\n }\n },\n {\n name: getPhrase('results'),\n active: active === 'results',\n appLink: {\n application: AppChannels.MY_SHARES,\n action: Actions.MyShares.INTERACTIVE_STUDENTS_DEMO,\n args: [id],\n params\n }\n },\n {\n name: getPhrase('questions'),\n active: active === 'questions',\n appLink: {\n application: AppChannels.MY_SHARES,\n action: Actions.MyShares.INTERACTIVE_QUESTIONS_DEMO,\n args: [id],\n params\n }\n },\n {\n name: getPhrase('heatmap'),\n active: active === 'heatmap',\n appLink: {\n application: AppChannels.MY_SHARES,\n action: Actions.MyShares.INTERACTIVE_HEATMAP_DEMO,\n args: [id],\n params\n }\n }\n ];\n}","// extracted by mini-css-extract-plugin\nexport default {\"circleContainer\":\"p8Vgz\",\"backgroundCircle\":\"asGGE\",\"circleSuccess\":\"PXLNj\",\"circleWarning\":\"ZckRN\",\"circleDanger\":\"slBRg\",\"lgCircleContainer\":\"N8KCI\",\"xsCircleContainer\":\"RPqZ2\",\"pendingCircle\":\"DKrcq\",\"centredPercentageText\":\"tpmLR\"};","// extracted by mini-css-extract-plugin\nexport default {\"pillTabSelector\":\"Hdi6o\",\"tab\":\"RvNxr\",\"minWidth\":\"GHSz9\",\"radiusSmall\":\"VhJJa\",\"tabLink\":\"WFyvo\"};"],"names":["getPhrase","anonymiseUserName","user","shouldAnonymise","userId","id","sessionId","seed","guid","hash","i","length","charCodeAt","Math","abs","guidToSeed","floor","Date","getMinutes","dictionaries","separator","style","icons","iconColours","shareTypeTitlePhraseMap","ShareAvatar","props","className","svgName","type","variant","textVariant","svgWrapperClassName","svgSize","S","classroomName","additionalTitleText","title","getTitle","hideSubtitle","subtitleText","privacy","studentCount","classroomGroupCount","smartCount","getClassroomSubtitle","includes","getLinkSubtitle","getSubtitle","SharePrivacy","ShareLinkHelper","getPrivateIconAndText","options","entityTypeId","hasStudentExp","entity","yearGroups","icon","text","Array","isArray","getRespectRatingText","getIconAndText","linkExpireDate","isPasswordProtected","status","isToday","dayDifference","days","video","restriction","_restrictions","value","yearGroup","maxYearGroup","minAllowedYearGroup","rating","name","getShareLinkAccessType","isTvContent","isClickViewContent","canManageAccess","PercentageIndicatorLayout","ProgressCircle","ref","circle","radius","r","baseVal","circumference","PI","offset","percentage","strokeDasharray","strokeDashoffset","toString","size","scoreThresholds","PercentageIndicator","percentageToFixed","layout","LabelInside","label","customLabel","LabelOnly","LabelBefore","defaultProps","CircleOnly","ProgressCircleSize","CIRCLE_STROKE_WIDTH","CIRCLE_STROKE_WIDTH_LG","ProgressCircleSizeMap","ExtraSmall","Small","Large","getCircleRadius","width","strokeWidth","getCircleClassName","HIGH","MODERATE","getColouredLabelClassName","getCircleContainerClassName","isPending","getPercentageToFixed","toFixed","getFormattedPercentage","round","TabContents","tab","count","data","PillTabSelector","containerRef","borderRadius","listClassName","tabs","map","index","active","key","appLink","analyticsData","analyticsOptions","onClick","onSelect","onSelectTab","ScoreThresholdDefaults","ScoreThresholdInsights","useLockContentWidth","namespace","InsightsAdminAlert","storage","show","setShow","hasAnalytics","role","phrase","href","analyticsUrl","videoRoute","typeId","getAnalyticsUrl","target","LanguageService","EXPIRE_DATE_FORMAT","ShareInfo","sharedObject","hasExpiry","share","expireDate","hasExpired","ShareHelper","privacyText","SvgContainer","AnonymiseNamesToggle","htmlFor","Text","ToggleSwitch","on","anonymiseUsers","toggleAnonymiseUsers","DemoTooltip","Tooltip","spanHack","isDemo","children","InsightsHeader","SharedViewModelKeys","setAnonymiseUsers","isPlugin","usePluginHelper","shareOptionsAppLink","analyticsWebUrl","Breadcrumbs","breadcrumbs","rootBreadcrumb","application","action","ShareType","getBreadcrumbs","IconButton","ActionsDropdown","dropdownToggleClassName","actions","MasterType","push","args","hideShareOptionsActions","getActions","spanHackClassName","VideoAppLinkHelper","customSize","classroom","getInsightsVideoTabs","params","getInsightsInteractiveTabs","getInsightsDemoInteractiveTabs"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[1087],{95834:(e,t,n)=>{n.d(t,{J:()=>r});var r={table:"striped-list no-full-width pb-3",header:"fw-semibold pb-1",headerCell:"py-2 ps-2 text-nowrap",row:"striped-row rounded",cell:"d-flex align-items-center p-2"}},38502:(e,t,n)=>{n.d(t,{r:()=>d});var r=n(32735),l=n(49985),o=n(15611),a=n(18559),i=n(11607),c=n(83914),s=n(22771);function u(e){return r.createElement(r.Fragment,null,!!e.tab.svgName&&r.createElement("div",{className:e.tab.name?"pe-1":""},r.createElement(c.x,{svgName:e.tab.svgName})),e.tab.name,"number"==typeof e.tab.count&&r.createElement("div",{className:"ps-2"},r.createElement(a.C,{type:a.g.Count,data:e.tab.count})))}function d(e){var t;return r.createElement("nav",{className:null!==(t=e.className)&&void 0!==t?t:"",ref:e.containerRef},r.createElement("ul",{className:"\n list-unstyled d-inline-block m-0 ".concat(s.Z.pillTabSelector,"\n ").concat(e.borderRadius?s.Z.radiusSmall:"","\n ").concat(e.listClassName,"\n ")},e.tabs.map((function(e,t){return r.createElement("li",{className:"\n p-0 ".concat(s.Z.tab," ").concat(e.active?"btn btn-dark":"btn btn-outline-dark","\n ").concat(e.name?s.Z.minWidth:""," ").concat(e.className,"\n "),key:t},e.appLink?r.createElement(o.F,{appLink:e.appLink,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,className:"\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ".concat(s.Z.tabLink,"\n ")},r.createElement(u,{tab:e})):r.createElement(i.L,{className:"\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ".concat(s.Z.tabLink,"\n "),onClick:function(){return function(e){!e.active&&e.onSelect&&(e.onSelect(),e.analyticsData&&e.analyticsOptions&&l.k.logUserAction(e.analyticsData,e.analyticsOptions))}(e)}},r.createElement(u,{tab:e})))}))))}d.defaultProps={borderRadius:"lg"}},6748:(e,t,n)=>{n.d(t,{i:()=>R});var r=n(32735),l=n(42648),o=n(35509),a=n(91967),i=n(15611),c=n(17808),s=n(1287),u=n(83914),d=n(90281),m={opacity:"0.8",cursor:"grabbing"},f=n(35223);function v(e){return function(e){if(Array.isArray(e))return p(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||b(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function b(e,t){if(e){if("string"==typeof e)return p(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?p(e,t):void 0}}function p(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function y(e){var t,n,r,l;return{canScrollLeft:(null===(t=e.current)||void 0===t?void 0:t.scrollLeft)>0,canScrollRight:(null===(n=e.current)||void 0===n?void 0:n.scrollLeft)+1<(null===(r=e.current)||void 0===r?void 0:r.scrollWidth)-(null===(l=e.current)||void 0===l?void 0:l.clientWidth)}}const g={sortIndicator:"gFhu0",scrollContainer:"sWUp9",scrollbarTrack:"Vn2qM"};function h(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var S=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var l=0;for(r=Object.getOwnPropertySymbols(e);l<r.length;l++)t.indexOf(r[l])<0&&Object.prototype.propertyIsEnumerable.call(e,r[l])&&(n[r[l]]=e[r[l]])}return n};function w(e){var t,n;return e.column.canSort?r.createElement("span",{className:"".concat(g.sortIndicator,"\n ").concat(e.column.isSorted?"":"text-secondary","\n ").concat(null!==(n=null===(t=e.theme)||void 0===t?void 0:t.sortIndicator)&&void 0!==n?n:"")},r.createElement(u.x,{svgName:e.column.isSortedDesc||!e.column.isSorted?f.vn.ArrowRight:f.vn.ArrowLeft,size:u.S.Small})):r.createElement(r.Fragment,null)}function E(e){var t,n,l,u,d,f,b,p,y={columns:e.columns,data:e.data,disableSortBy:!e.enableSort,manualSortBy:e.manualSort,autoResetHiddenColumns:e.autoResetHiddenColumns,autoResetSortBy:e.autoResetSortBy,initialState:{sortBy:e.initialSortBy||[]}};e.initialSelectedRowIds&&(y.initialState={selectedRowIds:(b=e.initialSelectedRowIds,p={},b.forEach((function(e){return p[e]=!0})),p)}),e.getRowId&&(y.getRowId=e.getRowId);var g,S=o.useTable.apply(void 0,[y].concat((g=function(e){var t=[o.useSortBy,o.useRowSelect,"flex"===e.layout?o.useFlexLayout:o.useBlockLayout];return e.allowFiltering&&(t=[].concat(v(t),[o.useFilters])),e.allowGlobalFiltering&&(t=[].concat(v(t),[o.useGlobalFilter])),t}(Object.assign({},e)),function(e){if(Array.isArray(e))return h(e)}(g)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(g)||function(e,t){if(e){if("string"==typeof e)return h(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?h(e,t):void 0}}(g)||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=S.getTableProps,R=S.getTableBodyProps,O=S.headerGroups,k=S.rows,C=S.prepareRow,N=S.toggleAllRowsSelected,j=S.setGlobalFilter,A=S.setHiddenColumns,x=S.state.sortBy;function I(){return!k.length&&e.emptyState?e.emptyState:k.map((function(t){C(t);var n=function(t){var n,r,l,o,i,c=a.q.isFunction(null===(n=e.theme)||void 0===n?void 0:n.row)?e.theme.row(t):null!==(l=null===(r=e.theme)||void 0===r?void 0:r.row)&&void 0!==l?l:"";return t.isSelected&&(null===(o=e.theme)||void 0===o?void 0:o.selectedRow)&&(c+=" ".concat(null===(i=e.theme)||void 0===i?void 0:i.selectedRow)),e.onSelectRow&&(c+=" cursor-pointer"),e.enableSortableRows&&(c+=" cursor-grab"),c}(t),l=!!e.getRowAppLink&&e.getRowAppLink(t);function o(){e.onSelectRow&&(e.allowSelectMultipleRows||N(!1),e.onSelectRow(t),t.toggleRowSelected(!0))}function c(e,a){var c=function(e,t){return"dragAttributes"in e&&"dragListeners"in e?Object.assign(Object.assign(Object.assign({},e.dragAttributes),e.dragListeners),{"aria-roledescription":"Sortable row",ref:t}):{}}(e,a);return l?r.createElement("div",{role:"row",key:t.id},r.createElement(i.F,Object.assign({},e,c,{className:n,appLink:l}),L(t))):r.createElement("div",Object.assign({},e,c,{key:t.id,role:"row",className:n,onClick:o}),L(t))}var u=t.getRowProps();return e.enableSortableRows?r.createElement(s.W,{id:t.original.id,key:t.id,childProps:u,childComponent:r.forwardRef((function(e,t){return c(e,t)}))}):c(u)}))}function L(t){return t.cells.map((function(n){var l=function(t,n){var r,l,o="";return"function"==typeof(null===(r=e.theme)||void 0===r?void 0:r.cell)&&(o=e.theme.cell(t,n)),"string"==typeof(null===(l=e.theme)||void 0===l?void 0:l.cell)&&(o=e.theme.cell),e.onSelectCell&&(o+=" cursor-pointer"),o}(t,n);return r.createElement("div",Object.assign({key:n.column.id},n.getCellProps(),{className:l,onClick:function(){e.onSelectCell&&e.onSelectCell(n)}}),n.render("Cell"))}))}return r.useEffect((function(){e.onSort&&e.onSort(x)}),[x]),r.useEffect((function(){e.globalFilter&&j(e.globalFilter)}),[e.globalFilter]),r.useEffect((function(){e.hiddenColumns&&A(e.hiddenColumns)}),[e.hiddenColumns&&e.hiddenColumns.length]),r.createElement("div",Object.assign({},E(),{className:null!==(n=null===(t=e.theme)||void 0===t?void 0:t.table)&&void 0!==n?n:""}),r.createElement("div",{className:null!==(u=null===(l=e.theme)||void 0===l?void 0:l.header)&&void 0!==u?u:""},O.map((function(t){var n,l;return r.createElement("div",Object.assign({},t.getHeaderGroupProps(),{className:null!==(l=null===(n=e.theme)||void 0===n?void 0:n.headerRow)&&void 0!==l?l:""}),t.headers.map((function(t){var n,l;return r.createElement("div",Object.assign({},t.getHeaderProps(t.getSortByToggleProps()),{className:null!==(l=null===(n=e.theme)||void 0===n?void 0:n.headerCell)&&void 0!==l?l:""}),t.render("Header",{renderSortIndicator:function(){return r.createElement(w,{column:t,theme:e.theme})}}),!t.hideSortIndicator&&r.createElement(w,{column:t,theme:e.theme}))})))}))),r.createElement("div",Object.assign({},R(),{className:null!==(f=null===(d=e.theme)||void 0===d?void 0:d.body)&&void 0!==f?f:""}),e.enableSortableRows?r.createElement(c.Q,{ids:k.map((function(e){return e.original.id})),getDragOverlay:function(t){var n,l,o=k.findIndex((function(e){return e.original.id===t})),a=k[o];return r.createElement("div",Object.assign({},e,{className:(n=e.theme,l="g-0 ",n&&(l+=n.row),l),style:m}),L(a))},onSortEnd:e.onSortingRowsEnd},I()):I()))}function R(e){var t=e.enableSlider,n=e.scrollIncrement,o=e.scrollable,i=S(e,["enableSlider","scrollIncrement","scrollable"]),c=function(){var e,t,n=r.useRef(null),l=(e=r.useState(y(n)),t=2,function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,l,o,a,i=[],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)&&(i.push(r.value),i.length!==t);c=!0);}catch(e){s=!0,l=e}finally{try{if(!c&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(s)throw l}}return i}}(e,t)||b(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.")}()),o=l[0],i=l[1],c=a.q.throttle((function(){i(y(n))}),200),s=r.useCallback((function(e){var t;n.current&&(null===(t=n.current)||void 0===t||t.removeEventListener("scroll",c)),e&&(i(y(n)),e.addEventListener("scroll",c)),n.current=e}),[]);return r.useEffect((function(){(null==n?void 0:n.current)&&i(y(n))}),[n]),{ref:s,scrollState:o,scroll:function(e){var t;null===(t=n.current)||void 0===t||t.scrollBy({left:e,top:0,behavior:"smooth"})}}}(),s=c.ref,u=c.scrollState,m=c.scroll;if(o)return r.createElement(l.$B,{renderTrackHorizontal:function(){return r.createElement("div",{className:g.scrollbarTrack})},autoHeightMax:1e4,autoHeight:!0},r.createElement(E,Object.assign({},i)));if(!t)return r.createElement(E,Object.assign({},i));function f(e){m(n*("right"===e?1:-1))}return r.createElement("div",{className:"mx-n4 overflow-x-hidden overflow-y-hidden"},r.createElement("div",{className:"px-4"},r.createElement("div",{className:"position-relative"},r.createElement(d.W,{direction:d.f.Left,onClick:function(){return f("left")},hide:!u.canScrollLeft}),r.createElement("div",{className:"".concat(g.scrollContainer," ").concat(e.scrollContainerClassName),ref:s},r.createElement(E,Object.assign({},i))),r.createElement(d.W,{direction:d.f.Right,onClick:function(){return f("right")},hide:!u.canScrollRight}))))}R.defaultProps={scrollIncrement:250,scrollable:!1,layout:"flex"}},2523:(e,t,n)=>{n.d(t,{w:()=>f});var r=n(32735),l=n(23481),o=n(81886),a=n(38502),i=n(75795),c=n(14070),s=n(97291),u=l.T.encloseNamespace("share.sharesHeader"),d={application:s.O.MY_SHARES,action:c.e.MyShares.SHARED_BY_ME},m={application:s.O.MY_SHARES,action:c.e.MyShares.SHARED_WITH_ME};function f(){return r.createElement("div",{className:"pb-3"},r.createElement("h1",{className:"h2 mb-3"},u("shares")),r.createElement(a.r,{tabs:(t=null===(e=i.O.getCurrentRoute())||void 0===e?void 0:e.appLink,[{name:u("sharedByMe"),onSelect:function(){return o.Q.C$.trigger(d)},active:(null==t?void 0:t.action)===d.action},{name:u("sharedWithMe"),onSelect:function(){return o.Q.C$.trigger(m)},active:(null==t?void 0:t.action)===m.action}])}));var e,t}},22771:(e,t,n)=>{n.d(t,{Z:()=>r});const r={pillTabSelector:"Hdi6o",tab:"RvNxr",minWidth:"GHSz9",radiusSmall:"VhJJa",tabLink:"WFyvo"}}}]);
|
|
2
|
+
//# sourceMappingURL=1087-861be5211f-lite.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/1087-861be5211f-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/apps/share/constants/TableTheme.ts","file:///app/packages/libs/shared/src/components/pill-tab-selector/PillTabSelector.tsx","file:///app/packages/libs/shared/src/constants/DragOverlayStyles.ts","file:///app/packages/libs/shared/src/components/table/TableUtils.ts","file:///app/packages/libs/shared/src/components/table/table.scss","file:///app/packages/libs/shared/src/components/table/Table.tsx","file:///app/packages/projects/lite/src/apps/share/components/shares-header/SharesHeader.tsx","file:///app/packages/libs/shared/src/components/pill-tab-selector/pill-tab-selector.scss"],"sourcesContent":["import { TableTheme } from 'libs/shared/components/table/Table';\n\nexport const SHARES_TABLE_THEME: TableTheme = {\n table: 'striped-list no-full-width pb-3',\n header: 'fw-semibold pb-1',\n headerCell: `py-2 ps-2 text-nowrap`,\n row: 'striped-row rounded',\n cell: 'd-flex align-items-center p-2'\n};","import React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Badge, BadgeType } from 'libs/shared/components/badges/Badge';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\n\nimport { SvgContainer } from '../svg-container/SvgContainer';\n\nimport styles from './pill-tab-selector.scss';\n\ninterface TabContentsProps {\n tab: PillTab;\n}\n\nfunction TabContents(props: TabContentsProps): JSX.Element {\n return (\n <>\n {!!props.tab.svgName && (\n <div className={props.tab.name ? 'pe-1' : ''}>\n <SvgContainer svgName={props.tab.svgName} />\n </div>\n )}\n\n {props.tab.name}\n\n {typeof (props.tab.count) === 'number' && (\n <div className='ps-2'>\n <Badge type={BadgeType.Count} data={props.tab.count} />\n </div>\n )}\n </>\n );\n}\n\nexport interface PillTab {\n name: string;\n active: boolean;\n svgName?: string;\n\n className?: string;\n\n appLink?: Core.AppLink;\n onSelect?: () => void;\n\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n\n count?: number;\n}\n\ninterface PillTabSelectorProps {\n tabs: PillTab[];\n containerRef?: (el: HTMLElement) => void;\n listClassName?: string;\n className?: string;\n borderRadius?: 'sm' | 'lg'\n}\n\nPillTabSelector.defaultProps = {\n borderRadius: 'lg'\n};\n\nexport function PillTabSelector(props: PillTabSelectorProps): JSX.Element {\n function onSelectTab(tab: PillTab): void {\n if (tab.active || !tab.onSelect)\n return;\n\n tab.onSelect();\n\n if (tab.analyticsData && tab.analyticsOptions)\n AnalyticsHelper.logUserAction(tab.analyticsData, tab.analyticsOptions);\n }\n\n return (\n <nav className={props.className ?? ''} ref={props.containerRef}>\n <ul className={`\n list-unstyled d-inline-block m-0 ${styles.pillTabSelector}\n ${props.borderRadius ? styles.radiusSmall : ''}\n ${props.listClassName}\n `}>\n {props.tabs.map((tab, index) => {\n return (\n <li\n className={`\n p-0 ${styles.tab} ${tab.active ? 'btn btn-dark' : 'btn btn-outline-dark'}\n ${tab.name ? styles.minWidth : ''} ${tab.className}\n `}\n key={index}\n >\n {tab.appLink ? (\n <AppLink\n appLink={tab.appLink}\n analyticsData={tab.analyticsData}\n analyticsOptions={tab.analyticsOptions}\n className={`\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ${styles.tabLink}\n `}\n >\n <TabContents tab={tab} />\n </AppLink>\n ) : (\n <DivButton\n className={`\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ${styles.tabLink}\n `}\n onClick={() => onSelectTab(tab)}\n >\n <TabContents tab={tab} />\n </DivButton>\n )}\n </li>\n );\n })}\n </ul>\n </nav>\n );\n}\n","export const DragOverlayStyles = { opacity: '0.8', cursor: 'grabbing' };","import React from 'react';\nimport { PluginHook, useBlockLayout, useFilters, useFlexLayout, useGlobalFilter, useRowSelect, useSortBy } from 'react-table';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { HashObject } from 'libs/common/react/interfaces';\n\ninterface PluginOptions {\n allowFiltering?: boolean;\n allowGlobalFiltering?: boolean;\n layout?: 'flex' | 'block';\n}\n\nexport function getPlugins<T extends HashObject>(props: PluginOptions): PluginHook<T>[] {\n let plugins: PluginHook<T>[] = [\n useSortBy,\n useRowSelect,\n props.layout === 'flex' ? useFlexLayout : useBlockLayout\n ];\n\n if (props.allowFiltering)\n plugins = [\n ...plugins,\n useFilters\n ];\n\n if (props.allowGlobalFiltering)\n plugins = [\n ...plugins,\n useGlobalFilter\n ];\n\n return plugins;\n}\n\nexport function getSelectedRowIds(ids: string[]): Record<string, boolean> {\n const idHash: Record<string, boolean> = {};\n\n ids.forEach(id => idHash[id] = true);\n\n return idHash;\n}\n\ninterface TableScrollState {\n canScrollLeft: boolean;\n canScrollRight: boolean;\n}\n\nfunction calculateScrollState(ref: React.MutableRefObject<HTMLDivElement>): TableScrollState {\n const canScrollLeft = ref.current?.scrollLeft > 0;\n const canScrollRight = (ref.current?.scrollLeft + 1) < ref.current?.scrollWidth - ref.current?.clientWidth;\n\n return { canScrollLeft, canScrollRight };\n}\n\ninterface UseTableScroll {\n ref: (el: HTMLDivElement) => void;\n scrollState: TableScrollState;\n scroll: (scrollBy: number) => void;\n}\n\nexport function useTableScroll(): UseTableScroll {\n const elRef = React.useRef<HTMLDivElement>(null);\n const [ scrollState, setScrollState ] = React.useState<TableScrollState>(calculateScrollState(elRef));\n\n function onScroll(): void {\n setScrollState(calculateScrollState(elRef));\n }\n\n function scroll(scrollBy: number): void {\n elRef.current?.scrollBy({ left: scrollBy, top: 0, behavior: 'smooth' });\n }\n\n const throttledOnScroll = FunctionHelper.throttle(onScroll, 200);\n\n const ref = React.useCallback((el: HTMLDivElement) => {\n if (elRef.current) {\n elRef.current?.removeEventListener('scroll', throttledOnScroll);\n }\n\n if (el) {\n setScrollState(calculateScrollState(elRef));\n el.addEventListener('scroll', throttledOnScroll);\n }\n\n elRef.current = el;\n }, []);\n\n React.useEffect(() => {\n if (elRef?.current) {\n setScrollState(calculateScrollState(elRef));\n }\n }, [elRef]);\n\n return { ref, scrollState, scroll };\n}","// extracted by mini-css-extract-plugin\nexport default {\"sortIndicator\":\"gFhu0\",\"scrollContainer\":\"sWUp9\",\"scrollbarTrack\":\"Vn2qM\"};","import React from 'react';\nimport { Scrollbars } from 'react-custom-scrollbars-2';\nimport {\n Cell,\n Column as BaseColumn,\n HeaderGroup,\n HeaderProps as BaseHeaderProps,\n IdType,\n Row,\n SortingRule,\n TableOptions,\n TableRowProps,\n useTable } from 'react-table';\nimport { DragEndEvent } from '@dnd-kit/core';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { SortableContainerWrapper } from 'libs/shared/components/sortable/SortableContainerWrapper';\nimport { PropsWithSortableItemProps, SortableItemWrapper } from 'libs/shared/components/sortable/SortableItemWrapper';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { WidgetButton, WidgetButtonDirection } from 'libs/shared/components/widgets/widget-button/WidgetButton';\nimport { DragOverlayStyles } from 'libs/shared/constants/DragOverlayStyles';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { getPlugins, getSelectedRowIds, useTableScroll } from './TableUtils';\n\nimport styles from './table.scss';\n\nexport interface TableTheme {\n table?: string;\n header?: string;\n headerRow?: string;\n headerCell?: string;\n body?: string;\n row?: string | ((row: Row<any>) => string);\n selectedRow?: string;\n cell?: string | ((row?: Row<any>, cell?: Cell<any, any>) => string);\n sortIndicator?: string;\n}\n\nexport type HeaderProps<T extends HashObject> = BaseHeaderProps<T> & {\n renderSortIndicator: () => void;\n}\n\nexport type Column<T extends HashObject> = BaseColumn<T> & {\n hideSortIndicator?: boolean;\n}\n\ninterface SortIndicatorProps<T extends HashObject> {\n column: HeaderGroup<T>;\n theme?: TableTheme;\n}\n\nfunction SortIndicator<T extends HashObject>(props: SortIndicatorProps<T>): JSX.Element {\n if (!props.column.canSort)\n return <></>;\n\n return (\n <span\n className={\n `${styles.sortIndicator}\n ${!props.column.isSorted ? 'text-secondary' : ''}\n ${props.theme?.sortIndicator ?? ''}`\n }\n >\n <SvgContainer\n svgName={(props.column.isSortedDesc || !props.column.isSorted)\n ? cvSvgLibrary.ArrowRight\n : cvSvgLibrary.ArrowLeft\n }\n size={SvgContainerSize.Small}\n />\n </span>\n );\n}\n\ninterface BaseTableProps<T extends HashObject> {\n /**\n * Must be memoized.\n */\n data: T[];\n\n /**\n * Must be memoized.\n * \n * For documentation on Column Options, see https://react-table.tanstack.com/docs/api/useTable#column-options\n */\n columns: Column<T>[];\n\n theme?: TableTheme;\n\n onSelectRow?: (row: Row<T>) => void;\n\n onSelectCell?: (cell: Cell<T>) => void;\n\n onRowMouseOver?: (row: Row<T>) => void;\n\n onRowMouseLeave?: (row: Row<T>) => void;\n\n allowSelectMultipleRows?: boolean;\n\n initialSelectedRowIds?: string[];\n\n getRowId?: (row: T) => string;\n\n getRowAppLink?: (row: Row<T>) => Core.AppLink;\n\n enableSort?: boolean;\n\n manualSort?: boolean;\n\n onSort?: (sortingRule: SortingRule<T>[]) => void;\n \n // Opt-in to utilise react-table's useFilter hook.\n allowFiltering?: boolean;\n\n // Opt-in to utilise react-table's useGlobalFilter hook.\n allowGlobalFiltering?: boolean;\n\n // Use either a flex layout or a block layout. Default is flex.\n layout?: 'flex' | 'block';\n\n // Used by useGlobalFilter hook, needs to be enabled by prop above.\n globalFilter?: string;\n\n // Set initial state of hidden columns in react-table.\n hiddenColumns?: IdType<T>[];\n\n // Determine whether hidden columns should be preserved on a table update event.\n autoResetHiddenColumns?: boolean;\n\n // Determine whether sort order state should be preserved on a table update event.\n autoResetSortBy?: boolean;\n\n // Determine whether rows are sortable by drag and drop\n enableSortableRows?: boolean;\n\n onSortingRowsEnd?: (event: DragEndEvent) => void;\n\n // Set initial state of sorting in react-table\n initialSortBy?: SortingRule<T>[];\n\n emptyState?: JSX.Element;\n}\n \ntype SortableRowProps = PropsWithSortableItemProps<TableRowProps>;\n\nfunction BaseTable<T extends HashObject>(props: BaseTableProps<T>): JSX.Element {\n const tableOptions: TableOptions<T> = {\n columns: props.columns,\n data: props.data,\n disableSortBy: !props.enableSort,\n manualSortBy: props.manualSort,\n autoResetHiddenColumns: props.autoResetHiddenColumns,\n autoResetSortBy: props.autoResetSortBy,\n initialState: {\n sortBy: props.initialSortBy || []\n }\n };\n\n if (props.initialSelectedRowIds)\n tableOptions.initialState = { selectedRowIds: getSelectedRowIds(props.initialSelectedRowIds) };\n\n if (props.getRowId)\n tableOptions.getRowId = props.getRowId;\n\n const {\n getTableProps,\n getTableBodyProps,\n headerGroups,\n rows,\n prepareRow,\n toggleAllRowsSelected,\n setGlobalFilter,\n setHiddenColumns,\n state: { sortBy }\n } = useTable<T>(tableOptions, ...getPlugins<T>({ ...props }));\n\n function getTableRowsClass(row: Row<T>) {\n let className = FunctionHelper.isFunction(props.theme?.row)\n ? props.theme.row(row)\n : props.theme?.row ?? '';\n\n if (row.isSelected && props.theme?.selectedRow)\n className += ` ${props.theme?.selectedRow}`;\n\n if (props.onSelectRow)\n className += ' cursor-pointer';\n\n if (props.enableSortableRows)\n className += ' cursor-grab';\n\n return className;\n }\n\n function renderTableRows() {\n if (!rows.length && props.emptyState)\n return props.emptyState;\n \n return rows.map(row => {\n prepareRow(row);\n \n const className = getTableRowsClass(row);\n const rowAppLink = !!props.getRowAppLink && props.getRowAppLink(row);\n\n function onClickRow(): void {\n if (!props.onSelectRow)\n return;\n\n if (!props.allowSelectMultipleRows)\n toggleAllRowsSelected(false);\n \n props.onSelectRow(row);\n row.toggleRowSelected(true);\n }\n\n function getSortableProps(props: TableRowProps | PropsWithSortableItemProps<TableRowProps>, ref?: any) {\n if ('dragAttributes' in props && 'dragListeners' in props) {\n return {\n ...props.dragAttributes,\n ...props.dragListeners,\n 'aria-roledescription': 'Sortable row',\n ref\n };\n }\n\n return {};\n }\n\n function renderRow(props: TableRowProps | PropsWithSortableItemProps<TableRowProps>, ref?: any): JSX.Element {\n const sortableProps = getSortableProps(props, ref);\n\n if (rowAppLink) {\n return (\n <div\n role='row'\n key={row.id}\n >\n <AppLink\n {...props}\n {...sortableProps}\n className={className}\n appLink={rowAppLink}\n >\n {renderCells(row)}\n </AppLink>\n </div>\n );\n }\n\n return (\n <div\n {...props}\n {...sortableProps}\n key={row.id}\n role='row'\n className={className}\n onClick={onClickRow}\n >\n {renderCells(row)}\n </div>\n );\n }\n\n const rowProps = row.getRowProps();\n\n if (props.enableSortableRows) {\n return (\n <SortableItemWrapper\n id={row.original.id}\n key={row.id}\n childProps={rowProps}\n childComponent={React.forwardRef(\n (props: SortableRowProps, ref: React.LegacyRef<HTMLDivElement>) => (renderRow(props, ref))\n )}\n />\n );\n }\n\n return renderRow(rowProps);\n });\n }\n\n function getDragOverlayClassName(theme: TableTheme): string {\n let className = 'g-0 ';\n\n if (theme)\n className += theme.row;\n\n return className;\n }\n\n function getDragOverlay(id: string) {\n const rowIndex = rows.findIndex(item => item.original.id === id);\n const row = rows[rowIndex];\n \n return (\n <div\n {...props}\n className={getDragOverlayClassName(props.theme)}\n style={DragOverlayStyles}\n >\n {renderCells(row)}\n </div>\n );\n }\n\n function getCellClassName(row: Row<T>, cell: Cell<T>): string {\n let cellClassName = '';\n\n if (typeof props.theme?.cell === 'function')\n cellClassName = props.theme.cell(row, cell);\n\n if (typeof props.theme?.cell === 'string')\n cellClassName = props.theme.cell;\n\n if (props.onSelectCell)\n cellClassName += ' cursor-pointer';\n\n return cellClassName;\n }\n\n function renderCells(row: Row<T>): JSX.Element[] {\n return row.cells.map(cell => {\n const cellClassName = getCellClassName(row, cell);\n\n function onClickCell(): void {\n props.onSelectCell && props.onSelectCell(cell);\n }\n\n return (\n <div key={cell.column.id} {...cell.getCellProps()} className={cellClassName} onClick={onClickCell} >\n {cell.render('Cell')}\n </div>\n );\n });\n }\n\n React.useEffect(() => {\n if (!props.onSort)\n return;\n\n props.onSort(sortBy);\n }, [sortBy]);\n\n React.useEffect(() => {\n if (!props.globalFilter)\n return;\n\n setGlobalFilter(props.globalFilter);\n }, [props.globalFilter]);\n\n React.useEffect(() => {\n if (!props.hiddenColumns)\n return;\n\n setHiddenColumns(props.hiddenColumns);\n }, [props.hiddenColumns && props.hiddenColumns.length]);\n\n return (\n <div {...getTableProps()} className={props.theme?.table ?? ''}>\n <div className={props.theme?.header ?? ''}>\n {headerGroups.map(headerGroup => (\n <div {...headerGroup.getHeaderGroupProps()} className={props.theme?.headerRow ?? ''}>\n {headerGroup.headers.map(column => (\n <div {...column.getHeaderProps(column.getSortByToggleProps())} className={props.theme?.headerCell ?? ''}>\n {column.render('Header', { renderSortIndicator: () => <SortIndicator column={column} theme={props.theme} /> })}\n {!(column as Column<T>).hideSortIndicator &&\n <SortIndicator column={column} theme={props.theme} />\n }\n </div>\n ))}\n </div>\n ))}\n </div>\n <div {...getTableBodyProps()} className={props.theme?.body ?? ''}>\n { props.enableSortableRows ? (\n <SortableContainerWrapper\n ids={rows.map(row => row.original.id)}\n getDragOverlay={getDragOverlay}\n onSortEnd={props.onSortingRowsEnd}\n >\n {renderTableRows()}\n </SortableContainerWrapper>\n ) : (\n renderTableRows()\n )}\n </div>\n </div>\n );\n}\n\ninterface TableProps<T extends HashObject> extends BaseTableProps<T> {\n enableSlider?: boolean;\n scrollIncrement?: number;\n scrollContainerClassName?: string;\n scrollable?: boolean;\n initialSortBy?: SortingRule<T>[];\n}\n\nTable.defaultProps = {\n scrollIncrement: 250,\n scrollable: false,\n layout: 'flex'\n};\n\nexport function Table<T extends HashObject>(props: TableProps<T>): JSX.Element {\n const { enableSlider, scrollIncrement, scrollable, ...tableProps } = props;\n\n const { ref, scrollState, scroll } = useTableScroll();\n\n if (scrollable) {\n return (\n <Scrollbars\n renderTrackHorizontal={() => <div className={styles.scrollbarTrack} />}\n autoHeightMax={10000}\n autoHeight\n >\n <BaseTable {...tableProps} />\n </Scrollbars>\n );\n }\n\n if (!enableSlider)\n return <BaseTable {...tableProps} />;\n\n function onClickScroll(direction: 'left' | 'right'): void {\n scroll(scrollIncrement * (direction === 'right' ? 1 : -1));\n }\n\n return (\n <div className='mx-n4 overflow-x-hidden overflow-y-hidden'>\n <div className='px-4'>\n <div className='position-relative'>\n <WidgetButton\n direction={WidgetButtonDirection.Left}\n onClick={() => onClickScroll('left')}\n hide={!scrollState.canScrollLeft}\n />\n <div className={`${styles.scrollContainer} ${props.scrollContainerClassName}`} ref={ref}>\n <BaseTable {...tableProps } />\n </div>\n <WidgetButton\n direction={WidgetButtonDirection.Right}\n onClick={() => onClickScroll('right')}\n hide={!scrollState.canScrollRight}\n />\n </div>\n </div>\n </div>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\n\nimport { PillTab, PillTabSelector } from 'libs/shared/components/pill-tab-selector/PillTabSelector';\nimport { ContextService } from 'libs/shared/services/ContextService';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nconst namespace = 'share.sharesHeader';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst SHARED_BY_ME_APP_LINK = { application: AppChannels.MY_SHARES, action: Actions.MyShares.SHARED_BY_ME };\nconst SHARED_WITH_ME_APP_LINK = { application: AppChannels.MY_SHARES, action: Actions.MyShares.SHARED_WITH_ME };\n\nfunction getPillTabs(): PillTab[] {\n const currentAppLink = ContextService.getCurrentRoute()?.appLink;\n\n return [\n {\n name: getPhrase('sharedByMe'),\n onSelect: () => Core.AppLinkHelper.trigger(SHARED_BY_ME_APP_LINK),\n active: currentAppLink?.action === SHARED_BY_ME_APP_LINK.action\n },\n {\n name: getPhrase('sharedWithMe'),\n onSelect: () => Core.AppLinkHelper.trigger(SHARED_WITH_ME_APP_LINK),\n active: currentAppLink?.action === SHARED_WITH_ME_APP_LINK.action\n }\n ];\n}\n\nexport function SharesHeader(): JSX.Element {\n return (\n <div className='pb-3'>\n <h1 className='h2 mb-3'>{getPhrase('shares')}</h1>\n <PillTabSelector tabs={getPillTabs()} />\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"pillTabSelector\":\"Hdi6o\",\"tab\":\"RvNxr\",\"minWidth\":\"GHSz9\",\"radiusSmall\":\"VhJJa\",\"tabLink\":\"WFyvo\"};"],"names":["SHARES_TABLE_THEME","table","header","headerCell","row","cell","TabContents","props","tab","svgName","className","name","count","type","data","PillTabSelector","ref","containerRef","borderRadius","listClassName","tabs","map","index","active","key","appLink","analyticsData","analyticsOptions","onClick","onSelect","onSelectTab","defaultProps","DragOverlayStyles","opacity","cursor","calculateScrollState","canScrollLeft","current","scrollLeft","canScrollRight","scrollWidth","clientWidth","SortIndicator","column","canSort","isSorted","theme","sortIndicator","SvgContainer","isSortedDesc","size","S","BaseTable","ids","idHash","tableOptions","columns","disableSortBy","enableSort","manualSortBy","manualSort","autoResetHiddenColumns","autoResetSortBy","initialState","sortBy","initialSortBy","initialSelectedRowIds","selectedRowIds","forEach","id","getRowId","useTable","plugins","useSortBy","useRowSelect","layout","useFlexLayout","useBlockLayout","allowFiltering","useFilters","allowGlobalFiltering","useGlobalFilter","getPlugins","getTableProps","getTableBodyProps","headerGroups","rows","prepareRow","toggleAllRowsSelected","setGlobalFilter","setHiddenColumns","state","renderTableRows","length","emptyState","FunctionHelper","isSelected","selectedRow","onSelectRow","enableSortableRows","getTableRowsClass","rowAppLink","getRowAppLink","onClickRow","allowSelectMultipleRows","toggleRowSelected","renderRow","sortableProps","dragAttributes","dragListeners","getSortableProps","role","AppLink","renderCells","rowProps","getRowProps","SortableItemWrapper","original","childProps","childComponent","cells","cellClassName","onSelectCell","getCellClassName","getCellProps","render","onSort","globalFilter","hiddenColumns","headerGroup","getHeaderGroupProps","headerRow","headers","getHeaderProps","getSortByToggleProps","renderSortIndicator","hideSortIndicator","body","SortableContainerWrapper","getDragOverlay","rowIndex","findIndex","item","style","onSortEnd","onSortingRowsEnd","Table","enableSlider","scrollIncrement","scrollable","tableProps","elRef","scrollState","setScrollState","throttledOnScroll","el","removeEventListener","addEventListener","scroll","scrollBy","left","top","behavior","useTableScroll","renderTrackHorizontal","autoHeightMax","autoHeight","onClickScroll","direction","WidgetButton","W","hide","scrollContainerClassName","getPhrase","SHARED_BY_ME_APP_LINK","application","action","SHARED_WITH_ME_APP_LINK","SharesHeader","currentAppLink"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[1192],{29923:(e,t,r)=>{r.d(t,{F:()=>s});var n=r(32735),a=r(23481),o=r(89965),i=r(13876);function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}var l=a.T.encloseNamespace("sharev2.deleteShareContent");function s(e){var t,r,a,s=(r=n.useState(!1),a=2,function(e){if(Array.isArray(e))return e}(r)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,a,o,i,c=[],l=!0,s=!1;try{if(o=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;l=!1}else for(;!(l=(n=o.call(r)).done)&&(c.push(n.value),c.length!==t);l=!0);}catch(e){s=!0,a=e}finally{try{if(!l&&null!=r.return&&(i=r.return(),Object(i)!==i))return}finally{if(s)throw a}}return c}}(r,a)||function(e,t){if(e){if("string"==typeof e)return c(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?c(e,t):void 0}}(r,a)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),u=s[0],d=s[1];return n.createElement("div",{className:"d-flex flex-column gap-3"},n.createElement("p",{className:"m-0"},e.phrases.leadingSentence),n.createElement("ul",{className:"m-0"},e.phrases.bulletPoints.map((function(e,t){return n.createElement("li",{key:t},e)}))),n.createElement(o.X,{id:"ack",checked:u,onChange:function(e){return d(e.target.checked)},label:e.phrases.acknowledgement}),n.createElement(i.u,null,e.onBack&&n.createElement(i.u.Cancel,{onClick:e.onBack,text:null!==(t=e.phrases.backButton)&&void 0!==t?t:l("backButton"),variant:"link"}),n.createElement(i.u.Submit,{onClick:function(){u&&!e.loading&&e.onDelete()},text:e.phrases.deleteButton,variant:"danger",disabled:!u||e.loading,showSpinner:e.loading})))}},33518:(e,t,r)=>{var n;r.d(t,{e:()=>n}),function(e){e.Public="Public",e.PinCode="PinCode",e.PasswordProtected="PasswordProtected",e.ProtectedOverrideRestriction="ProtectedOverrideRestriction",e.JustMySchoolOverrideRestriction="JustMySchoolOverrideRestriction",e.Protected="Protected",e.JustMySchool="JustMySchool",e.Direct="Direct"}(n||(n={}))},18488:(e,t,r)=>{r.d(t,{o:()=>i});var n=r(99940),a=r(97395),o={namespace:"share-v2"},i={createShare:function(e){return{url:"{gateway}/v2/shares",key:"create:share-v2",type:n.k.POST,data:e,normalizeOptions:o,invalidationKeys:["sent:share-v2","get:share-v2:shares:object:".concat(e.objectId)]}},updateShare:function(e,t){return{url:"{gateway}/v2/shares/".concat(e),key:"update:share-v2",type:n.k.PUT,data:t,normalizeOptions:o,invalidationKeys:["share-v2:permanent-link:object","share-v2:".concat(e)]}},deleteShare:function(e){return{type:n.k.DELETE,url:"{gateway}/v2/shares/".concat(e),key:"delete:share-v2",normalizeOptions:o,invalidationKeys:["share-v2:permanent-link:object","sent:share-v2","share-v2:".concat(e)]}},getShare:function(e){return{url:"{gateway}/v2/shares/".concat(e),key:"share-v2:".concat(e),bootstrapName:"share-v2:".concat(e),type:n.k.GET,normalizeOptions:o}},getSentShares:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=Object.values(e).sort().join(":");return{url:a._.urlBuilder("{gateway}/v2/shares/sent",e),key:"sent:share-v2:".concat(t),type:n.k.GET,normalize:!1}},getShareLink:function(e){return{url:a._.urlBuilder("{gateway}/v2/shares/permanent-link",{objectId:e}),key:"share-v2:permanent-link:object:".concat(e),normalizeOptions:o}},createShareLink:function(e){return{type:n.k.POST,url:a._.urlBuilder("{gateway}/v2/shares/permanent-link",Object.assign({},e)),key:"create:share-v2:permanent-link:object:".concat(e.objectId),invalidationKeys:["share-v2:permanent-link:object:".concat(e.objectId),"sent:share-v2"],normalizeOptions:o}},getPrivacy:function(e){return{url:"{gateway}/v1/objects/".concat(e,"/access"),key:"privacy:".concat(e),normalize:!1}},getSharesByObjectId:function(e){return{url:"{gateway}/v2/shares/objects/".concat(e),key:"get:share-v2:shares:object:".concat(e),type:n.k.GET,normalizeOptions:o}},createSharePincode:function(e){return{url:"{gateway}/v2/shares/".concat(e,"/pincode"),key:"create:share-v2:".concat(e,":pincode"),type:n.k.POST}},getPincodeByShareId:function(e){return{url:"{gateway}/v2/shares/".concat(e,"/pincode"),key:"get:share-v2:".concat(e,":pincode")}},getPincodeByCode:function(e){return{url:"{gateway}/v2/shares/pincode?code=".concat(e),key:"get:share-v2:pincode:".concat(e)}}}},93563:(e,t,r)=>{r.d(t,{_:()=>c});var n=r(20354),a=r(33518),o=r(18488),i=r(8233);function c(e){var t=n.a.useGetFetchAsync(),r=n.a.useBasicFetch(o.o.getPrivacy(e.entityId));return{loaded:!!r.data,updateShareLink:function(e,r){return t(o.o.updateShare(e,r))},createShareLink:function(n){var c=null!=n?n:"protected"===i.R.getShareLinkAccessType(r.data)?a.e.Protected:a.e.JustMySchool;return t(o.o.createShareLink({objectId:e.entityId,privacy:c}))},deleteShareLink:function(e){return t(o.o.deleteShare(e))}}}},8233:(e,t,r)=>{r.d(t,{R:()=>y});var n=r(23481),a=r(110),o=r(33518),i=r(4594),c=r(49080),l=r(26361),s=r(35223),u=r(31908);function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}var v=n.T.encloseNamespace("sharev2.utils"),y={getPrivateIconAndText:function(e){var t=e.entityTypeId,r=e.privacy,n=e.hasStudentExp,a=e.entity,c=e.yearGroups;if(t===i.E.Topic||t===i.E.Series)return{icon:s.vn.VisibleOn,text:v(n?"justMySchoolTeachers":"justMySchoolDescription")};if(!Array.isArray(r))switch(r){case o.e.Public:return{icon:s.vn.VisibleOn,text:v("publicDescription")};case o.e.ProtectedOverrideRestriction:return{icon:s.vn.VisibleOn,text:v("clickViewOnly")};case o.e.Protected:return{icon:s.vn.Lock,text:y.getRespectRatingText(a,c,n)};case o.e.JustMySchoolOverrideRestriction:return{icon:s.vn.Lock,text:v(n?"justMySchoolTeachers":"justMySchoolDescription")};case o.e.JustMySchool:return{icon:s.vn.Lock,text:y.getRespectRatingText(a,c,n)};case o.e.PinCode:return{icon:s.vn.Lock,text:v("pinDescription")};case o.e.PasswordProtected:return{icon:s.vn.Lock,text:v("privateDescription")};default:return{}}},getIconAndText:function(e){var t=e.linkExpireDate,r=e.isPasswordProtected,n=e.status;if(!t&&!r)return y.getPrivateIconAndText(e);if(!t)return{icon:s.vn.Lock,text:v("password")};var o=a.O.isToday(t),i=a.O.diffBetween(t,new Date,"day");if(!r){var l=o?v("expiryToday"):v("expiry",{days:i});return n===c.F.Expired&&(l=v("expired")),{icon:s.vn.Timer,text:l}}var u=o?v("passwordExpiryToday"):v("passwordExpiry",{days:i});return n===c.F.Expired&&(u=v("passwordExpired")),{icon:s.vn.Lock,text:u}},getRespectRatingText:function(e,t,r){var n;if(!e||!t)return null;if(r)return v("justMySchoolTeachers");if(!u.M.isVideoType(e))return v("collectionRating");var a=l.l.getWeightedRestriction(null===(n=e._restrictions)||void 0===n?void 0:n.value);if(a&&!a.yearGroup)return v("onlyAdmins");var o,i,c,s=u.M.getRating(e),y=function(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return d(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?d(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,a=function(){};return{s:a,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},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(){r=r.call(e)},n:function(){var e=r.next();return i=e.done,e},e:function(e){c=!0,o=e},f:function(){try{i||null==r.return||r.return()}finally{if(c)throw o}}}}(t);try{for(y.s();!(c=y.n()).done;){var h=c.value;(!o||h.value>o.value)&&(o=h),a&&h.value<=a.yearGroup||s&&h.rating.value<s.value||(!i||h.value<i.value)&&(i=h)}}catch(e){y.e(e)}finally{y.f()}return i?1===t.length?v("clickViewOnly"):i.value===o.value?v("maxYearGroup",{yearGroup:o.name}):v("yearGroupRange",{yearGroup:i.name}):v("onlyStaff")},getShareLinkAccessType:function(e){return e.isTvContent||e.isClickViewContent?"protected":e.canManageAccess?"owner":"private"}}},31192:(e,t,r)=>{r.r(t),r.d(t,{DeleteLegacyShareConfirmationView:()=>h});var n=r(32735),a=r(6044),o=r(23481),i=r(20354),c=r(29923),l=r(18488),s=r(93563),u=r(9111),d=r(69883);function v(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}var y=o.T.encloseNamespace("sharev2.deleteLegacyShareConfirmation");function h(e){var t,r,o,h=(0,d.Z)(),p=i.a.useBasicFetch(l.o.getShare(e.shareId)),f=(r=n.useState(!1),o=2,function(e){if(Array.isArray(e))return e}(r)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,a,o,i,c=[],l=!0,s=!1;try{if(o=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;l=!1}else for(;!(l=(n=o.call(r)).done)&&(c.push(n.value),c.length!==t);l=!0);}catch(e){s=!0,a=e}finally{try{if(!l&&null!=r.return&&(i=r.return(),Object(i)!==i))return}finally{if(s)throw a}}return c}}(r,o)||function(e,t){if(e){if("string"==typeof e)return v(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?v(e,t):void 0}}(r,o)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),g=f[0],m=f[1],k=(0,s._)({entityId:null===(t=p.data)||void 0===t?void 0:t.objectId.toString()}).deleteShareLink,S=p.hasCompleted;return n.createElement(u.G,{title:y("title"),closePopup:e.closePopup,showLoadingSpinner:!S},n.createElement(c.F,{loading:g,phrases:{leadingSentence:y("intro"),bulletPoints:[y("loseAccessInfo"),y("loseAccessUsage")],acknowledgement:y("acknowledgement"),deleteButton:y("delete")},onDelete:function(){var t;m(!0),k(null===(t=p.data)||void 0===t?void 0:t.shareId).then((function(){m(!1),h.success(y("deleteSuccess")),e.closePopup(),e.previousAppLink&&a.C$.trigger(e.previousAppLink)})).catch((function(){h.error(y("deleteFailed"))})).finally((function(){m(!1)}))}}))}}}]);
|
|
2
|
+
//# sourceMappingURL=1192-d409863a3c-lite.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/1192-d409863a3c-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/apps/share-v2/components/delete-share-content/DeleteShareContent.tsx","file:///app/packages/libs/shared/src/apps/share-v2/enums/SharePrivacy.ts","file:///app/packages/libs/shared/src/apps/share-v2/flight-requests/ShareRequests.ts","file:///app/packages/libs/shared/src/apps/share-v2/hooks/useShareLinkActions.ts","file:///app/packages/libs/shared/src/apps/share-v2/utils/ShareLinkHelper.ts","file:///app/packages/libs/shared/src/apps/share-v2/views/delete-legacy-share-confirmation-view/DeleteLegacyShareConfirmationView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { Checkbox } from 'libs/shared/components/forms/form-checkbox/Checkbox';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\n\nconst namespace = 'sharev2.deleteShareContent';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport interface DeleteShareContentProps {\n loading: boolean;\n phrases: {\n leadingSentence: string;\n bulletPoints: string[];\n acknowledgement: string;\n deleteButton: string;\n backButton?: string;\n };\n onDelete: () => void;\n onBack?: () => void;\n}\n\nexport function DeleteShareContent(props: DeleteShareContentProps) {\n const [ ack, setAck ] = React.useState(false);\n\n function onDelete() {\n if (!ack || props.loading)\n return;\n\n props.onDelete();\n }\n\n return (\n <div className='d-flex flex-column gap-3'>\n <p className='m-0'>{props.phrases.leadingSentence}</p>\n <ul className='m-0'>\n {props.phrases.bulletPoints.map((phrase, index) => (\n <li key={index}>\n {phrase}\n </li>\n ))}\n </ul>\n <Checkbox\n id='ack'\n checked={ack}\n onChange={e => setAck(e.target.checked)}\n label={props.phrases.acknowledgement}\n />\n <PopupButtons>\n {props.onBack && (\n <PopupButtons.Cancel\n onClick={props.onBack}\n text={props.phrases.backButton ?? getPhrase('backButton')}\n variant='link'\n />\n )}\n <PopupButtons.Submit\n onClick={onDelete}\n text={props.phrases.deleteButton}\n variant='danger'\n disabled={!ack || props.loading}\n showSpinner={props.loading}\n />\n </PopupButtons>\n </div>\n );\n}","export enum SharePrivacy {\n Public = 'Public',\n PinCode = 'PinCode',\n PasswordProtected = 'PasswordProtected',\n ProtectedOverrideRestriction = 'ProtectedOverrideRestriction',\n JustMySchoolOverrideRestriction = 'JustMySchoolOverrideRestriction',\n Protected = 'Protected',\n JustMySchool = 'JustMySchool',\n Direct = 'Direct'\n}","import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\n\nimport { ShareType } from 'libs/shared/apps/share-v2/enums/ShareType';\nimport { CreateShareLinkRequest } from 'libs/shared/apps/share-v2/interfaces/CreateShareLinkRequest';\nimport { CreateShareRequest } from 'libs/shared/apps/share-v2/interfaces/CreateShareRequest';\nimport { UpdateShareRequest } from 'libs/shared/apps/share-v2/interfaces/UpdateShareRequest';\n\nconst normalizeOptions: Flight.NormalizeOptions = {\n namespace: 'share-v2'\n};\n\nexport interface GetSentSharesParams {\n cursor?: string;\n scopeId?: string;\n objectTypeId?: number;\n type?: ShareType[];\n}\n\nexport const ShareRequests = {\n createShare(\n data: CreateShareRequest\n ): Flight.Request {\n return {\n url: '{gateway}/v2/shares',\n key: 'create:share-v2',\n type: HttpVerbs.POST,\n data,\n normalizeOptions,\n invalidationKeys: [ 'sent:share-v2', `get:share-v2:shares:object:${data.objectId}` ]\n };\n },\n\n updateShare(\n shareId: string,\n data: UpdateShareRequest\n ): Flight.Request {\n return {\n url: `{gateway}/v2/shares/${shareId}`,\n key: `update:share-v2`,\n type: HttpVerbs.PUT,\n data,\n normalizeOptions,\n invalidationKeys: [ 'share-v2:permanent-link:object', `share-v2:${shareId}` ]\n };\n },\n \n deleteShare(\n shareId: string\n ): Flight.Request {\n return {\n type: HttpVerbs.DELETE,\n url: `{gateway}/v2/shares/${shareId}`,\n key: `delete:share-v2`,\n normalizeOptions,\n invalidationKeys: [ 'share-v2:permanent-link:object', 'sent:share-v2', `share-v2:${shareId}` ]\n };\n },\n\n getShare(\n shareId: string\n ): Flight.Request {\n return {\n url: `{gateway}/v2/shares/${shareId}`,\n key: `share-v2:${shareId}`,\n bootstrapName: `share-v2:${shareId}`,\n type: HttpVerbs.GET,\n normalizeOptions\n };\n },\n\n getSentShares(\n params: GetSentSharesParams = {}\n ): Flight.Request {\n const key = Object.values(params).sort().join(':');\n\n return {\n url: UrlHelper.urlBuilder('{gateway}/v2/shares/sent', params),\n key: `sent:share-v2:${key}`,\n type: HttpVerbs.GET,\n normalize: false\n };\n },\n\n getShareLink(\n id: string\n ): Flight.Request {\n return {\n url: UrlHelper.urlBuilder('{gateway}/v2/shares/permanent-link', { objectId: id }),\n key: `share-v2:permanent-link:object:${id}`,\n normalizeOptions\n };\n },\n\n createShareLink(\n data: CreateShareLinkRequest\n ): Flight.Request {\n return {\n type: HttpVerbs.POST,\n url: UrlHelper.urlBuilder('{gateway}/v2/shares/permanent-link', { ...data }),\n key: `create:share-v2:permanent-link:object:${data.objectId}`,\n invalidationKeys: [ `share-v2:permanent-link:object:${data.objectId}`, 'sent:share-v2' ],\n normalizeOptions\n };\n },\n\n getPrivacy(id: string): Flight.Request {\n return {\n url: `{gateway}/v1/objects/${id}/access`,\n key: `privacy:${id}`,\n normalize: false\n };\n },\n \n getSharesByObjectId(\n objectId: string | number\n ): Flight.Request {\n return {\n url: `{gateway}/v2/shares/objects/${objectId}`,\n key: `get:share-v2:shares:object:${objectId}`,\n type: HttpVerbs.GET,\n normalizeOptions\n };\n },\n\n createSharePincode(shareId: string): Flight.Request {\n return {\n url: `{gateway}/v2/shares/${shareId}/pincode`,\n key: `create:share-v2:${shareId}:pincode`,\n type: HttpVerbs.POST\n };\n },\n\n getPincodeByShareId(shareId: string): Flight.Request {\n return {\n url: `{gateway}/v2/shares/${shareId}/pincode`,\n key: `get:share-v2:${shareId}:pincode`\n };\n },\n\n getPincodeByCode(code: string): Flight.Request {\n return {\n url: `{gateway}/v2/shares/pincode?code=${code}`,\n key: `get:share-v2:pincode:${code}`\n };\n }\n};\n","import { Flight } from 'libs/common/react/index';\n\nimport { SharePrivacy } from '../enums/SharePrivacy';\nimport { ShareRequests } from '../flight-requests/ShareRequests';\nimport { Share } from '../interfaces/Share';\nimport { SharePrivacyResponse } from '../interfaces/SharePrivacyResponse';\nimport { UpdateShareRequest } from '../interfaces/UpdateShareRequest';\nimport { ShareLinkHelper } from '../utils/ShareLinkHelper';\n\ninterface UseShareLinkActionsOptions {\n entityId: string;\n}\n\nexport function useShareLinkActions(options: UseShareLinkActionsOptions) {\n const fetchAsync = Flight.useGetFetchAsync();\n\n const entityPrivacy = Flight.useBasicFetch<SharePrivacyResponse>(ShareRequests.getPrivacy(options.entityId));\n\n function getCreateSharePrivacy() {\n const accessType = ShareLinkHelper.getShareLinkAccessType(entityPrivacy.data);\n\n return accessType === 'protected'\n ? SharePrivacy.Protected\n : SharePrivacy.JustMySchool;\n }\n\n function updateShareLink(shareId: string, data: UpdateShareRequest): Promise<Share> {\n return fetchAsync<Share>(ShareRequests.updateShare(shareId, data));\n }\n\n function createShareLink(privacy?: SharePrivacy): Promise<Share> {\n const requestPrivacy = privacy ?? getCreateSharePrivacy();\n return fetchAsync<Share>(ShareRequests.createShareLink({ objectId: options.entityId, privacy: requestPrivacy }));\n }\n\n function deleteShareLink(shareId: string): Promise<void> {\n return fetchAsync(ShareRequests.deleteShare(shareId));\n }\n\n return {\n loaded: !!entityPrivacy.data,\n updateShareLink,\n createShareLink,\n deleteShareLink\n };\n}","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { SharePrivacy } from 'libs/shared/apps/share-v2/enums/SharePrivacy';\nimport type { SharePrivacyResponse } from 'libs/shared/apps/share-v2/interfaces/SharePrivacyResponse';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { ShareLinkStatus } from 'libs/shared/enums/ShareLinkStatus';\nimport type { BaseObject, YearGroup } from 'libs/shared/interfaces';\nimport { RestrictionHelper } from 'libs/shared/utils/RestrictionHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nconst namespace = 'sharev2.utils';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface GetIconAndTextOptions {\n linkExpireDate: string;\n isPasswordProtected: boolean;\n privacy: SharePrivacy;\n status: ShareLinkStatus;\n entityTypeId: MasterType;\n hasStudentExp: boolean;\n entity: BaseObject;\n yearGroups: YearGroup[];\n}\n\ninterface GetPrivateIconAndTextOptions {\n privacy: SharePrivacy;\n entityTypeId: MasterType;\n hasStudentExp: boolean;\n entity: BaseObject;\n yearGroups: YearGroup[];\n}\n\nexport const ShareLinkHelper = {\n getPrivateIconAndText: (options: GetPrivateIconAndTextOptions) => {\n const { entityTypeId, privacy, hasStudentExp, entity, yearGroups } = options;\n \n if (entityTypeId === MasterType.Topic || entityTypeId === MasterType.Series)\n return { icon: cvSvgLibrary.VisibleOn, text: getPhrase(hasStudentExp ? 'justMySchoolTeachers' : 'justMySchoolDescription') };\n \n /**\n * This is mainly for typescript, privacy will be an array for playlists\n * but that is handled above\n */\n if (Array.isArray(privacy))\n return;\n \n switch (privacy) {\n case SharePrivacy.Public:\n return { icon: cvSvgLibrary.VisibleOn, text: getPhrase('publicDescription') };\n case SharePrivacy.ProtectedOverrideRestriction:\n return { icon: cvSvgLibrary.VisibleOn, text: getPhrase('clickViewOnly') };\n case SharePrivacy.Protected:\n return {\n icon: cvSvgLibrary.Lock,\n text: ShareLinkHelper.getRespectRatingText(entity, yearGroups, hasStudentExp)\n };\n case SharePrivacy.JustMySchoolOverrideRestriction:\n return { icon: cvSvgLibrary.Lock, text: getPhrase(hasStudentExp ? 'justMySchoolTeachers' : 'justMySchoolDescription') };\n case SharePrivacy.JustMySchool:\n return {\n icon: cvSvgLibrary.Lock,\n text: ShareLinkHelper.getRespectRatingText(entity, yearGroups, hasStudentExp)\n };\n case SharePrivacy.PinCode:\n return { icon: cvSvgLibrary.Lock, text: getPhrase('pinDescription') };\n case SharePrivacy.PasswordProtected:\n return { icon: cvSvgLibrary.Lock, text: getPhrase('privateDescription') };\n default:\n return {};\n }\n },\n\n getIconAndText: (options: GetIconAndTextOptions) => {\n const { linkExpireDate, isPasswordProtected, status } = options;\n if (!linkExpireDate && !isPasswordProtected)\n return ShareLinkHelper.getPrivateIconAndText(options);\n \n if (!linkExpireDate)\n return { icon: cvSvgLibrary.Lock, text: getPhrase('password') };\n \n const isToday = DateHelper.isToday(linkExpireDate);\n const dayDifference = DateHelper.diffBetween(linkExpireDate, new Date(), 'day');\n \n if (!isPasswordProtected) {\n let text = isToday\n ? getPhrase('expiryToday')\n : getPhrase('expiry', { days: dayDifference });\n \n if (status === ShareLinkStatus.Expired)\n text = getPhrase('expired');\n \n return { icon: cvSvgLibrary.Timer, text };\n }\n \n let text = isToday\n ? getPhrase('passwordExpiryToday')\n : getPhrase('passwordExpiry', { days: dayDifference });\n \n if (status === ShareLinkStatus.Expired)\n text = getPhrase('passwordExpired');\n \n return { icon: cvSvgLibrary.Lock, text };\n },\n\n getRespectRatingText(video: BaseObject, yearGroups: YearGroup[], hasStudentExp: boolean) {\n if (!video || !yearGroups)\n return null;\n \n if (hasStudentExp)\n return getPhrase('justMySchoolTeachers');\n \n if (!VideoHelper.isVideoType(video))\n return getPhrase('collectionRating');\n \n const restriction = RestrictionHelper.getWeightedRestriction(video._restrictions?.value);\n \n /**\n * Restrictions without a year level are teacher restricitons, which means only admins can see it.\n */\n if (restriction && !restriction.yearGroup)\n return getPhrase('onlyAdmins');\n \n const rating = VideoHelper.getRating(video);\n \n let maxYearGroup: YearGroup;\n let minAllowedYearGroup: YearGroup;\n \n for (const yearGroup of yearGroups) {\n /**\n * If our year level is our new highest so far, save it\n */\n if (!maxYearGroup || yearGroup.value > maxYearGroup.value)\n maxYearGroup = yearGroup;\n \n /**\n * If the restriction is higher than this year level, skip it.\n */\n if (restriction && yearGroup.value <= restriction.yearGroup)\n continue;\n \n /**\n * If therating is higher than this year level's rating value, skip it.\n */\n if (rating && yearGroup.rating.value < rating.value)\n continue;\n \n /**\n * If our year level is the new lowest so far, save it\n */\n if (!minAllowedYearGroup || yearGroup.value < minAllowedYearGroup.value)\n minAllowedYearGroup = yearGroup;\n }\n \n /**\n * If no year levels are allowed, then it's staff only.\n */\n if (!minAllowedYearGroup)\n return getPhrase('onlyStaff');\n \n \n /**\n * If there's only one year level, and it's allowed, then we can just\n * say that everyone in your school can access it.\n */\n if (yearGroups.length === 1)\n return getPhrase('clickViewOnly');\n \n /**\n * We differentiate the copy if it's the highest year level or not. \n * Basically if we need to say \"X and above\" or not.\n */\n if (minAllowedYearGroup.value === maxYearGroup.value)\n return getPhrase('maxYearGroup', { yearGroup: maxYearGroup.name });\n \n return getPhrase('yearGroupRange', { yearGroup: minAllowedYearGroup.name });\n },\n\n getShareLinkAccessType(privacy: SharePrivacyResponse): 'private' | 'owner' | 'protected' {\n /**\n * If an entity is not a ClickView content and they cannot manage access\n * settings of the entity (which they can if its their private entity)\n * it means that its a TV content\n */\n if (privacy.isTvContent || privacy.isClickViewContent)\n return 'protected';\n\n if (privacy.canManageAccess)\n return 'owner';\n\n return 'private';\n }\n};","import React from 'react';\n\nimport { AppLinkHelper } from 'libs/common/backbone/core';\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/react/index';\n\nimport { DeleteShareContent } from 'libs/shared/apps/share-v2/components/delete-share-content/DeleteShareContent';\nimport { ShareRequests } from 'libs/shared/apps/share-v2/flight-requests/ShareRequests';\nimport { useShareLinkActions } from 'libs/shared/apps/share-v2/hooks/useShareLinkActions';\nimport { Share } from 'libs/shared/apps/share-v2/interfaces/Share';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { PopupViewProps } from 'libs/shared/interfaces';\n\nconst namespace = 'sharev2.deleteLegacyShareConfirmation';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport interface DeleteLegacyShareConfirmationViewProps extends PopupViewProps {\n shareId: string;\n previousAppLink?: Core.AppLink;\n}\n\nexport function DeleteLegacyShareConfirmationView(props: DeleteLegacyShareConfirmationViewProps) {\n const alerts = useAlerts();\n const share = Flight.useBasicFetch<Share>(ShareRequests.getShare(props.shareId));\n\n const [ loading, setLoading ] = React.useState(false);\n\n const { deleteShareLink: deleteShare } = useShareLinkActions({\n entityId: share.data?.objectId.toString()\n });\n \n function onClickDelete() {\n setLoading(true);\n\n deleteShare(share.data?.shareId).then(() => {\n setLoading(false);\n alerts.success(getPhrase('deleteSuccess'));\n props.closePopup();\n\n if (props.previousAppLink) {\n AppLinkHelper.trigger(props.previousAppLink);\n }\n }).catch(() => {\n alerts.error(getPhrase('deleteFailed'));\n }).finally(() => {\n setLoading(false);\n });\n }\n\n const loaded = share.hasCompleted;\n\n return (\n <Popup\n title={getPhrase('title')}\n closePopup={props.closePopup}\n showLoadingSpinner={!loaded}\n >\n <DeleteShareContent\n loading={loading}\n phrases={{\n leadingSentence: getPhrase('intro'),\n bulletPoints: [\n getPhrase('loseAccessInfo'),\n getPhrase('loseAccessUsage')\n ],\n acknowledgement: getPhrase('acknowledgement'),\n deleteButton: getPhrase('delete')\n }}\n onDelete={onClickDelete}\n />\n </Popup>\n );\n}"],"names":["getPhrase","DeleteShareContent","props","ack","setAck","className","phrases","leadingSentence","bulletPoints","map","phrase","index","key","id","checked","onChange","e","target","label","acknowledgement","onBack","onClick","text","backButton","variant","loading","onDelete","deleteButton","disabled","showSpinner","SharePrivacy","normalizeOptions","namespace","ShareRequests","createShare","data","url","type","invalidationKeys","objectId","updateShare","shareId","deleteShare","getShare","bootstrapName","getSentShares","params","Object","values","sort","join","normalize","getShareLink","createShareLink","getPrivacy","getSharesByObjectId","createSharePincode","getPincodeByShareId","getPincodeByCode","code","useShareLinkActions","options","fetchAsync","entityPrivacy","entityId","loaded","updateShareLink","privacy","requestPrivacy","deleteShareLink","ShareLinkHelper","getPrivateIconAndText","entityTypeId","hasStudentExp","entity","yearGroups","icon","Array","isArray","getRespectRatingText","getIconAndText","linkExpireDate","isPasswordProtected","status","isToday","dayDifference","Date","days","video","restriction","_restrictions","value","yearGroup","maxYearGroup","minAllowedYearGroup","rating","length","name","getShareLinkAccessType","isTvContent","isClickViewContent","canManageAccess","DeleteLegacyShareConfirmationView","alerts","share","setLoading","toString","hasCompleted","title","closePopup","showLoadingSpinner","then","success","previousAppLink","error"],"sourceRoot":""}
|