@clickview/lite 0.75.0-rc.3 → 0.75.0-rc.5
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/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/1192-d409863a3c-lite.chunk.js +2 -0
- package/dist/scripts/1192-d409863a3c-lite.chunk.js.map +1 -0
- package/dist/scripts/{1199-6522b1d291-lite.chunk.js → 1199-d2fcbb547e-lite.chunk.js} +1 -1
- package/dist/scripts/1199-d2fcbb547e-lite.chunk.js.map +1 -0
- package/dist/scripts/{1221-894d8474d5-lite.chunk.js → 1221-1109d5379d-lite.chunk.js} +2 -2
- package/dist/scripts/1221-1109d5379d-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-bf848cce4d-lite.chunk.js → 1610-bb6eff2ff1-lite.chunk.js} +2 -2
- package/dist/scripts/1610-bb6eff2ff1-lite.chunk.js.map +1 -0
- 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/{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/3597-eaae787997-lite.chunk.js +3 -0
- package/dist/scripts/3597-eaae787997-lite.chunk.js.map +1 -0
- package/dist/scripts/4033-8c890bbdd6-lite.chunk.js +3 -0
- package/dist/scripts/4033-8c890bbdd6-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/{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/{5153-acc6c13153-lite.chunk.js → 5153-cf62a95421-lite.chunk.js} +2 -2
- package/dist/scripts/5153-cf62a95421-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-c8a9efba50-lite.chunk.js → 6790-36ce6dda04-lite.chunk.js} +1 -1
- package/dist/scripts/6790-36ce6dda04-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/{7438-88d11bb89a-lite.chunk.js → 7438-38f60d3e8e-lite.chunk.js} +1 -1
- package/dist/scripts/7438-38f60d3e8e-lite.chunk.js.map +1 -0
- package/dist/scripts/{8856-02dd2e486c-lite.chunk.js → 8856-4da691f96f-lite.chunk.js} +1 -1
- 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/{9134-19912ca3ee-lite.chunk.js → 9134-a6a5fc92cf-lite.chunk.js} +1 -1
- package/dist/scripts/9134-a6a5fc92cf-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/{bundle-828ca65de8.min.js → bundle-ea99ddf0dd.min.js} +3 -3
- package/dist/scripts/{bundle-828ca65de8.min.js.map → bundle-ea99ddf0dd.min.js.map} +1 -1
- package/package.json +1 -1
- package/dist/scripts/104-7abe2b09dd-lite.chunk.js +0 -2
- package/dist/scripts/104-7abe2b09dd-lite.chunk.js.map +0 -1
- package/dist/scripts/1074-2ab8b03e30-lite.chunk.js +0 -2
- package/dist/scripts/1074-2ab8b03e30-lite.chunk.js.map +0 -1
- package/dist/scripts/1199-6522b1d291-lite.chunk.js.map +0 -1
- package/dist/scripts/1221-894d8474d5-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-bf848cce4d-lite.chunk.js.map +0 -1
- package/dist/scripts/218-297de74688-lite.chunk.js.map +0 -1
- package/dist/scripts/2968-c4c0114915-lite.chunk.js.map +0 -1
- package/dist/scripts/4033-af3bf49c75-lite.chunk.js +0 -3
- package/dist/scripts/4033-af3bf49c75-lite.chunk.js.map +0 -1
- package/dist/scripts/4185-1f65c7adc9-lite.chunk.js +0 -2
- package/dist/scripts/4185-1f65c7adc9-lite.chunk.js.map +0 -1
- package/dist/scripts/4722-d96da2a258-lite.chunk.js.map +0 -1
- package/dist/scripts/5153-acc6c13153-lite.chunk.js.map +0 -1
- package/dist/scripts/6756-e90680dfcd-lite.chunk.js +0 -3
- package/dist/scripts/6756-e90680dfcd-lite.chunk.js.map +0 -1
- package/dist/scripts/6790-c8a9efba50-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/7438-88d11bb89a-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-02dd2e486c-lite.chunk.js.map +0 -1
- package/dist/scripts/9003-1db925f5ec-lite.chunk.js +0 -2
- package/dist/scripts/9003-1db925f5ec-lite.chunk.js.map +0 -1
- package/dist/scripts/9042-1a42fcbba2-lite.chunk.js +0 -2
- package/dist/scripts/9042-1a42fcbba2-lite.chunk.js.map +0 -1
- package/dist/scripts/9134-19912ca3ee-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/css/{8687-lite-6787cc731a.chunk.css → 3597-lite-6787cc731a.chunk.css} +0 -0
- /package/dist/css/{9528-lite-6787cc731a.chunk.css → 9620-lite-6787cc731a.chunk.css} +0 -0
- /package/dist/scripts/{1221-894d8474d5-lite.chunk.js.LICENSE.txt → 1221-1109d5379d-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{4033-af3bf49c75-lite.chunk.js.LICENSE.txt → 3597-eaae787997-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{4722-d96da2a258-lite.chunk.js.LICENSE.txt → 4033-8c890bbdd6-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{5153-acc6c13153-lite.chunk.js.LICENSE.txt → 4722-9eb591621a-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{6756-e90680dfcd-lite.chunk.js.LICENSE.txt → 5153-cf62a95421-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{8687-549a2d9278-lite.chunk.js.LICENSE.txt → 6756-cfd00009e4-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-828ca65de8.min.js.LICENSE.txt → bundle-ea99ddf0dd.min.js.LICENSE.txt} +0 -0
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[9003],{26025:(e,t,n)=>{n.d(t,{B:()=>a});var i=n(1048),r=n(75795),a={getAudienceAppLinkParams:function(){var e=r.O.getCurrentRoute().appLink,t=i.t.isObject(e.params)?e.params:{},n=t.users,a=t.classrooms,o=t.classroomGroups,s=function(e){var n=t[e];if(n)return Array.isArray(n)?n:[n]},l={};return n&&(l.users=s("users")),a&&(l.classrooms=s("classrooms")),o&&(l.classroomGroups=s("classroomGroups")),l},getDateRangeAppLinkParams:function(){var e=r.O.getCurrentRoute().appLink,t=i.t.isObject(e.params)?e.params:{},n=t.from,a=t.to,o=t.rangeName,s={};return n&&(s.from=n),a&&(s.to=a),o&&(s.rangeName=o),s}}},49087:(e,t,n)=>{n.d(t,{G:()=>a});var i=n(1048),r=n(4594),a={isPlaylist:function(e){return(null==e?void 0:e.typeId)===r.E.Playlist},isOwner:function(e,t){var n;return!(!t||!e||i.t.isEmpty(e._liteOwner))&&e._liteOwner.id.toString()===(null===(n=t.id)||void 0===n?void 0:n.toString())},getVideoCount:function(e){var t,n,i;if(e){var r=0;return(null===(t=e.videos)||void 0===t?void 0:t.count)&&(r+=e.videos.count),(null===(n=e.clips)||void 0===n?void 0:n.count)&&(r+=e.clips.count),(null===(i=e.interactives)||void 0===i?void 0:i.count)&&(r+=e.interactives.count),r}}}},2510:(e,t,n)=>{var i;n.d(t,{y:()=>i}),function(e){e.Link="Link",e.Classroom="Classroom",e.Open="Open",e.Live="Live"}(i||(i={}))},21789:(e,t,n)=>{n.d(t,{x:()=>o});var i=n(75896),r=n(110),a=n(4594),o={getFlattenedRecipients:function(e){return i.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 i.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,n=null===(t=e.recipients)||void 0===t?void 0:t[0];if(n)return n.scopeId?n.scopeId.toString():n.recipientId&&n.recipientTypeId===a.E.Classroom?n.recipientId.toString():void 0},getClassroomForShare:function(e,t){var n=o.getClassroomIdFromShare(e);if(n)return t.find((function(e){return e.id.toString()===n.toString()}))},getRecipientsCount:function(e,t){var n,i,r,a;return t?null!==(a=null===(r=e.recipients)||void 0===r?void 0:r.filter((function(e){return e.recipientTypeId===t})).length)&&void 0!==a?a:0:null!==(i=null===(n=e.recipients)||void 0===n?void 0:n.length)&&void 0!==i?i:0},hasShareExpired:function(e){if(e.expireDate){var t=new Date,n=new Date(e.expireDate);if(r.O.isAfter(t,n))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 n=r.O.convertUTCToLocal(e.expireDate);return r.O.format(n,t)}}},69003:(e,t,n)=>{n.d(t,{cl:()=>b,sD:()=>I});var i=n(23481),r=n(65858),a=n(26025),o=n(49087),s=n(2510),l=n(21789),p=n(4594),u=n(45778),c=n(26860),d=n(35223),m=n(31908),S=n(14070),v=n(97291),y=n(86099);function g(e){return function(e){if(Array.isArray(e))return O(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return O(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)?O(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function O(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,i=Array(t);n<t;n++)i[n]=e[n];return i}var f=i.T.encloseNamespace("myShares.myShares");function I(e){var t,n=e.isPlugin,i=e.breakpoints,r=(null==i?void 0:i.xs)||(null==i?void 0:i.sm),a={button:!r,className:"btn btn-outline-dark"};return(n?[h]:[E,(t=e.sharedObject,(u.G.isType(t,p.E.Video)||u.G.isType(t,p.E.Clip)||u.G.isType(t,p.E.Interactive))&&C),!e.hideShareOptionsActions&&L,T]).reduce((function(t,n){return"function"!=typeof n?t:[].concat(g(t),g(n(Object.assign(Object.assign({},e),{buttonProps:a,isMobile:r}))))}),[])}function b(e){var t=function(e){return e?"string"==typeof e?[+e]:e.map((function(e){return+e}))||[]:[]}(e),n=a.B.getAudienceAppLinkParams();return{typeIdAppLinkParams:t,audienceAppLinkParams:n,currentAppLink:{application:v.O.MY_SHARES,action:S.e.MyShares.HOME,params:Object.assign(Object.assign({},n),{typeId:t})},sentSharesParams:{recipientUserId:null==n?void 0:n.users,recipientGroupId:[].concat(g((null==n?void 0:n.classroomGroups)||[]),g((null==n?void 0:n.classrooms)||[])),objectTypeId:t.length?t:void 0}}}function h(e){var t=e.sharedObject,n=e.buttonProps;return m.M.isVideoType(t)&&m.M.getCanBeConsumed(t).canConsume?[Object.assign(Object.assign({label:f("embedVideo"),appLink:{application:v.O.DEFAULT,action:S.e.Default.PLUGIN_SHARE,args:[t.id],params:{entityType:t.type}}},n),{analyticsOptions:{actionType:r.Vw.Share,descriptor:r.YM.PluginEmbed,workflowPhase:r.eu.Start,eventVersion:r.eq.V5}})]:[]}function E(e){var t=e.sharedObject,n=e.breakpoints,i=e.buttonProps;return m.M.isVideoType(t)?m.M.getCanBeConsumed(t).canConsume?[Object.assign({label:!(null==n?void 0:n.md)&&f("viewVideo"),tooltip:(null==n?void 0:n.md)&&f("viewVideo"),svgName:d.vn.Video,appLink:(0,y.Qh)(t),group:"main"},i)]:[]:c.v.isSeries(t)?[Object.assign({label:!(null==n?void 0:n.md)&&f("viewSeries"),tooltip:(null==n?void 0:n.md)&&f("viewSeries"),svgName:d.vn.Series,appLink:(0,y.Qh)(t),group:"main"},i)]:o.G.isPlaylist(t)?[Object.assign({label:!(null==n?void 0:n.md)&&f("viewPlaylist"),tooltip:(null==n?void 0:n.md)&&f("viewPlaylist"),svgName:d.vn.Playlist,appLink:(0,y.Qh)(t),group:"main"},i)]:[]}function C(e){var t=e.share,n=e.audienceParams,i=e.hasInsights,r=e.breakpoints,a=e.buttonProps;return i?[Object.assign({svgName:d.vn.Analytics,label:!(null==r?void 0:r.md)&&f("viewInsights"),tooltip:(null==r?void 0:r.md)&&f("viewInsights"),appLink:(0,y.pY)(t,n),group:"main"},a)]:[]}function L(e){var t=e.share,n=e.breakpoints,i=e.buttonProps;return l.x.hasShareExpired(t)?[]:t.type===s.y.Link?[Object.assign({label:!(null==n?void 0:n.md)&&f("shareLink"),tooltip:(null==n?void 0:n.md)&&f("shareLink"),svgName:d.vn.Link,appLink:(0,y.Zm)(t),group:"main"},i)]:t.type===s.y.Classroom||t.type===s.y.Open?[Object.assign({label:!(null==n?void 0:n.md)&&f("shareOptions"),tooltip:(null==n?void 0:n.md)&&f("shareOptions"),svgName:d.vn.Share,appLink:(0,y.Zm)(t),group:"main"},i)]:[]}function T(e){var t=e.share,n=e.breakpoints,i=e.buttonProps;return t.type===s.y.Link?[Object.assign(Object.assign({label:!(null==n?void 0:n.md)&&f("deleteShareLink"),tooltip:(null==n?void 0:n.md)&&f("deleteShareLink"),svgName:d.vn.Delete,appLink:(0,y.BR)(t),group:"danger"},i),{className:"btn btn-outline-dark text-danger"})]:t.type===s.y.Classroom?[Object.assign(Object.assign({label:!(null==n?void 0:n.md)&&f("deleteAssignment"),tooltip:(null==n?void 0:n.md)&&f("deleteAssignment"),svgName:d.vn.Delete,appLink:(0,y.BR)(t),group:"danger"},i),{className:"btn btn-outline-dark text-danger"})]:t.type===s.y.Open?[Object.assign(Object.assign({label:!(null==n?void 0:n.md)&&f("deleteOpenClassroom"),tooltip:(null==n?void 0:n.md)&&f("deleteOpenClassroom"),svgName:d.vn.Delete,appLink:(0,y.BR)(t),group:"danger"},i),{className:"btn btn-outline-dark text-danger"})]:[]}},86099:(e,t,n)=>{n.d(t,{BR:()=>E,Qh:()=>g,Rv:()=>f,Sj:()=>I,Zm:()=>h,pY:()=>O,rq:()=>b});var i=n(23481),r=n(28400),a=n(2510),o=n(21789),s=n(4594),l=n(31908),p=n(14070),u=n(97291),c=n(40254),d=n(82431);function m(e){return m="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},m(e)}function S(e,t,n){return(t=function(e){var t=function(e){if("object"!=m(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=m(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==m(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var v=i.T.encloseNamespace("shared.utils"),y=[s.E.Video,s.E.Clip,s.E.Interactive];function g(e){return l.M.isInteractive(e)?{application:u.O.INTERACTIVES,action:p.e.Interactives.VIEW_INTERACTIVE,args:[e.id,r.m.slugify(e.name)]}:l.M.isClip(e)?{application:u.O.CLIPS,action:p.e.Clips.PLAY_CLIP,args:[e.id,r.m.slugify(e.name)]}:l.M.isVideo(e)?{application:u.O.VIDEOS,action:p.e.Videos.PLAY_VIDEO,args:[e.id,r.m.slugify(e.name)]}:e.typeId===s.E.Playlist?{application:u.O.PLAYLISTS,action:p.e.Playlists.PLAYLIST,args:[e.id,r.m.slugify(e.name)]}:e.typeId===s.E.Series?d.j.getSeriesAppLink(e):void 0}function O(e,t){if(!e)return null;if(!y.includes(e.objectTypeId))return g({id:e.objectId.toString(),typeId:e.objectTypeId});if(e.type===a.y.Classroom){var n=o.x.getClassroomIdFromShare(e);return{application:u.O.CLASSROOMS,action:p.e.Classrooms.INSIGHTS_OVERVIEW,args:[n,e.shareId],params:t}}return e.type===a.y.Open?{application:u.O.CLASSROOMS,action:p.e.Classrooms.OPEN_CLASSROOM_INSIGHTS_OVERVIEW,args:[e.shareId],params:t}:{application:u.O.MY_SHARES,action:p.e.MyShares.INSIGHTS_OVERVIEW,args:[e.shareId],params:t}}function f(e,t){if(!e)return null;if(!y.includes(e.objectTypeId))return g({id:e.objectId.toString(),typeId:e.objectTypeId});if(e.type===a.y.Classroom){var n=o.x.getClassroomIdFromShare(e);return{application:u.O.CLASSROOMS,action:p.e.Classrooms.INSIGHTS_HEATMAP,args:[n,e.shareId],params:t}}return e.type===a.y.Open?{application:u.O.CLASSROOMS,action:p.e.Classrooms.OPEN_CLASSROOM_INSIGHTS_HEATMAP,args:[e.shareId],params:t}:{application:u.O.MY_SHARES,action:p.e.MyShares.INSIGHTS_HEATMAP,args:[e.shareId],params:t}}function I(e,t){if(!e)return null;if(!y.includes(e.objectTypeId))return g({id:e.objectId.toString(),typeId:e.objectTypeId});if(e.type===a.y.Classroom){var n=o.x.getClassroomIdFromShare(e);return{application:u.O.CLASSROOMS,action:p.e.Classrooms.INSIGHTS_QUESTIONS,args:[n,e.shareId],params:t}}return e.type===a.y.Open?{application:u.O.CLASSROOMS,action:p.e.Classrooms.OPEN_CLASSROOM_INSIGHTS_QUESTIONS,args:[e.shareId],params:t}:{application:u.O.MY_SHARES,action:p.e.MyShares.INSIGHTS_QUESTIONS,args:[e.shareId],params:t}}function b(e,t){if(!e)return null;if(!y.includes(e.objectTypeId))return g({id:e.objectId.toString(),typeId:e.objectTypeId});if(e.type===a.y.Classroom){var n=o.x.getClassroomIdFromShare(e);return{application:u.O.CLASSROOMS,action:p.e.Classrooms.INSIGHTS_STUDENTS,args:[n,e.shareId],params:t}}return e.type===a.y.Open?{application:u.O.CLASSROOMS,action:p.e.Classrooms.OPEN_CLASSROOM_INSIGHTS_STUDENTS,args:[e.shareId],params:t}:{application:u.O.MY_SHARES,action:p.e.MyShares.INSIGHTS_STUDENTS,args:[e.shareId],params:t}}function h(e){if(e){var t=C(e);return e.type===a.y.Link?{application:u.O.SHARE,action:p.e.Share.SHARE,args:[e.objectId],params:{entityType:t}}:c.W.assignDetails({objectId:e.objectId.toString(),shareId:e.shareId,entityType:t,detailsTitle:v("shareOptions")})}}function E(e){if(e){var t=C(e);if(e.type===a.y.Link)return{application:u.O.SHARE,action:p.e.Share.DELETE_SHARE_LINK,args:[e.objectId],params:{entityType:t,previousAppLink:{application:u.O.MY_SHARES,action:p.e.MyShares.HOME}}};var n=S(S(S(S({},a.y.Classroom,p.e.Share.DELETE_ASSIGNMENT),a.y.Open,p.e.Share.DELETE_OPEN_CLASSROOM),a.y.Link,""),a.y.Live,""),i=S(S(S(S({},a.y.Classroom,p.e.Classrooms.CLASSROOM_HOME),a.y.Open,p.e.Classrooms.OPEN_CLASSROOMS),a.y.Link,""),a.y.Live,""),r=n[e.type],s=i[e.type];if(r&&s)return{application:u.O.SHARE,action:r,args:[e.shareId],params:{previousAppLink:{application:u.O.CLASSROOMS,action:s,args:[o.x.getClassroomIdFromShare(e)]}}}}}function C(e){return e.objectTypeId===s.E.Video?"video":e.objectTypeId===s.E.Interactive?"interactive":e.objectTypeId===s.E.Clip?"clip":e.objectTypeId===s.E.Series?"series":e.objectTypeId===s.E.Playlist?"playlist":void 0}}}]);
|
|
2
|
-
//# sourceMappingURL=9003-1db925f5ec-lite.chunk.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scripts/9003-1db925f5ec-lite.chunk.js","mappings":"6JAOaA,EAAwB,CACnCC,yBAA0B,WACxB,IAAQC,EAAY,sBAAZA,QACFC,EAAS,aAAsBD,EAAQC,QAAUD,EAAQC,OAAuB,CAAC,EAC/EC,EAAuCD,EAAvCC,MAAOC,EAAgCF,EAAhCE,WAAYC,EAAoBH,EAApBG,gBAErBC,EAAW,SAACC,GAChB,IAAMC,EAAQN,EAAOK,GAErB,GAAKC,EAGL,OAAOC,MAAMC,QAAQF,GAASA,EAAQ,CAACA,EACzC,EAEMG,EAAuC,CAAC,EAW9C,OATIR,IACFQ,EAAgBR,MAAQG,EAAS,UAE/BF,IACFO,EAAgBP,WAAaE,EAAS,eAEpCD,IACFM,EAAgBN,gBAAkBC,EAAS,oBAEtCK,CACT,EACAC,0BAA2B,WACzB,IAAQX,EAAY,sBAAZA,QACFC,EAAS,aAAsBD,EAAQC,QAAUD,EAAQC,OAAuB,CAAC,EAC/EW,EAAwBX,EAAxBW,KAAMC,EAAkBZ,EAAlBY,GAAIC,EAAcb,EAAda,UAEZC,EAAyC,CAAC,EAWhD,OATIH,IACFG,EAAiBH,KAAOA,GAEtBC,IACFE,EAAiBF,GAAKA,GAEpBC,IACFC,EAAiBD,UAAYA,GAExBC,CACT,E,2DC/CWC,EAAiB,CAC5BC,WAAU,SAACC,GACT,OAAOA,aAAG,EAAHA,EAAKC,UAAW,YACzB,EAEAC,QAAO,SAACC,EAAoBC,G,MAC1B,SAAKA,IAAgBD,GAAY,YAAqBA,EAASE,cAGxDF,EAASE,WAAWC,GAAGC,cAA6B,QAAd,EAAAH,EAAYE,UAAE,eAAEC,WAC/D,EAEAC,cAAa,SAACL,G,UACZ,GAAKA,EAAL,CAGA,IAAIM,EAAQ,EAWZ,OATmB,QAAf,EAAAN,EAASO,cAAM,eAAED,SACnBA,GAASN,EAASO,OAAOD,QAET,QAAd,EAAAN,EAASQ,aAAK,eAAEF,SAClBA,GAASN,EAASQ,MAAMF,QAED,QAArB,EAAAN,EAASS,oBAAY,eAAEH,SACzBA,GAASN,EAASS,aAAaH,OAE1BA,CAbC,CAcV,E,iBCjCF,IAAYI,E,iBAAZ,SAAYA,GACV,cACA,wBACA,cACA,aACD,CALD,CAAYA,IAAAA,EAAS,I,qECQRC,EAAc,CACzBC,uBAAsB,SAACC,GACrB,OAAO,YAAoBA,EAAOC,KAAI,SAAAC,GAAI,MAAC,OAAY,QAAZ,EAAAA,EAAEC,kBAAU,QAAI,EAAE,IAC/D,EAEAC,yBAAwB,SAACJ,GACvB,IAAMG,EAAaL,EAAYC,uBAAuBC,GACtD,OAAO,SAAiBG,EAAWF,KAAI,SAAAI,GAAI,MAAC,OAAS,QAAT,EAAAA,EAAEC,eAAO,eAAEf,UAAU,KAAGgB,QAAO,SAAAC,GAAC,QAAMA,CAAC,GACrF,EAEAC,wBAAuB,SAACC,G,MAChBC,EAAiC,QAAhB,EAAAD,EAAMP,kBAAU,eAAG,GAE1C,GAAKQ,EAEL,OAAIA,EAAeL,QACVK,EAAeL,QAAQf,WAE5BoB,EAAeC,aAAeD,EAAeE,kBAAoB,cAC5DF,EAAeC,YAAYrB,gBADpC,CAEF,EAEAuB,qBAAoB,SAACJ,EAAczC,GACjC,IAAM8C,EAAcjB,EAAYW,wBAAwBC,GAExD,GAAKK,EAEL,OAAO9C,EAAW+C,MAAK,SAAAC,GAAS,OAAIA,EAAU3B,GAAGC,aAAewB,EAAYxB,UAAU,GACxF,EAEA2B,mBAAkB,SAACR,EAAcS,G,YAC/B,OAAKA,EAEkE,QAAhE,EAAgB,QAAhB,EAAAT,EAAMP,kBAAU,eAAEI,QAAO,SAAAF,GAAC,OAAIA,EAAEQ,kBAAoBM,CAAI,IAAEC,cAAM,QAAI,EAFjC,QAAxB,EAAgB,QAAhB,EAAAV,EAAMP,kBAAU,eAAEiB,cAAM,QAAI,CAGhD,EAEAC,gBAAe,SAACX,GACd,GAAIA,EAAMY,WAAY,CACpB,IAAMC,EAAM,IAAIC,KACVF,EAAa,IAAIE,KAAKd,EAAMY,YAElC,GAAI,YAAmBC,EAAKD,GAC1B,OAAO,CACV,CAED,OAAO,CACT,EAEAG,sBAAqB,SAACf,GACpB,GAAKA,EAAMY,WAAX,CAEA,IAAMI,EAAgB,gBAAuB,IAAIF,KAAKd,EAAMY,YAAa,IAAIE,KAAQ,QAAU,EAG/F,OAFqC,IAAlBE,EAAsB,EAAIA,CAHhB,CAM/B,EAEAC,oBAAmB,SAACjB,EAAckB,GAChC,IAAKlB,EAAMY,WACT,OAAO,KAET,IAAMO,EAAY,sBAA6BnB,EAAMY,YACrD,OAAO,WAAkBO,EAAWD,EACtC,E,u6BC/CF,IACME,EAAY,qBADA,qBAqBZ,SAAUC,EAAsBC,GACpC,IAnBiCC,EAmBzBC,EAA0BF,EAA1BE,SAAUC,EAAgBH,EAAhBG,YACZC,GAAWD,aAAW,EAAXA,EAAaE,MAAMF,aAAW,EAAXA,EAAaG,IAC3CC,EAAc,CAClBC,QAASJ,EACTK,UAAW,wBAUb,OAPwBP,EAAW,CAACQ,GAAuB,CACzDC,GA3B+BV,EA4BZD,EAAQC,cA1B3B,WAAwBA,EAAc,YACtC,WAAwBA,EAAc,WACtC,WAAwBA,EAAc,mBAwBMW,IAC3CZ,EAAQa,yBAA2BC,EACpCC,IAGqBC,QAAO,SAACC,EAASC,GACtC,MAA2B,mBAAhBA,EACFD,EAEF,GAAP,SAAYA,GAAO,EAAKC,EAAY,OAAD,wBAAMlB,GAAO,CAAEO,YAAAA,EAAaH,SAAAA,MACjE,GAAG,GACL,CAWM,SAAUe,EAAgBlE,GAC9B,IAAMmE,EAVF,SAA0BnE,GAC9B,OAAKA,EAEiB,iBAAXA,EACF,EAAEA,GAEJA,EAAOgB,KAAI,SAAAhB,GAAM,OAAKA,CAAM,KAAK,GALpB,EAMtB,CAG8BoE,CAAgBpE,GACtCqE,EAAwB,+BAe9B,MAAO,CACLF,oBAAAA,EACAE,sBAAAA,EACAC,eAjBqB,CACrBC,YAAa,cACbC,OAAQ,kBACR1F,OAAQ,OAAF,wBACDuF,GAAqB,CACxBrE,OAAQmE,KAaVM,iBAVuB,CACvBC,gBAAiBL,aAAqB,EAArBA,EAAuBtF,MACxC4F,iBAAkB,GAAF,UAAON,aAAqB,EAArBA,EAAuBpF,kBAAmB,IAAE,GAAKoF,aAAqB,EAArBA,EAAuBrF,aAAc,KAC7G4F,aAAcT,EAAoBhC,OAASgC,OAAsBU,GASrE,CAUA,SAASpB,EAAoBV,GAC3B,IAAQC,EAA8BD,EAA9BC,aAAcM,EAAgBP,EAAhBO,YAEtB,OAAI,gBAAwBN,IACH,qBAA6BA,GAA5C8B,WAKD,CAAC,OAAD,sBACLC,MAAOlC,EAAU,cACjBhE,QAAS,CACP0F,YAAa,YACbC,OAAQ,yBACRQ,KAAM,CAAChC,EAAa3C,IACpBvB,OAAQ,CAAEmG,WAAYjC,EAAad,QAElCoB,GAAW,CACd4B,iBAAkB,CAChBC,WAAY,WACZC,WAAY,iBACZC,cAAe,WACfC,aAAc,YAKb,EACT,CAEA,SAAS5B,EAAgBX,GACvB,IAAQC,EAA2CD,EAA3CC,aAAcE,EAA6BH,EAA7BG,YAAaI,EAAgBP,EAAhBO,YAEnC,OAAI,gBAAwBN,GACH,qBAA6BA,GAA5C8B,WAKD,CAAC,OAAD,QACLC,QAAQ7B,aAAW,EAAXA,EAAaqC,KAAM1C,EAAU,aACrC2C,SAAStC,aAAW,EAAXA,EAAaqC,KAAM1C,EAAU,aACtC4C,QAAS,WACT5G,SAAS,QAAiBmE,GAC1B0C,MAAO,QACJpC,IARI,GAYP,aAAsBN,GACjB,CAAC,OAAD,QACL+B,QAAQ7B,aAAW,EAAXA,EAAaqC,KAAM1C,EAAU,cACrC2C,SAAStC,aAAW,EAAXA,EAAaqC,KAAM1C,EAAU,cACtC4C,QAAS,YACT5G,SAAS,QAAiBmE,GAC1B0C,MAAO,QACJpC,IAIH,eAA0BN,GACrB,CAAC,OAAD,QACL+B,QAAQ7B,aAAW,EAAXA,EAAaqC,KAAM1C,EAAU,gBACrC2C,SAAStC,aAAW,EAAXA,EAAaqC,KAAM1C,EAAU,gBACtC4C,QAAS,cACT5G,SAAS,QAAiBmE,GAC1B0C,MAAO,QACJpC,IAIA,EACT,CAEA,SAASK,EAAmBZ,GAC1B,IAAQtB,EAAiEsB,EAAjEtB,MAAOkE,EAA0D5C,EAA1D4C,eAAgBC,EAA0C7C,EAA1C6C,YAAa1C,EAA6BH,EAA7BG,YAAaI,EAAgBP,EAAhBO,YAEzD,OAAKsC,EAGE,CAAC,OAAD,QACLH,QAAS,eACTV,QAAQ7B,aAAW,EAAXA,EAAaqC,KAAM1C,EAAU,gBACrC2C,SAAStC,aAAW,EAAXA,EAAaqC,KAAM1C,EAAU,gBACtChE,SAAS,QAA2B4C,EAAOkE,GAC3CD,MAAO,QACJpC,IARI,EAUX,CAEA,SAASO,EAAuBd,GAC9B,IAAQtB,EAAoCsB,EAApCtB,MAAOyB,EAA6BH,EAA7BG,YAAaI,EAAgBP,EAAhBO,YAE5B,OAAI,oBAA4B7B,GACvB,GAELA,EAAMS,OAAS,SACV,CAAC,OAAD,QACL6C,QAAQ7B,aAAW,EAAXA,EAAaqC,KAAM1C,EAAU,aACrC2C,SAAStC,aAAW,EAAXA,EAAaqC,KAAM1C,EAAU,aACtC4C,QAAS,UACT5G,SAAS,QAAuB4C,GAChCiE,MAAO,QACJpC,IAIH7B,EAAMS,OAAS,eAWfT,EAAMS,OAAS,SAVV,CAAC,OAAD,QACL6C,QAAQ7B,aAAW,EAAXA,EAAaqC,KAAM1C,EAAU,gBACrC2C,SAAStC,aAAW,EAAXA,EAAaqC,KAAM1C,EAAU,gBACtC4C,QAAS,WACT5G,SAAS,QAAuB4C,GAChCiE,MAAO,QACJpC,IAeA,EACT,CAEA,SAASQ,EAAiBf,GACxB,IAAQtB,EAAoCsB,EAApCtB,MAAOyB,EAA6BH,EAA7BG,YAAaI,EAAgBP,EAAhBO,YAE5B,OAAI7B,EAAMS,OAAS,SACV,CAAC,OAAD,sBACL6C,QAAQ7B,aAAW,EAAXA,EAAaqC,KAAM1C,EAAU,mBACrC2C,SAAStC,aAAW,EAAXA,EAAaqC,KAAM1C,EAAU,mBACtC4C,QAAS,YACT5G,SAAS,QAAsB4C,GAC/BiE,MAAO,UACJpC,GAAW,CACdE,UAAW,sCAIX/B,EAAMS,OAAS,cACV,CAAC,OAAD,sBACL6C,QAAQ7B,aAAW,EAAXA,EAAaqC,KAAM1C,EAAU,oBACrC2C,SAAStC,aAAW,EAAXA,EAAaqC,KAAM1C,EAAU,oBACtC4C,QAAS,YACT5G,SAAS,QAAsB4C,GAC/BiE,MAAO,UACJpC,GAAW,CACdE,UAAW,sCAIX/B,EAAMS,OAAS,SACV,CAAC,OAAD,sBACL6C,QAAQ7B,aAAW,EAAXA,EAAaqC,KAAM1C,EAAU,uBACrC2C,SAAStC,aAAW,EAAXA,EAAaqC,KAAM1C,EAAU,uBACtC4C,QAAS,YACT5G,SAAS,QAAsB4C,GAC/BiE,MAAO,UACJpC,GAAW,CACdE,UAAW,sCAIR,EACT,C,6zBCvQA,IACMX,EAAY,qBADA,gBAGZgD,EAAqB,CACzB,UACA,SACA,iBAGI,SAAUC,EAAiBC,GAC/B,OAAI,kBAA0BA,GACrB,CACLxB,YAAa,iBACbC,OAAQ,kCACRQ,KAAM,CAAEe,EAAO1F,GAAI,YAAmB0F,EAAOC,QAI7C,WAAmBD,GACd,CACLxB,YAAa,UACbC,OAAQ,oBACRQ,KAAM,CAAEe,EAAO1F,GAAI,YAAmB0F,EAAOC,QAI7C,YAAoBD,GACf,CACLxB,YAAa,WACbC,OAAQ,sBACRQ,KAAM,CAAEe,EAAO1F,GAAI,YAAmB0F,EAAOC,QAI7CD,EAAO/F,SAAW,aACb,CACLuE,YAAa,cACbC,OAAQ,uBACRQ,KAAM,CAAEe,EAAO1F,GAAI,YAAmB0F,EAAOC,QAI7CD,EAAO/F,SAAW,WACb,qBAAqC+F,QAD9C,CAGF,CAEM,SAAUE,EAA2BxE,EAAc3C,GACvD,IAAK2C,EACH,OAAO,KAET,IAAKoE,EAAmBK,SAASzE,EAAMmD,cACrC,OAAOkB,EAAiB,CAAEzF,GAAIoB,EAAM0E,SAAS7F,WAAYN,OAAQyB,EAAMmD,eAEzE,GAAInD,EAAMS,OAAS,cAAqB,CACtC,IAAMJ,EAAc,4BAAoCL,GAExD,MAAO,CACL8C,YAAa,eACbC,OAAQ,iCACRQ,KAAM,CAAElD,EAAaL,EAAM2E,SAC3BtH,OAAAA,EAEH,CAED,OAAI2C,EAAMS,OAAS,SACV,CACLqC,YAAa,eACbC,OAAQ,gDACRQ,KAAM,CAACvD,EAAM2E,SACbtH,OAAAA,GAIG,CACLyF,YAAa,cACbC,OAAQ,+BACRQ,KAAM,CAACvD,EAAM2E,SACbtH,OAAAA,EAEJ,CAEM,SAAUuH,EAA0B5E,EAAc3C,GACtD,IAAK2C,EACH,OAAO,KAET,IAAKoE,EAAmBK,SAASzE,EAAMmD,cACrC,OAAOkB,EAAiB,CAAEzF,GAAIoB,EAAM0E,SAAS7F,WAAYN,OAAQyB,EAAMmD,eAEzE,GAAInD,EAAMS,OAAS,cAAqB,CACtC,IAAMJ,EAAc,4BAAoCL,GAExD,MAAO,CACL8C,YAAa,eACbC,OAAQ,gCACRQ,KAAM,CAAElD,EAAaL,EAAM2E,SAC3BtH,OAAAA,EAEH,CAED,OAAI2C,EAAMS,OAAS,SACV,CACLqC,YAAa,eACbC,OAAQ,+CACRQ,KAAM,CAACvD,EAAM2E,SACbtH,OAAAA,GAIG,CACLyF,YAAa,cACbC,OAAQ,8BACRQ,KAAM,CAACvD,EAAM2E,SACbtH,OAAAA,EAEJ,CAEM,SAAUwH,EAA4B7E,EAAc3C,GACxD,IAAK2C,EACH,OAAO,KAET,IAAKoE,EAAmBK,SAASzE,EAAMmD,cACrC,OAAOkB,EAAiB,CAAEzF,GAAIoB,EAAM0E,SAAS7F,WAAYN,OAAQyB,EAAMmD,eAEzE,GAAInD,EAAMS,OAAS,cAAqB,CACtC,IAAMJ,EAAc,4BAAoCL,GAExD,MAAO,CACL8C,YAAa,eACbC,OAAQ,kCACRQ,KAAM,CAAElD,EAAaL,EAAM2E,SAC3BtH,OAAAA,EAEH,CAED,OAAI2C,EAAMS,OAAS,SACV,CACLqC,YAAa,eACbC,OAAQ,iDACRQ,KAAM,CAACvD,EAAM2E,SACbtH,OAAAA,GAIG,CACLyF,YAAa,cACbC,OAAQ,gCACRQ,KAAM,CAACvD,EAAM2E,SACbtH,OAAAA,EAEJ,CAEM,SAAUyH,EAA2B9E,EAAc3C,GACvD,IAAK2C,EACH,OAAO,KAET,IAAKoE,EAAmBK,SAASzE,EAAMmD,cACrC,OAAOkB,EAAiB,CAAEzF,GAAIoB,EAAM0E,SAAS7F,WAAYN,OAAQyB,EAAMmD,eAEzE,GAAInD,EAAMS,OAAS,cAAqB,CACtC,IAAMJ,EAAc,4BAAoCL,GAExD,MAAO,CACL8C,YAAa,eACbC,OAAQ,iCACRQ,KAAM,CAAElD,EAAaL,EAAM2E,SAC3BtH,OAAAA,EAEH,CAED,OAAI2C,EAAMS,OAAS,SACV,CACLqC,YAAa,eACbC,OAAQ,gDACRQ,KAAM,CAACvD,EAAM2E,SACbtH,OAAAA,GAIG,CACLyF,YAAa,cACbC,OAAQ,+BACRQ,KAAM,CAACvD,EAAM2E,SACbtH,OAAAA,EAEJ,CAEM,SAAU0H,EAAuB/E,GACrC,GAAKA,EAAL,CAEA,IAAMwD,EAAawB,EAAsBhF,GAEzC,OAAIA,EAAMS,OAAS,SACV,CACLqC,YAAa,UACbC,OAAQ,gBACRQ,KAAM,CAACvD,EAAM0E,UACbrH,OAAQ,CAAEmG,WAAAA,IAIP,kBAAkC,CACvCkB,SAAU1E,EAAM0E,SAAS7F,WACzB8F,QAAS3E,EAAM2E,QACfnB,WAAAA,EACAyB,aAAc7D,EAAU,iBAjBR,CAmBpB,CAEM,SAAU8D,EAAsBlF,GACpC,GAAKA,EAAL,CAEA,IAAMwD,EAAawB,EAAsBhF,GAEzC,GAAIA,EAAMS,OAAS,SACjB,MAAO,CACLqC,YAAa,UACbC,OAAQ,4BACRQ,KAAM,CAACvD,EAAM0E,UACbrH,OAAQ,CACNmG,WAAAA,EACA2B,gBAAiB,CACfrC,YAAa,cACbC,OAAQ,qBAMhB,IAAMR,EAAO,WACV,cAAsB,6BACtB,SAAiB,iCACjB,SAAiB,IACjB,SAAiB,IAGd6C,EAAe,WAClB,cAAsB,+BACtB,SAAiB,gCACjB,SAAiB,IACjB,SAAiB,IAGdrC,EAASR,EAAQvC,EAAMS,MACvB4E,EAAiBD,EAAgBpF,EAAMS,MAE7C,GAAKsC,GAAWsC,EAEhB,MAAO,CACLvC,YAAa,UACbC,OAAQA,EACRQ,KAAM,CAACvD,EAAM2E,SACbtH,OAAQ,CACN8H,gBAAiB,CACfrC,YAAa,eACbC,OAAQsC,EACR9B,KAAM,CAAC,4BAAoCvD,MA9C/B,CAkDpB,CAaA,SAASgF,EAAsBhF,GAC7B,OAAIA,EAAMmD,eAAiB,UAClB,QAELnD,EAAMmD,eAAiB,gBAClB,cAELnD,EAAMmD,eAAiB,SAClB,OAELnD,EAAMmD,eAAiB,WAClB,SAELnD,EAAMmD,eAAiB,aAClB,gBADT,CAEF,C","sources":["file:///app/packages/libs/shared/src/apps/analytics/utils/AnalyticsFilterUtils.ts","file:///app/packages/libs/shared/src/apps/playlists/utils/PlaylistHelper.ts","file:///app/packages/libs/shared/src/apps/share-v2/enums/ShareType.ts","file:///app/packages/libs/shared/src/apps/share-v2/utils/ShareHelper.ts","file:///app/packages/projects/lite/src/apps/my-shares/views/my-shares/MySharesViewUtils.ts","file:///app/packages/projects/lite/src/shared/utils/ObjectAppLinkHelper.ts"],"sourcesContent":["import { HashObject } from 'libs/common/react/interfaces';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { AudienceQueryParams } from 'libs/shared/apps/analytics/interfaces/AudienceQueryParams';\nimport { DateRangeQueryParams } from 'libs/shared/apps/analytics/interfaces/DateRangeQueryParams';\nimport { ContextService } from 'libs/shared/services/ContextService';\n\nexport const AnalyticsFilterHelper = {\n getAudienceAppLinkParams: () => {\n const { appLink } = ContextService.getCurrentRoute();\n const params = ObjectHelper.isObject(appLink.params) ? appLink.params as HashObject : {};\n const { users, classrooms, classroomGroups } = params;\n\n const getParam = (key: keyof AudienceQueryParams) => {\n const param = params[key];\n\n if (!param)\n return;\n\n return Array.isArray(param) ? param : [param];\n };\n\n const audienceFilters: AudienceQueryParams = {};\n\n if (users)\n audienceFilters.users = getParam('users');\n\n if (classrooms)\n audienceFilters.classrooms = getParam('classrooms');\n\n if (classroomGroups)\n audienceFilters.classroomGroups = getParam('classroomGroups');\n\n return audienceFilters;\n },\n getDateRangeAppLinkParams: () => {\n const { appLink } = ContextService.getCurrentRoute();\n const params = ObjectHelper.isObject(appLink.params) ? appLink.params as HashObject : {};\n const { from, to, rangeName } = params;\n\n const dateRangeFilters: DateRangeQueryParams = {};\n\n if (from)\n dateRangeFilters.from = from;\n\n if (to)\n dateRangeFilters.to = to;\n\n if (rangeName)\n dateRangeFilters.rangeName = rangeName;\n\n return dateRangeFilters;\n }\n};","import { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { BaseObject, CurrentUser, Playlist } from 'libs/shared/interfaces';\n\nexport const PlaylistHelper = {\n isPlaylist(obj: BaseObject): obj is Playlist {\n return obj?.typeId === MasterType.Playlist;\n },\n\n isOwner(playlist: Playlist, currentUser: CurrentUser): boolean {\n if (!currentUser || !playlist || ObjectHelper.isEmpty(playlist._liteOwner))\n return false;\n\n return playlist._liteOwner.id.toString() === currentUser.id?.toString();\n },\n\n getVideoCount(playlist: Playlist): number {\n if (!playlist)\n return;\n\n let count = 0;\n\n if (playlist.videos?.count)\n count += playlist.videos.count;\n\n if (playlist.clips?.count)\n count += playlist.clips.count;\n\n if (playlist.interactives?.count)\n count += playlist.interactives.count;\n\n return count;\n }\n};","export enum ShareType {\n Link = 'Link',\n Classroom = 'Classroom',\n Open = 'Open',\n Live = 'Live'\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 { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EventVersion, ShareDescriptors, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { AudienceQueryParams } from 'libs/shared/apps/analytics/interfaces/AudienceQueryParams';\nimport { AnalyticsFilterHelper } from 'libs/shared/apps/analytics/utils/AnalyticsFilterUtils';\nimport { PlaylistHelper } from 'libs/shared/apps/playlists/utils/PlaylistHelper';\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 { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { Breakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { BaseObject } from 'libs/shared/interfaces';\nimport { MasterTypeHelper } from 'libs/shared/utils/MasterTypeHelper';\nimport { SeriesHelper } from 'libs/shared/utils/SeriesHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { getObjectAppLink } from 'shared/utils/ObjectAppLinkHelper';\nimport { getDeleteShareAppLink, getInsightsOverviewAppLink, getShareOptionsAppLink } from 'shared/utils/ObjectAppLinkHelper';\n\nconst namespace = 'myShares.myShares';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function hasInsightsActions(sharedObject: BaseObject): boolean {\n return (\n MasterTypeHelper.isType(sharedObject, MasterType.Video) ||\n MasterTypeHelper.isType(sharedObject, MasterType.Clip) ||\n MasterTypeHelper.isType(sharedObject, MasterType.Interactive)\n );\n}\n\ninterface ShareObjectActionsOptions {\n share: Share;\n sharedObject: BaseObject;\n audienceParams?: AudienceQueryParams;\n hasInsights?: boolean;\n isPlugin?: boolean;\n breakpoints?: Breakpoints;\n hideShareOptionsActions?: boolean;\n}\n\nexport function getShareObjectActions(options: ShareObjectActionsOptions): ActionOptions[] {\n const { isPlugin, breakpoints } = options;\n const isMobile = breakpoints?.xs || breakpoints?.sm;\n const buttonProps = {\n button: !isMobile,\n className: 'btn btn-outline-dark'\n };\n\n const actionProviders = isPlugin ? [getActionsForPlugin] : [\n getMediaActions,\n hasInsightsActions(options.sharedObject) && getInsightsActions,\n !options.hideShareOptionsActions && getShareOptionsActions,\n getDeleteActions\n ];\n\n return actionProviders.reduce((actions, getActionFn) => {\n if (typeof getActionFn !== 'function')\n return actions;\n \n return [ ...actions, ...getActionFn({ ...options, buttonProps, isMobile }) ];\n }, [] as ActionOptions[]);\n}\n\nexport function getTypeIdParams(typeId: string | string[]): MasterType[] {\n if (!typeId) return [];\n\n if (typeof typeId === 'string')\n return [+typeId];\n\n return typeId.map(typeId => +typeId) || [];\n}\n\nexport function getSharesParams(typeId: string | string[]) {\n const typeIdAppLinkParams = getTypeIdParams(typeId);\n const audienceAppLinkParams = AnalyticsFilterHelper.getAudienceAppLinkParams();\n const currentAppLink = {\n application: AppChannels.MY_SHARES,\n action: Actions.MyShares.HOME,\n params: {\n ...audienceAppLinkParams,\n typeId: typeIdAppLinkParams\n }\n };\n const sentSharesParams = {\n recipientUserId: audienceAppLinkParams?.users,\n recipientGroupId: [ ...audienceAppLinkParams?.classroomGroups || [], ...audienceAppLinkParams?.classrooms || [] ],\n objectTypeId: typeIdAppLinkParams.length ? typeIdAppLinkParams : undefined\n };\n\n return {\n typeIdAppLinkParams,\n audienceAppLinkParams,\n currentAppLink,\n sentSharesParams\n };\n}\n\ninterface ShareActionHanderOptions extends ShareObjectActionsOptions {\n isMobile: boolean;\n buttonProps: {\n button: boolean;\n className: string;\n }\n}\n\nfunction getActionsForPlugin(options: ShareActionHanderOptions): ActionOptions[] {\n const { sharedObject, buttonProps } = options;\n\n if (VideoHelper.isVideoType(sharedObject)) {\n const { canConsume } = VideoHelper.getCanBeConsumed(sharedObject);\n\n if (!canConsume)\n return [];\n\n return [{\n label: getPhrase('embedVideo'),\n appLink: {\n application: AppChannels.DEFAULT,\n action: Actions.Default.PLUGIN_SHARE,\n args: [sharedObject.id],\n params: { entityType: sharedObject.type }\n },\n ...buttonProps,\n analyticsOptions: {\n actionType: UserAction.Share,\n descriptor: ShareDescriptors.PluginEmbed,\n workflowPhase: WorkflowPhase.Start,\n eventVersion: EventVersion.V5\n }\n }];\n }\n\n return [];\n}\n\nfunction getMediaActions(options: ShareActionHanderOptions): ActionOptions[] {\n const { sharedObject, breakpoints, buttonProps } = options;\n\n if (VideoHelper.isVideoType(sharedObject)) {\n const { canConsume } = VideoHelper.getCanBeConsumed(sharedObject);\n\n if (!canConsume)\n return [];\n\n return [{\n label: !breakpoints?.md && getPhrase('viewVideo'),\n tooltip: breakpoints?.md && getPhrase('viewVideo'),\n svgName: cvSvgLibrary.Video,\n appLink: getObjectAppLink(sharedObject),\n group: 'main',\n ...buttonProps\n }];\n }\n \n if (SeriesHelper.isSeries(sharedObject)) {\n return [{\n label: !breakpoints?.md && getPhrase('viewSeries'),\n tooltip: breakpoints?.md && getPhrase('viewSeries'),\n svgName: cvSvgLibrary.Series,\n appLink: getObjectAppLink(sharedObject),\n group: 'main',\n ...buttonProps\n }];\n }\n \n if (PlaylistHelper.isPlaylist(sharedObject)) {\n return [{\n label: !breakpoints?.md && getPhrase('viewPlaylist'),\n tooltip: breakpoints?.md && getPhrase('viewPlaylist'),\n svgName: cvSvgLibrary.Playlist,\n appLink: getObjectAppLink(sharedObject),\n group: 'main',\n ...buttonProps\n }];\n }\n \n return [];\n}\n\nfunction getInsightsActions(options: ShareActionHanderOptions): ActionOptions[] {\n const { share, audienceParams, hasInsights, breakpoints, buttonProps } = options;\n\n if (!hasInsights)\n return [];\n\n return [{\n svgName: cvSvgLibrary.Analytics,\n label: !breakpoints?.md && getPhrase('viewInsights'),\n tooltip: breakpoints?.md && getPhrase('viewInsights'),\n appLink: getInsightsOverviewAppLink(share, audienceParams),\n group: 'main',\n ...buttonProps\n }];\n}\n\nfunction getShareOptionsActions(options: ShareActionHanderOptions): ActionOptions[] {\n const { share, breakpoints, buttonProps } = options;\n\n if (ShareHelper.hasShareExpired(share))\n return [];\n\n if (share.type === ShareType.Link) {\n return [{\n label: !breakpoints?.md && getPhrase('shareLink'),\n tooltip: breakpoints?.md && getPhrase('shareLink'),\n svgName: cvSvgLibrary.Link,\n appLink: getShareOptionsAppLink(share),\n group: 'main',\n ...buttonProps\n }];\n }\n\n if (share.type === ShareType.Classroom) {\n return [{\n label: !breakpoints?.md && getPhrase('shareOptions'),\n tooltip: breakpoints?.md && getPhrase('shareOptions'),\n svgName: cvSvgLibrary.Share,\n appLink: getShareOptionsAppLink(share),\n group: 'main',\n ...buttonProps\n }];\n }\n\n if (share.type === ShareType.Open) {\n return [{\n label: !breakpoints?.md && getPhrase('shareOptions'),\n tooltip: breakpoints?.md && getPhrase('shareOptions'),\n svgName: cvSvgLibrary.Share,\n appLink: getShareOptionsAppLink(share),\n group: 'main',\n ...buttonProps\n }];\n }\n\n return [];\n}\n\nfunction getDeleteActions(options: ShareActionHanderOptions): ActionOptions[] {\n const { share, breakpoints, buttonProps } = options;\n \n if (share.type === ShareType.Link) {\n return [{\n label: !breakpoints?.md && getPhrase('deleteShareLink'),\n tooltip: breakpoints?.md && getPhrase('deleteShareLink'),\n svgName: cvSvgLibrary.Delete,\n appLink: getDeleteShareAppLink(share),\n group: 'danger',\n ...buttonProps,\n className: 'btn btn-outline-dark text-danger'\n }];\n }\n\n if (share.type === ShareType.Classroom) {\n return [{\n label: !breakpoints?.md && getPhrase('deleteAssignment'),\n tooltip: breakpoints?.md && getPhrase('deleteAssignment'),\n svgName: cvSvgLibrary.Delete,\n appLink: getDeleteShareAppLink(share),\n group: 'danger',\n ...buttonProps,\n className: 'btn btn-outline-dark text-danger'\n }];\n }\n\n if (share.type === ShareType.Open) {\n return [{\n label: !breakpoints?.md && getPhrase('deleteOpenClassroom'),\n tooltip: breakpoints?.md && getPhrase('deleteOpenClassroom'),\n svgName: cvSvgLibrary.Delete,\n appLink: getDeleteShareAppLink(share),\n group: 'danger',\n ...buttonProps,\n className: 'btn btn-outline-dark text-danger'\n }];\n }\n\n return [];\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 const actions: Record<ShareType, string> = {\n [ShareType.Classroom]: Actions.Share.DELETE_ASSIGNMENT,\n [ShareType.Open]: Actions.Share.DELETE_OPEN_CLASSROOM,\n [ShareType.Link]: '',\n [ShareType.Live]: ''\n };\n\n const previousActions: Record<ShareType, string> = {\n [ShareType.Classroom]: Actions.Classrooms.CLASSROOM_HOME,\n [ShareType.Open]: Actions.Classrooms.OPEN_CLASSROOMS,\n [ShareType.Link]: '',\n [ShareType.Live]: ''\n };\n \n const action = actions[share.type];\n const previousAction = previousActions[share.type];\n\n if (!action || !previousAction) return;\n \n return {\n application: AppChannels.SHARE,\n action: action,\n args: [share.shareId],\n params: {\n previousAppLink: {\n application: AppChannels.CLASSROOMS,\n action: previousAction,\n args: [ShareHelper.getClassroomIdFromShare(share)]\n } as Core.AppLink\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":["AnalyticsFilterHelper","getAudienceAppLinkParams","appLink","params","users","classrooms","classroomGroups","getParam","key","param","Array","isArray","audienceFilters","getDateRangeAppLinkParams","from","to","rangeName","dateRangeFilters","PlaylistHelper","isPlaylist","obj","typeId","isOwner","playlist","currentUser","_liteOwner","id","toString","getVideoCount","count","videos","clips","interactives","ShareType","ShareHelper","getFlattenedRecipients","shares","map","s","recipients","getFlattenedUniqueScopes","r","scopeId","filter","x","getClassroomIdFromShare","share","firstRecipient","recipientId","recipientTypeId","getClassroomForShare","classroomId","find","classroom","getRecipientsCount","type","length","hasShareExpired","expireDate","now","Date","calculateDaysToExpiry","remainingDays","getShareLocalExpiry","format","localDate","getPhrase","getShareObjectActions","options","sharedObject","isPlugin","breakpoints","isMobile","xs","sm","buttonProps","button","className","getActionsForPlugin","getMediaActions","getInsightsActions","hideShareOptionsActions","getShareOptionsActions","getDeleteActions","reduce","actions","getActionFn","getSharesParams","typeIdAppLinkParams","getTypeIdParams","audienceAppLinkParams","currentAppLink","application","action","sentSharesParams","recipientUserId","recipientGroupId","objectTypeId","undefined","canConsume","label","args","entityType","analyticsOptions","actionType","descriptor","workflowPhase","eventVersion","md","tooltip","svgName","group","audienceParams","hasInsights","INSIGHTS_WHITELIST","getObjectAppLink","object","name","getInsightsOverviewAppLink","includes","objectId","shareId","getInsightsHeatmapAppLink","getInsightsQuestionsAppLink","getInsightsStudentsAppLink","getShareOptionsAppLink","getSharableEntityType","detailsTitle","getDeleteShareAppLink","previousAppLink","previousActions","previousAction"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[9042],{93479:(e,t,a)=>{a.d(t,{I:()=>o});var n=a(99940);function r(e,t,a){if(!t)return e;var n="".concat(e,":").concat(t.start,":").concat(t.end),r=Array.isArray(t.userId)?t.userId.sort().join(":"):t.userId,i=Array.isArray(t.groupId)?t.groupId.sort().join(":"):t.groupId,o=Array.isArray(t.customerId)?t.customerId.sort().join(":"):t.customerId;return r&&(n+=":".concat(r)),i&&(n+=":".concat(i)),o&&(n+=":".concat(o)),a&&(n+=":".concat(a)),n}function i(e,t){return{currentUserId:e.id,currentCustomerId:e.customerId,dateRange:t?{start:t.start,end:t.end}:void 0,userIds:null==t?void 0:t.userId,classroomsAndGroups:null==t?void 0:t.groupId}}var o={interactiveResultSet:function(e,t,a,o,s,c,l,u){return{url:s?"/api/domain/v3/analytics/interactives/".concat(e,"/metadata/").concat(t):"/api/domain/v2/analytics/interactives/".concat(e,"/metadata/").concat(t),key:r("interactive:result:set:".concat(e,":").concat(t),o),data:i(a,o),type:n.k.POST,normalize:!1,success:c,error:l,always:u}},mark:function(e,t,a,r,i,o,s){return{url:"/api/domain/v1/analytics/answers/".concat(a),key:"mark:answer:".concat(a,":").concat(r.resultId),type:n.k.PUT,data:r,normalize:!1,invalidationKeys:"interactive:result:set:".concat(e,":").concat(t),success:i,error:o,always:s}},pendingReviews:function(e){return{url:"/api/domain/v1/analytics/interactives/pending-reviews/summary",key:"interactives:pending:reviews",type:n.k.POST,data:e}},interactiveResultsReport:function(e){return{url:"/api/domain/v3/analytics/interactives/report",key:"interactive:results:report",data:e,type:n.k.POST,normalize:!1}}}},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"}(n||(n={}))},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)}}},49863:(e,t,a)=>{a.d(t,{m9:()=>S,Ad:()=>E,Kh:()=>I});var n=a(32735),r=a(23481),i=a(75896),o=a(97408),s=a(18995),c=a(12528),l=a(83914),u=a(36532),d=a(4594),m=a(36511),p=a(35223),v=a(64818);const f={avatarContainer:"ByxQa",sm:"EgJ0v",sharedAvatar:"cW0NT"};var y=r.T.encloseNamespace("reportsShare.sharedToAvatarList");function h(e){var t=i.m.countBy(e,"typeId"),a=t[d.E.User],n=t[d.E.Classroom],r=t[d.E.ClassroomGroup];return a&&n&&r?y("classroomsGroupsAndUsers",{userCount:a,classroomCount:n,groupCount:r}):a&&n?y("classroomsAndUsers",{userCount:a,classroomCount:n}):a&&r?y("groupsAndUsers",{userCount:a,groupCount:r}):n&&r?y("classroomsAndGroups",{classroomCount:n,groupCount:r}):a?y("users",{userCount:a}):n?y("classrooms",{classroomCount:n}):r?y("groups",{groupCount:r}):void 0}function g(e){var t,a,r,i,s,y=(null===(t=e.item)||void 0===t?void 0:t.typeId)===d.E.User&&e.item,h=(null===(a=e.item)||void 0===a?void 0:a.typeId)===d.E.Classroom&&e.item,g=(null===(r=e.item)||void 0===r?void 0:r.typeId)===d.E.ClassroomGroup&&e.item,S="d-flex justify-content-center align-items-center text-white rounded-circle h-100 w-100";return n.createElement(n.Fragment,null,!!y&&n.createElement(u.u,{title:"".concat(y.name," ").concat(y.surname),spanHack:!0,spanHackClassName:"h-100 w-100"},n.createElement(o.q,{imageUrl:null===(i=y.avatar)||void 0===i?void 0:i.url,imageCdnUrl:e.imageCdnUrl,initials:v.l.getInitials(y.name,y.surname),extraClasses:f.sharedAvatar})),!!h&&n.createElement(u.u,{title:h.name,spanHack:!0,spanHackClassName:"h-100 w-100"},n.createElement("div",{className:S},n.createElement(c.f,{svgName:p.vn.Classrooms,svgSize:l.S.Large,variant:"teal"}))),!!g&&n.createElement(u.u,{title:g.name,spanHack:!0,spanHackClassName:"h-100 w-100"},n.createElement("div",{className:S},n.createElement(c.f,{svgName:p.vn.Group,variant:(0,m.I)(null===(s=g.metadata)||void 0===s?void 0:s.colour)}))))}function S(e){return n.createElement("div",{className:"".concat(f.avatarContainer," ").concat("sm"===e.avatarSize?f.sm:"")},n.createElement(u.u,{title:y("anonymous"),spanHack:!0,spanHackClassName:"bg-light text-dark d-flex justify-content-center align-items-center rounded-circle h-100 w-100"},n.createElement(l.x,{svgName:p.vn.Anonymous,size:"sm"===e.avatarSize?l.S.Small:null})))}function E(e){return n.createElement("div",{className:"".concat(f.avatarContainer," ").concat("sm"===e.avatarSize?f.sm:"")},n.createElement(u.u,{title:e.text||y("sharedLink"),spanHack:!0,spanHackClassName:"bg-light text-dark d-flex justify-content-center align-items-center rounded-circle h-100 w-100 ".concat(e.className||"")},n.createElement(l.x,{svgName:p.vn.Link,size:"sm"===e.avatarSize?l.S.Small:null})))}function I(e){return n.createElement(s.e,Object.assign({},e,{items:e.recipients,avatarItem:g,avatarContainerClassname:"".concat(f.avatarContainer," ").concat("sm"===e.avatarSize?f.sm:""),getHiddenTooltip:h,hasShareLink:e.hasShareLink,shareLinkText:e.shareLinkText}))}I.defaultProps={maxAvatars:5}},65853:(e,t,a)=>{a.d(t,{R:()=>m});var n=a(23481),r=a(110),i=a(4594),o=a(49080),s=a(26361),c=a(35223),l=a(31908);function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=Array(t);a<t;a++)n[a]=e[a];return n}var d=n.T.encloseNamespace("share.shareLinkInfo"),m={getPrivateIconAndText:function(e){var t=e.entityTypeId,a=e.privacy,n=e.hasStudentExp,r=e.entity,o=e.yearGroups;if(t===i.E.Topic||t===i.E.Series)return{icon:c.vn.VisibleOn,text:d(n?"justMySchoolTeachers":"justMySchoolDescription")};if(!Array.isArray(a))switch(a.privacy){case"public":return{icon:c.vn.VisibleOn,text:d("publicDescription")};case"protected":return a.overrideRestrictions?{icon:c.vn.VisibleOn,text:d("clickViewOnly")}:{icon:c.vn.Lock,text:m.getRespectRatingText(r,o,n)};case"just_my_customer":return a.overrideRestrictions?{icon:c.vn.Lock,text:d(n?"justMySchoolTeachers":"justMySchoolDescription")}:{icon:c.vn.Lock,text:m.getRespectRatingText(r,o,n)};case"restricted":case"private":return{icon:c.vn.Lock,text:d("privateDescription")};default:return{}}},getIconAndText:function(e){var t=e.linkExpireDate,a=e.isPasswordProtected,n=e.status;if(!t&&!a)return m.getPrivateIconAndText(e);if(!t)return{icon:c.vn.Lock,text:d("password")};var i=r.O.isToday(t),s=r.O.diffBetween(t,new Date,"day");if(!a){var l=i?d("expiryToday"):d("expiry",{days:s});return n===o.F.Expired&&(l=d("expired")),{icon:c.vn.Timer,text:l}}var u=i?d("passwordExpiryToday"):d("passwordExpiry",{days:s});return n===o.F.Expired&&(u=d("passwordExpired")),{icon:c.vn.Lock,text:u}},getRespectRatingText:function(e,t,a){var n;if(!e||!t)return null;if(a)return d("justMySchoolTeachers");if(!l.M.isVideoType(e))return d("collectionRating");var r=s.l.getWeightedRestriction(null===(n=e._restrictions)||void 0===n?void 0:n.value);if(r&&!r.yearGroup)return d("onlyAdmins");var i,o,c,m=l.M.getRating(e),p=function(e,t){var a="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!a){if(Array.isArray(e)||(a=function(e,t){if(e){if("string"==typeof e)return u(e,t);var a={}.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?u(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){a&&(e=a);var n=0,r=function(){};return{s:r,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,o=!0,s=!1;return{s:function(){a=a.call(e)},n:function(){var e=a.next();return o=e.done,e},e:function(e){s=!0,i=e},f:function(){try{o||null==a.return||a.return()}finally{if(s)throw i}}}}(t);try{for(p.s();!(c=p.n()).done;){var v=c.value;(!i||v.value>i.value)&&(i=v),r&&v.value<=r.yearGroup||m&&v.rating.value<m.value||(!o||v.value<o.value)&&(o=v)}}catch(e){p.e(e)}finally{p.f()}return o?1===t.length?d("clickViewOnly"):o.value===i.value?d("maxYearGroup",{yearGroup:i.name}):d("yearGroupRange",{yearGroup:o.name}):d("onlyStaff")}}},18995:(e,t,a)=>{a.d(t,{e:()=>c});var n=a(32735),r=a(23481),i=a(49863),o=a(36532),s=r.T.encloseNamespace("shared.avatarList");function c(e){var t=e.items.length>e.maxAvatars?e.items.slice(0,e.maxAvatars-1):e.items,a=e.items.length>t.length?e.items.slice(e.maxAvatars-1):[],r=e.avatarItem,c=a.length,l="sm"===e.avatarSize?4:8;function u(t){return{transform:"translateX(".concat((e.hasShareLink?t+1:t)*-l,"px)"),zIndex:e.maxAvatars-t}}return 0===t.length&&0===a.length?n.createElement(n.Fragment,null):n.createElement("div",{className:"d-flex",style:{marginRight:"-".concat((t.length-1+(a.length?1:0)+(e.hasShareLink?1:0))*l,"px")}},e.hasShareLink&&n.createElement("div",{style:{zIndex:e.maxAvatars+1}},n.createElement(i.Ad,{text:e.shareLinkText,avatarSize:e.avatarSize,className:"bg-dark text-white"})),t.map((function(t,a){return n.createElement("div",{className:"".concat(e.avatarContainerClassname||""),key:t.id,style:u(a)},n.createElement(r,{item:t,imageCdnUrl:e.imageCdnUrl,index:a,maxAvatars:e.maxAvatars}))})),!!a.length&&n.createElement("div",{className:"".concat(e.avatarContainerClassname||""," bg-white rounded-circle"),style:{transform:"translateX(".concat(t.length*-l,"px)"),zIndex:e.maxAvatars-t.length}},n.createElement(o.u,{title:e.getHiddenTooltip?e.getHiddenTooltip(a):e.roleToDisplay?s("staff"===e.roleToDisplay?"staff":"student",{count:c,smartCount:c}):s("users",{count:c,smartCount:c}),spanHack:!0,spanHackClassName:"h-100 w-100"},n.createElement("div",{className:"d-flex justify-content-center align-items-center border border-dark rounded-circle h-100 w-100 ".concat(e.numberClassname||"")},"+".concat(a.length)))))}c.defaultProps={maxAvatars:5}},39902:(e,t,a)=>{a.d(t,{FN:()=>v,SW:()=>f,fh:()=>p});var n=a(32735),r=a(20354),i=a(75896);function o(e){return function(e){if(Array.isArray(e))return c(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||s(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 s(e,t){if(e){if("string"==typeof e)return c(e,t);var a={}.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?c(e,t):void 0}}function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=Array(t);a<t;a++)n[a]=e[a];return n}function l(e){return l="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},l(e)}function u(e,t,a){return(t=function(e){var t=function(e){if("object"!=l(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var a=t.call(e,"string");if("object"!=l(a))return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==l(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}var d=function(e,t){var a={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(a[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(a[n[r]]=e[n[r]])}return a},m=50;function p(e,t){var a=i.m.chunk(e,m).map((function(e){return t(i.m.uniq(e))})),n=r.a.useBasicFetchAll(a),o=i.m.flatten(n.data),s=n.data.length?o.reduce((function(e,t){return Object.assign(Object.assign({},e),u({},t.id,t))}),{}):null;return{itemsArr:o,items:s,isFetching:n.isFetching,hasCompleted:n.hasCompleted}}function v(e,t,a){var r=null!=a?a:function(e){return"object"===l(e)?e.id:e},i=f({getRequest:t,_getKey:a}),o=i.fetchItems,s=d(i,["fetchItems"]);return n.useEffect((function(){(null==e?void 0:e.length)&&o(e)}),[null==e?void 0:e.map(r).join(",")]),s}function f(e){var t,a,c,d,p,v=null!==(t=e._getKey)&&void 0!==t?t:function(e){return"object"===l(e)?e.id:e},f=n.useRef(new Set),y=(d=n.useState([]),p=2,function(e){if(Array.isArray(e))return e}(d)||function(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var n,r,i,o,s=[],c=!0,l=!1;try{if(i=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;c=!1}else for(;!(c=(n=i.call(a)).done)&&(s.push(n.value),s.length!==t);c=!0);}catch(e){l=!0,r=e}finally{try{if(!c&&null!=a.return&&(o=a.return(),Object(o)!==o))return}finally{if(l)throw r}}return s}}(d,p)||s(d,p)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),h=y[0],g=y[1],S=r.a.useBasicFetchAll(h),E=i.m.flatten(S.data),I=S.data.length?E.reduce((function(e,t){return Object.assign(Object.assign({},e),u({},v(t),t))}),{}):null;return{hasFirstRequestCompleted:!!(null===(c=null===(a=S.responses)||void 0===a?void 0:a[0])||void 0===c?void 0:c.hasCompleted),itemsArr:E,items:I,isFetching:S.isFetching,fetchItems:function(t){if(null==t?void 0:t.length){var a=[];t.forEach((function(e){var t=v(e);f.current.has(t)||(a.push(e),f.current.add(t))})),a.length&&g((function(t){return[].concat(o(t),o(i.m.chunk(a,m).map(e.getRequest)))}))}}}}},36511:(e,t,a)=>{a.d(t,{I:()=>r});var n=a(38129);function r(e){switch(e){case n.R.Pink:return"pink";case n.R.Orange:return"orange";case n.R.Green:return"green";case n.R.Blue:return"blue";case n.R.Purple:return"purple";case n.R.Indigo:return"indigo";default:return"pink"}}},58647:(e,t,a)=>{a.r(t),a.d(t,{SharedByMeView:()=>Se});var n=a(32735),r=a(81886),i=a(23481),o=a(97958),s=i.T.encloseNamespace("share.sharedByMeEmptyState");function c(e){return n.createElement(o.u,null,n.createElement(o.u.Image,{src:e.imageUrl,size:"small"}),n.createElement(o.u.Heading,null,s(e.useInteractiveCopy?"interactivesHeading":"genericHeading")),n.createElement(o.u.Info,null,s(e.useInteractiveCopy?"interactivesInfo":"genericInfo")),!!e.appLink&&n.createElement(o.u.Cta,{appLink:e.appLink,text:s("cta")}))}var l=a(95834),u=a(6748),d=a(82602),m=a(75896),p=a(110),v=a(65858),f=a(83914),y=a(36532),h=a(49080),g=a(85063),S=a(35223);const E={indicatorContainer:"T6YAv",indicator:"_MRHG"};var I=i.T.encloseNamespace("share.shareStatusIndicator");function b(e){if(e.type===g.y.DirectShare)return I("active");switch(e.status){case h.F.Active:return I("active");case h.F.Expired:return I("expired")}}function C(e){if(e.type===g.y.DirectShare)return"bg-success";switch(e.status){case h.F.Active:return"bg-success";case h.F.Expired:return"bg-gray-500"}}function O(e){var t;return e.share.type!==g.y.DirectShare||(null===(t=e.share.recipients)||void 0===t?void 0:t.length)?e.share.type===g.y.ShareLink&&e.share.isPasswordProtected?n.createElement(y.u,{title:I("passwordProtected"),spanHack:!0},n.createElement(f.x,{svgName:S.vn.Lock,size:f.S.Small})):n.createElement(y.u,{title:b(e.share),spanHack:!0,spanHackClassName:E.indicatorContainer},n.createElement("div",{className:"".concat(E.indicator," ").concat(C(e.share))})):n.createElement(n.Fragment,null)}var A=a(9806),T=a(49863),x=a(31754),k=a(65853),w=a(64249),N=a(83657),j=a(15611),L=a(83345),R=a(62335),M=a(26339),H=a(4594),P=a(31908);function F(e){return F="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},F(e)}var _="share.sharedByMeTable",D=i.T.encloseNamespace(_);function U(e){var t;if(e.type===g.y.ShareLink||!(null===(t=null==e?void 0:e.recipients)||void 0===t?void 0:t.length))return e.dateCreated;var a=e.recipients.map((function(e){return e.dateShared}));return a.sort((function(e,t){return p.O.isSame(e,t)?0:p.O.isAfter(e,t)?1:-2})),a.length?m.m.last(a):""}function G(e){var t=e.index,a=e.dateHeading,r=e.getObjectAppLink,i=e.getObjectActions,o=e.imageCdnUrl,s=e.showStatus,c=e.showViewCount,l=e.breakpoints,u=e.yearGroups,m=l&&(l.xs||l.sm),p=[{Header:s?"":a,accessor:"sharedObject",id:"image",Cell:function(e){var t=e.value;return n.createElement("div",{className:"w-100"},n.createElement(A.k,{object:t,appLink:r(t),showVideoMetadata:!0,locationContext:v.LZ.SharedByMe}))},minWidth:140,maxWidth:30},{accessor:"sharedObject",id:"name",Cell:function(e){var t,a=e.value;if(a.name){if(P.M.isVideoType(a)&&!(null===(t=P.M.getCanBeConsumed(a))||void 0===t?void 0:t.canNavigate))return n.createElement("span",{className:"clamp-2"},a.name);var i=function(){switch(a.typeId){case H.E.Series:return"series";case H.E.Playlist:return"playlist"}}();return n.createElement("div",{className:"clamp-2"},i&&n.createElement(R.m,null,n.createElement(L.x,{namespace:_,phrase:i})),P.M.isVideoType(a)&&n.createElement(M.$,{type:"series",video:a,appLink:"series"in a&&a.series?r(a.series):null,analyticsOptions:{location:v.LZ.Insights}}),n.createElement(j.F,{appLink:r(a),analyticsData:{id:a.id,name:a.name},analyticsOptions:{entity:w.I.getAnalyticsEntity(a.type),actionType:v.Vw.Click,location:v.LZ.SharedByMe}},a.name))}return n.createElement("span",null,n.createElement(L.x,{namespace:_,phrase:"videoUnavailable"}))},width:60},{Header:0===t?D("sharedTo"):"",accessor:"sharedToData",Cell:function(e){var t=e.value,a=t.share,r=t.sharedObject,i=t.recipients;if(!i){var s=a.type===g.y.ShareLink&&k.R.getIconAndText({entity:r,entityTypeId:r.typeId,hasStudentExp:!1,isPasswordProtected:a.isPasswordProtected,linkExpireDate:a.linkExpireDate,privacy:{privacy:a.privacy,overrideRestrictions:a.overrideRestrictions},status:a.status,yearGroups:null!=u?u:[]});return n.createElement(T.Ad,{text:null==s?void 0:s.text})}return(null==i?void 0:i.length)?n.createElement(T.Kh,{recipients:i,imageCdnUrl:o,maxAvatars:m?1:2}):n.createElement(T.m9,null)},width:40},!m&&{Header:0===t?D("shared"):"",id:"dateShared",accessor:function(e){return(0,d.WU)(e.dateShared)},width:40},{accessor:"sharedObject",id:"actions",Cell:function(e){var t=e.value;return n.createElement(N.e,{actions:i(t),className:"w-100 justify-content-end pe-2"})},width:20}],f={Header:a,accessor:"share",id:"status",Cell:function(e){var t=e.value;return n.createElement(O,{share:t})},width:5},y={Header:D("views"),accessor:"viewCount",width:30};return s&&p.splice(0,0,f),c&&p.splice(p.length-1,0,y),p.filter(Boolean)}function V(e){var t,a,r,i,o,s,c,d,m=(t=e.sentShares,a=e.sharedObjects,r=e.shareRecipients,i=!!e.groupByDateShared,o=[],t.forEach((function(e){var t,n,i=null==a?void 0:a[e.objectId],s=null;e.type===g.y.DirectShare&&(s=[],null===(t=e.recipients)||void 0===t||t.forEach((function(e){var t=null==r?void 0:r[e.id];t&&s.push(t)}))),i&&o.push({share:e,sharedObject:i,sharedToData:{share:e,sharedObject:i,recipients:s},dateShared:U(e),viewCount:null!==(n=e.viewCount)&&void 0!==n?n:0})})),i?x.x.groupByDateShared(o):(s={},c=D("title"),d=o,(c=function(e){var t=function(e){if("object"!=F(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var a=t.call(e,"string");if("object"!=F(a))return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==F(t)?t:t+""}(c))in s?Object.defineProperty(s,c,{value:d,enumerable:!0,configurable:!0,writable:!0}):s[c]=d,s));return n.createElement(n.Fragment,null,Object.keys(m).map((function(t,a){return n.createElement(u.i,{key:a,columns:G({index:a,dateHeading:t,getObjectAppLink:e.getObjectAppLink,getObjectActions:e.getObjectActions,imageCdnUrl:e.imageCdnUrl,showStatus:e.showStatus,showViewCount:e.showViewCount,breakpoints:e.breakpoints,yearGroups:e.yearGroups}),data:m[t],theme:l.J})})))}var B=a(87801),z=a(16714),Y=a(79967),W=a(22902),q=a(79612),K=a(37802),Q=a(99742),X=a(14070),Z=a(97291),$=a(20354),J=a(1048),ee=a(93479),te=a(30439),ae=a(39151),ne=a(1666),re=a(31949),ie=a(39902),oe=a(60115),se={getDirectShares:function(e){var t;return null!==(t=null==e?void 0:e.filter((function(e){return e.type===g.y.DirectShare})))&&void 0!==t?t:[]},getRecipients:function(e){return m.m.flatten(se.getDirectShares(e).map((function(e){var t;return null!==(t=e.recipients)&&void 0!==t?t:[]})))}},ce=a(86099),le=a(2523);const ue={imageColumn:"uIOaA",nameColumn:"Nta2B",sharedToColumn:"XTJBC",dateSharedColumn:"HdARK",actionsColumn:"DXyZw",heading:"XZ6o7",image:"MolfU",name:"MM43m",avatar:"EboYM",date:"by_XM",actions:"_S2M_"};function de(){return n.createElement("div",{className:"d-flex striped-row rounded"},n.createElement("div",{className:"d-flex align-items-center justify-content-center p-2 ".concat(ue.imageColumn)},n.createElement("div",{className:"partial-loading-background rounded w-100 ".concat(ue.image)})),n.createElement("div",{className:"d-flex align-items-center p-2 ".concat(ue.nameColumn)},n.createElement("div",{className:"partial-loading-background w-75 ".concat(ue.name)})),n.createElement("div",{className:"d-flex align-items-center p-2 ".concat(ue.sharedToColumn)},n.createElement("div",{className:"partial-loading-background ".concat(ue.avatar)})),n.createElement("div",{className:"d-none d-md-flex align-items-center p-2 ".concat(ue.dateSharedColumn)},n.createElement("div",{className:"partial-loading-background ".concat(ue.date)})),n.createElement("div",{className:"d-flex align-items-center justify-content-end p-2 ".concat(ue.actionsColumn)},n.createElement("div",{className:"partial-loading-background rounded me-2 ".concat(ue.actions)})))}function me(e){return n.createElement("div",{className:"d-flex mb-1"},n.createElement("div",{className:"".concat(ue.imageColumn," p-2")},n.createElement("div",{className:"partial-loading-background ".concat(ue.heading)})),n.createElement("div",{className:"".concat(ue.nameColumn," p-2")}," "),n.createElement("div",{className:"".concat(ue.sharedToColumn," p-2")},e.fullHeader?n.createElement("div",{className:"partial-loading-background ".concat(ue.heading)}):n.createElement(n.Fragment,null," ")),n.createElement("div",{className:"".concat(ue.dateSharedColumn," p-2 d-none d-md-flex")},e.fullHeader?n.createElement("div",{className:"partial-loading-background ".concat(ue.heading)}):n.createElement(n.Fragment,null," ")),n.createElement("div",{className:"".concat(ue.actionsColumn," p-2")}," "))}function pe(){return n.createElement(n.Fragment,null,n.createElement("div",{className:"mb-3"},n.createElement(me,{fullHeader:!0}),n.createElement("div",{className:"striped-list no-full-width"},n.createElement(de,null),n.createElement(de,null),n.createElement(de,null))),n.createElement("div",{className:"mb-3"},n.createElement(me,null),n.createElement("div",{className:"striped-list no-full-width"},n.createElement(de,null),n.createElement(de,null),n.createElement(de,null),n.createElement(de,null))),n.createElement("div",{className:"mb-3"},n.createElement(me,null),n.createElement("div",{className:"striped-list no-full-width"},n.createElement(de,null),n.createElement(de,null),n.createElement(de,null),n.createElement(de,null),n.createElement(de,null),n.createElement(de,null),n.createElement(de,null),n.createElement(de,null),n.createElement(de,null),n.createElement(de,null))))}var ve=a(70227),fe=i.T.encloseNamespace("liteShare.sharedByMe");function ye(e,t){return{label:fe("editShareSettings"),appLink:{application:Z.O.SHARE,action:X.e.Share.SHARE,args:[e.id],params:{entityType:t}}}}function he(e){return n.createElement(y.u,{title:e.label,spanHack:!0},n.createElement("a",{href:e.url,target:"_blank"},n.createElement(f.x,{svgName:S.vn.Analytics})))}var ge=i.T.encloseNamespace("liteShare.sharedByMe");function Se(){var e=(0,W.T)().hasPermissions,t=(0,K.r)(null).hasShareFlowV2,a=(0,Y.k)(),i=function(e,t){var a,n,r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],i=$.a.useGetFetch(),o=$.a.useBasicFetch(re.N.currentUser()),s=$.a.useBasicFetch(ae.L.config()),c=$.a.useBasicFetch((null===(a=o.data)||void 0===a?void 0:a.isAuthenticated)&&ne.h.yearGroups(o.data.customerId)),l=function(t){return r&&te.o.sentShare(Object.assign({cursor:t},e))},u=function(e){return i(l(e))},d=(0,oe.K)(l,u),m=d.items,p=d.hasMore,v=d.isFetching,f=d.nextCursor,y=d.hasFirstPageCompleted,h=(0,ie.FN)(null==m?void 0:m.map((function(e){return e.objectId})),te.o.sharedObjectsById),g=(0,ie.FN)(se.getRecipients(m).map((function(e){return e.id})),(function(e){return te.o.getRecipientsById(e,o.data.customerId)})),S=(0,ie.FN)(t?J.t.values(h.items||[]):[],(function(e){return ee.I.pendingReviews({interactives:e.filter(P.M.isInteractive).map((function(e){return{interactiveId:e.interactiveId,metadataId:e.id}})),filters:{currentCustomerId:o.data.customerId,currentUserId:o.data.id}})}),(function(e){return"".concat(e.id,":").concat(e.interactiveId)})),E=v||h.isFetching||g.isFetching||S.isFetching||c.isFetching,I=!y||(null==m?void 0:m.length)&&!h.hasFirstRequestCompleted;return{sentShares:m,sharedObjects:h,shareRecipients:g,yearGroups:c.data,interactivesPendingReview:S,isFetching:E,showPartialLoading:I,nextCursor:f,hasMore:p,fetchNext:u,imageCdnUrl:null===(n=s.data)||void 0===n?void 0:n.imageCdnUrl}}(),o=i.sentShares,s=i.sharedObjects,l=i.shareRecipients,u=i.isFetching,d=i.showPartialLoading,m=i.nextCursor,p=i.hasMore,v=i.fetchNext,f=i.imageCdnUrl,y=i.yearGroups,h=e(z.C.ViewMyShares)&&t;n.useEffect((function(){h&&r.Q.C$.trigger({application:Z.O.MY_SHARES,action:X.e.MyShares.HOME},{replace:!0})}),[h]),(0,q.M)({title:ge("sharedByMe")});var g=function(e){var t=$.a.useBasicFetch(ae.L.config()),a=e.xs||e.sm;return n.useCallback((function(e){return function(e,t,a){var r,i="viewUsage";if(P.M.isVideo(e)&&(r="video"),P.M.isInteractive(e)&&(r="interactive",i="viewResults"),P.M.isClip(e)&&(r="clip"),e.typeId===H.E.Series&&(r="series"),e.typeId===H.E.Playlist&&(r="playlist"),P.M.isVideoType(e)&&!P.M.getCanBeConsumed(e).canConsume)return[];var o=[ye(e,r)],s=ve.c.getObjectUrl(a,e);return s&&o.push({label:t?fe(i):function(){return n.createElement(he,{label:fe(i),url:s})},className:"btn btn-link",button:!t,href:ve.c.getObjectUrl(a,e),openInNewTab:!0}),o}(e,a,t.data)}),[a])}(a);return n.createElement("div",{className:"px-3"},!h&&n.createElement(le.w,null),d?n.createElement(pe,null):o.length?n.createElement(n.Fragment,null,n.createElement(V,{sentShares:o,sharedObjects:s.items,shareRecipients:l.items,getObjectAppLink:ce.Qh,getObjectActions:g,groupByDateShared:!0,breakpoints:a,yearGroups:y,imageCdnUrl:f}),(p||u)&&n.createElement(B._,{isFetching:u,fetchNext:v,nextCursor:m})):n.createElement(c,{appLink:{application:Z.O.DASHBOARD,action:X.e.Dashboard.HOME},imageUrl:Q.W.EmptyStates.Share.SHARED_WITH_ME}))}},86099:(e,t,a)=>{a.d(t,{BR:()=>C,Qh:()=>h,Rv:()=>S,Sj:()=>E,Zm:()=>b,pY:()=>g,rq:()=>I});var n=a(23481),r=a(28400),i=a(2510),o=a(21789),s=a(4594),c=a(31908),l=a(14070),u=a(97291),d=a(40254),m=a(82431);function p(e){return p="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},p(e)}function v(e,t,a){return(t=function(e){var t=function(e){if("object"!=p(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var a=t.call(e,"string");if("object"!=p(a))return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==p(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}var f=n.T.encloseNamespace("shared.utils"),y=[s.E.Video,s.E.Clip,s.E.Interactive];function h(e){return c.M.isInteractive(e)?{application:u.O.INTERACTIVES,action:l.e.Interactives.VIEW_INTERACTIVE,args:[e.id,r.m.slugify(e.name)]}:c.M.isClip(e)?{application:u.O.CLIPS,action:l.e.Clips.PLAY_CLIP,args:[e.id,r.m.slugify(e.name)]}:c.M.isVideo(e)?{application:u.O.VIDEOS,action:l.e.Videos.PLAY_VIDEO,args:[e.id,r.m.slugify(e.name)]}:e.typeId===s.E.Playlist?{application:u.O.PLAYLISTS,action:l.e.Playlists.PLAYLIST,args:[e.id,r.m.slugify(e.name)]}:e.typeId===s.E.Series?m.j.getSeriesAppLink(e):void 0}function g(e,t){if(!e)return null;if(!y.includes(e.objectTypeId))return h({id:e.objectId.toString(),typeId:e.objectTypeId});if(e.type===i.y.Classroom){var a=o.x.getClassroomIdFromShare(e);return{application:u.O.CLASSROOMS,action:l.e.Classrooms.INSIGHTS_OVERVIEW,args:[a,e.shareId],params:t}}return e.type===i.y.Open?{application:u.O.CLASSROOMS,action:l.e.Classrooms.OPEN_CLASSROOM_INSIGHTS_OVERVIEW,args:[e.shareId],params:t}:{application:u.O.MY_SHARES,action:l.e.MyShares.INSIGHTS_OVERVIEW,args:[e.shareId],params:t}}function S(e,t){if(!e)return null;if(!y.includes(e.objectTypeId))return h({id:e.objectId.toString(),typeId:e.objectTypeId});if(e.type===i.y.Classroom){var a=o.x.getClassroomIdFromShare(e);return{application:u.O.CLASSROOMS,action:l.e.Classrooms.INSIGHTS_HEATMAP,args:[a,e.shareId],params:t}}return e.type===i.y.Open?{application:u.O.CLASSROOMS,action:l.e.Classrooms.OPEN_CLASSROOM_INSIGHTS_HEATMAP,args:[e.shareId],params:t}:{application:u.O.MY_SHARES,action:l.e.MyShares.INSIGHTS_HEATMAP,args:[e.shareId],params:t}}function E(e,t){if(!e)return null;if(!y.includes(e.objectTypeId))return h({id:e.objectId.toString(),typeId:e.objectTypeId});if(e.type===i.y.Classroom){var a=o.x.getClassroomIdFromShare(e);return{application:u.O.CLASSROOMS,action:l.e.Classrooms.INSIGHTS_QUESTIONS,args:[a,e.shareId],params:t}}return e.type===i.y.Open?{application:u.O.CLASSROOMS,action:l.e.Classrooms.OPEN_CLASSROOM_INSIGHTS_QUESTIONS,args:[e.shareId],params:t}:{application:u.O.MY_SHARES,action:l.e.MyShares.INSIGHTS_QUESTIONS,args:[e.shareId],params:t}}function I(e,t){if(!e)return null;if(!y.includes(e.objectTypeId))return h({id:e.objectId.toString(),typeId:e.objectTypeId});if(e.type===i.y.Classroom){var a=o.x.getClassroomIdFromShare(e);return{application:u.O.CLASSROOMS,action:l.e.Classrooms.INSIGHTS_STUDENTS,args:[a,e.shareId],params:t}}return e.type===i.y.Open?{application:u.O.CLASSROOMS,action:l.e.Classrooms.OPEN_CLASSROOM_INSIGHTS_STUDENTS,args:[e.shareId],params:t}:{application:u.O.MY_SHARES,action:l.e.MyShares.INSIGHTS_STUDENTS,args:[e.shareId],params:t}}function b(e){if(e){var t=O(e);return e.type===i.y.Link?{application:u.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:f("shareOptions")})}}function C(e){if(e){var t=O(e);if(e.type===i.y.Link)return{application:u.O.SHARE,action:l.e.Share.DELETE_SHARE_LINK,args:[e.objectId],params:{entityType:t,previousAppLink:{application:u.O.MY_SHARES,action:l.e.MyShares.HOME}}};var a=v(v(v(v({},i.y.Classroom,l.e.Share.DELETE_ASSIGNMENT),i.y.Open,l.e.Share.DELETE_OPEN_CLASSROOM),i.y.Link,""),i.y.Live,""),n=v(v(v(v({},i.y.Classroom,l.e.Classrooms.CLASSROOM_HOME),i.y.Open,l.e.Classrooms.OPEN_CLASSROOMS),i.y.Link,""),i.y.Live,""),r=a[e.type],s=n[e.type];if(r&&s)return{application:u.O.SHARE,action:r,args:[e.shareId],params:{previousAppLink:{application:u.O.CLASSROOMS,action:s,args:[o.x.getClassroomIdFromShare(e)]}}}}}function O(e){return e.objectTypeId===s.E.Video?"video":e.objectTypeId===s.E.Interactive?"interactive":e.objectTypeId===s.E.Clip?"clip":e.objectTypeId===s.E.Series?"series":e.objectTypeId===s.E.Playlist?"playlist":void 0}}}]);
|
|
2
|
-
//# sourceMappingURL=9042-1a42fcbba2-lite.chunk.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scripts/9042-1a42fcbba2-lite.chunk.js","mappings":"mJAEM,SAAUA,EAAuBC,EAAiBC,EAAgCC,GACtF,IAAKD,EACH,OAAOD,EAET,IAAIG,EAAM,GAAH,OAAMH,EAAO,YAAIC,EAAOG,MAAK,YAAIH,EAAOI,KAEzCC,EAAYC,MAAMC,QAAQP,EAAOQ,QAAUR,EAAOQ,OAAOC,OAAOC,KAAK,KAAOV,EAAOQ,OACnFG,EAAaL,MAAMC,QAAQP,EAAOY,SAAWZ,EAAOY,QAAQH,OAAOC,KAAK,KAAOV,EAAOY,QACtFC,EAAgBP,MAAMC,QAAQP,EAAOc,YAAcd,EAAOc,WAAWL,OAAOC,KAAK,KAAOV,EAAOc,WAcrG,OAZIT,IACFH,GAAO,IAAJ,OAAQG,IAETM,IACFT,GAAO,IAAJ,OAAQS,IAETE,IACFX,GAAO,IAAJ,OAAQW,IAETZ,IACFC,GAAO,IAAJ,OAAQD,IAENC,CACT,CCRA,SAASa,EACPC,EACAhB,GAEA,MAAO,CACLiB,cAAeD,EAAYE,GAC3BC,kBAAmBH,EAAYF,WAC/BM,UAAWpB,EAAS,CAAEG,MAAOH,EAAOG,MAAOC,IAAKJ,EAAOI,UAAQiB,EAC/DC,QAAStB,aAAM,EAANA,EAAQQ,OACjBe,oBAAqBvB,aAAM,EAANA,EAAQY,QAEjC,CAEO,IAAMY,EAA6B,CAMxCC,qBAAoB,SAClBC,EACAC,EACAX,EACAhB,EACA4B,EACAC,EACAC,EACAC,GAEA,MAAO,CACLC,IAAKJ,EAAoB,gDACkBF,EAAa,qBAAaC,GAAqB,gDAC/CD,EAAa,qBAAaC,GACrEzB,IAAKJ,EAAuB,0BAAD,OAA2B4B,EAAa,YAAIC,GAAyB3B,GAChGiC,KAAMlB,EAA4BC,EAAahB,GAC/CkC,KAAMC,EAAA,OACNC,WAAW,EACXP,QAAAA,EACAC,MAAAA,EACAC,OAAAA,EAEJ,EAMAM,KAAI,SACFX,EACAC,EACAW,EACAL,EACAJ,EACAC,EACAC,GAEA,MAAO,CACLC,IAAK,oCAAF,OAAsCM,GACzCpC,IAAK,eAAF,OAAiBoC,EAAQ,YAAIL,EAAKM,UACrCL,KAAMC,EAAA,MACNF,KAAAA,EACAG,WAAW,EACXI,iBAAkB,0BAAF,OAA4Bd,EAAa,YAAIC,GAC7DE,QAAAA,EACAC,MAAAA,EACAC,OAAAA,EAEJ,EAEAU,eAAc,SAACR,GACb,MAAO,CACLD,IAAK,gEACL9B,IAAK,+BACLgC,KAAMC,EAAA,OACNF,KAAAA,EAEJ,EAEAS,yBAAwB,SAACT,GACvB,MAAO,CACLD,IAAK,+CACL9B,IAAK,6BACL+B,KAAAA,EACAC,KAAMC,EAAA,OACNC,WAAW,EAEf,E,iBCvGF,IAAYO,E,iBAAZ,SAAYA,GACV,cACA,wBACA,cACA,aACD,CALD,CAAYA,IAAAA,EAAS,I,qECQRC,EAAc,CACzBC,uBAAsB,SAACC,GACrB,OAAO,YAAoBA,EAAOC,KAAI,SAAAC,GAAI,MAAC,OAAY,QAAZ,EAAAA,EAAEC,kBAAU,QAAI,EAAE,IAC/D,EAEAC,yBAAwB,SAACJ,GACvB,IAAMG,EAAaL,EAAYC,uBAAuBC,GACtD,OAAO,SAAiBG,EAAWF,KAAI,SAAAI,GAAI,MAAC,OAAS,QAAT,EAAAA,EAAEC,eAAO,eAAEC,UAAU,KAAGrD,QAAO,SAAAsD,GAAC,QAAMA,CAAC,GACrF,EAEAC,wBAAuB,SAACC,G,MAChBC,EAAiC,QAAhB,EAAAD,EAAMP,kBAAU,eAAG,GAE1C,GAAKQ,EAEL,OAAIA,EAAeL,QACVK,EAAeL,QAAQC,WAE5BI,EAAeC,aAAeD,EAAeE,kBAAoB,cAC5DF,EAAeC,YAAYL,gBADpC,CAEF,EAEAO,qBAAoB,SAACJ,EAAcK,GACjC,IAAMC,EAAclB,EAAYW,wBAAwBC,GAExD,GAAKM,EAEL,OAAOD,EAAWE,MAAK,SAAAC,GAAS,OAAIA,EAAU9C,GAAGmC,aAAeS,EAAYT,UAAU,GACxF,EAEAY,mBAAkB,SAACT,EAActB,G,YAC/B,OAAKA,EAEkE,QAAhE,EAAgB,QAAhB,EAAAsB,EAAMP,kBAAU,eAAEjD,QAAO,SAAAmD,GAAC,OAAIA,EAAEQ,kBAAoBzB,CAAI,IAAEgC,cAAM,QAAI,EAFjC,QAAxB,EAAgB,QAAhB,EAAAV,EAAMP,kBAAU,eAAEiB,cAAM,QAAI,CAGhD,EAEAC,gBAAe,SAACX,GACd,GAAIA,EAAMY,WAAY,CACpB,IAAMC,EAAM,IAAIC,KACVF,EAAa,IAAIE,KAAKd,EAAMY,YAElC,GAAI,YAAmBC,EAAKD,GAC1B,OAAO,CACV,CAED,OAAO,CACT,EAEAG,sBAAqB,SAACf,GACpB,GAAKA,EAAMY,WAAX,CAEA,IAAMI,EAAgB,gBAAuB,IAAIF,KAAKd,EAAMY,YAAa,IAAIE,KAAQ,QAAU,EAG/F,OAFqC,IAAlBE,EAAsB,EAAIA,CAHhB,CAM/B,EAEAC,oBAAmB,SAACjB,EAAckB,GAChC,IAAKlB,EAAMY,WACT,OAAO,KAET,IAAMO,EAAY,sBAA6BnB,EAAMY,YACrD,OAAO,WAAkBO,EAAWD,EACtC,E,6LCtEF,SAAgB,gBAAkB,QAAQ,GAAK,QAAQ,aAAe,SCiBtE,IACME,EAAYC,EAAA,mBADA,mCAGlB,SAASC,EAAuBC,GAC9B,IAAMC,EAASC,EAAA,UAAoBF,EAAkB,UAC/CG,EAAYF,EAAOG,EAAA,QACnBC,EAAiBJ,EAAOG,EAAA,aACxBE,EAAaL,EAAOG,EAAA,kBAE1B,OAAID,GAAaE,GAAkBC,EAC1BT,EAAU,2BAA4B,CAAEM,UAAAA,EAAWE,eAAAA,EAAgBC,WAAAA,IAExEH,GAAaE,EACRR,EAAU,qBAAsB,CAAEM,UAAAA,EAAWE,eAAAA,IAElDF,GAAaG,EACRT,EAAU,iBAAkB,CAAEM,UAAAA,EAAWG,WAAAA,IAE9CD,GAAkBC,EACbT,EAAU,sBAAuB,CAAEQ,eAAAA,EAAgBC,WAAAA,IAExDH,EACKN,EAAU,QAAS,CAAEM,UAAAA,IAE1BE,EACKR,EAAU,aAAc,CAAEQ,eAAAA,IAE/BC,EACKT,EAAU,SAAU,CAAES,WAAAA,SAD/B,CAEF,CAEA,SAASC,EAAeC,G,cAChBC,GAAuB,QAAV,EAAAD,EAAME,YAAI,eAAEC,UAAWP,EAAA,QAAmBI,EAAME,KAC7DzB,GAAiC,QAAV,EAAAuB,EAAME,YAAI,eAAEC,UAAWP,EAAA,aAAwBI,EAAME,KAC5EE,GAA2C,QAAV,EAAAJ,EAAME,YAAI,eAAEC,UAAWP,EAAA,kBACzDI,EAAME,KAELG,EAAwB,yFAE9B,OACE,kCACKJ,GACD,gBAACK,EAAA,EAAO,CAACC,MAAK,UAAKN,EAAKO,KAAI,YAAIP,EAAKQ,SAAWC,UAAQ,EAACC,kBAAkB,eACzE,gBAACC,EAAA,EAAM,CACLC,SAAqB,QAAX,EAAAZ,EAAKa,cAAM,eAAErE,IACvBsE,YAAaf,EAAMe,YACnBC,SAAUC,EAAA,cAAuBhB,EAAKO,KAAMP,EAAKQ,SACjDS,aAAc,oBAIjBzC,GACD,gBAAC6B,EAAA,EAAO,CAACC,MAAO9B,EAAU+B,KAAME,UAAQ,EAACC,kBAAkB,eACzD,uBAAKQ,UAAWd,GACd,gBAACe,EAAA,EAAU,CACTC,QAAS,gBACTC,QAASC,EAAAC,EAAA,MACTC,QAAQ,aAKbrB,GACD,gBAACE,EAAA,EAAO,CAACC,MAAOH,EAAeI,KAAME,UAAQ,EAACC,kBAAkB,eAC9D,uBAAKQ,UAAWd,GACd,gBAACe,EAAA,EAAU,CACTC,QAAS,WACTI,SAAS,OAA4C,QAAvB,EAAArB,EAAesB,gBAAQ,eAAEC,YAOrE,CAOM,SAAUC,EAAwB5B,GACtC,OACE,uBAAKmB,UAAS,UAAK,kBAAsB,YAAyB,OAArBnB,EAAM6B,WAAsB,KAAY,KACnF,gBAACvB,EAAA,EAAO,CACNC,MAAOlB,EAAU,aACjBqB,UAAQ,EACRC,kBAAkB,kGAElB,gBAACY,EAAA,EAAY,CAACF,QAAS,eAAwBS,KAA2B,OAArB9B,EAAM6B,WAAsBN,EAAAC,EAAA,MAAyB,QAIlH,CAQM,SAAUO,EAAiB/B,GAC/B,OACE,uBAAKmB,UAAS,UAAK,kBAAsB,YAAyB,OAArBnB,EAAM6B,WAAsB,KAAY,KACnF,gBAACvB,EAAA,EAAO,CACNC,MAAOP,EAAMgC,MAAQ3C,EAAU,cAC/BqB,UAAQ,EACRC,kBAAiB,yGAAoGX,EAAMmB,WAAa,KAExI,gBAACI,EAAA,EAAY,CAACF,QAAS,UAAmBS,KAA2B,OAArB9B,EAAM6B,WAAsBN,EAAAC,EAAA,MAAyB,QAI7G,CAeM,SAAUS,EAAmBjC,GACjC,OACE,gBAACkC,EAAA,EAAU,iBACLlC,EAAK,CACTmC,MAAOnC,EAAMtC,WACb0E,WAAYrC,EACZsC,yBAAwB,UAAK,kBAAsB,YAAyB,OAArBrC,EAAM6B,WAAsB,KAAY,IAC/FS,iBAAkB/C,EAClBgD,aAAcvC,EAAMuC,aACpBC,cAAexC,EAAMwC,gBAG3B,CAhBAP,EAAmBQ,aAAe,CAChCC,WAAY,E,uNCpId,IACMrD,EAAY,qBADA,uBAeLsD,EAAkB,CAC7BC,sBAAuB,SAACC,GACtB,IAAQC,EAA6DD,EAA7DC,aAAcC,EAA+CF,EAA/CE,QAASC,EAAsCH,EAAtCG,cAAeC,EAAuBJ,EAAvBI,OAAQC,EAAeL,EAAfK,WAEtD,GAAIJ,IAAiB,WAAoBA,IAAiB,WACxD,MAAO,CAAEK,KAAM,eAAwBnB,KAAM3C,EAAU2D,EAAgB,uBAAyB,4BAMlG,IAAIjI,MAAMC,QAAQ+H,GAGlB,OAAQA,EAAQA,SACd,IAAK,SACH,MAAO,CAAEI,KAAM,eAAwBnB,KAAM3C,EAAU,sBACzD,IAAK,YACH,OAAI0D,EAAQK,qBACH,CAAED,KAAM,eAAwBnB,KAAM3C,EAAU,kBAClD,CACL8D,KAAM,UACNnB,KAAMW,EAAgBU,qBAAqBJ,EAAQC,EAAYF,IAEnE,IAAK,mBACH,OAAID,EAAQK,qBACH,CAAED,KAAM,UAAmBnB,KAAM3C,EAAU2D,EAAgB,uBAAyB,4BACtF,CACLG,KAAM,UACNnB,KAAMW,EAAgBU,qBAAqBJ,EAAQC,EAAYF,IAMnE,IAAK,aACL,IAAK,UACH,MAAO,CAAEG,KAAM,UAAmBnB,KAAM3C,EAAU,uBACpD,QACE,MAAO,CAAC,EAEd,EAEAiE,eAAgB,SAACT,GACf,IAAQU,EAAgDV,EAAhDU,eAAgBC,EAAgCX,EAAhCW,oBAAqBC,EAAWZ,EAAXY,OAC7C,IAAKF,IAAmBC,EACtB,OAAOb,EAAgBC,sBAAsBC,GAE/C,IAAKU,EACH,MAAO,CAAEJ,KAAM,UAAmBnB,KAAM3C,EAAU,aAEpD,IAAMqE,EAAU,YAAmBH,GAC7BI,EAAgB,gBAAuBJ,EAAgB,IAAIxE,KAAQ,OAEzE,IAAKyE,EAAqB,CACxB,IAAI,EAAOE,EACPrE,EAAU,eACVA,EAAU,SAAU,CAAEuE,KAAMD,IAKhC,OAHIF,IAAW,cACb,EAAOpE,EAAU,YAEZ,CAAE8D,KAAM,WAAoBnB,KAAA,EACpC,CAED,IAAIA,EAAO0B,EACPrE,EAAU,uBACVA,EAAU,iBAAkB,CAAEuE,KAAMD,IAKxC,OAHIF,IAAW,cACbzB,EAAO3C,EAAU,oBAEZ,CAAE8D,KAAM,UAAmBnB,KAAAA,EACpC,EAEAqB,qBAAoB,SAACQ,EAAmBX,EAAyBF,G,MAC/D,IAAKa,IAAUX,EACb,OAAO,KAET,GAAIF,EACF,OAAO3D,EAAU,wBAEnB,IAAK,gBAAwBwE,GAC3B,OAAOxE,EAAU,oBAEnB,IAAMyE,EAAc,2BAA4D,QAAnB,EAAAD,EAAME,qBAAa,eAAEC,OAKlF,GAAIF,IAAgBA,EAAYG,UAC9B,OAAO5E,EAAU,cAEnB,IAEI6E,EACAC,EAE8B,EAL5BC,EAAS,cAAsBP,GAGF,E,64BAAA,CAEXX,GAAU,IAAlC,IAAK,EAAL,qBAAoC,KAAzBe,EAAS,UAIbC,GAAgBD,EAAUD,MAAQE,EAAaF,SAClDE,EAAeD,GAKbH,GAAeG,EAAUD,OAASF,EAAYG,WAM9CG,GAAUH,EAAUG,OAAOJ,MAAQI,EAAOJ,SAMzCG,GAAuBF,EAAUD,MAAQG,EAAoBH,SAChEG,EAAsBF,EACzB,CAED,+BAGA,OAAKE,EAQqB,IAAtBjB,EAAWvE,OACNU,EAAU,iBAMf8E,EAAoBH,QAAUE,EAAaF,MACtC3E,EAAU,eAAgB,CAAE4E,UAAWC,EAAa1D,OAEtDnB,EAAU,iBAAkB,CAAE4E,UAAWE,EAAoB3D,OAjB3DnB,EAAU,YAkBrB,E,mFCnKIA,EAAY,qBADA,qBA6BZ,SAAU6C,EAAWlC,GACzB,IAAMqE,EAAiBrE,EAAMmC,MAAMxD,OAASqB,EAAM0C,WAC9C1C,EAAMmC,MAAMmC,MAAM,EAAGtE,EAAM0C,WAAa,GACxC1C,EAAMmC,MAEJoC,EAAcvE,EAAMmC,MAAMxD,OAAS0F,EAAe1F,OACpDqB,EAAMmC,MAAMmC,MAAMtE,EAAM0C,WAAa,GACrC,GAEE8B,EAAaxE,EAAMoC,WACnBqC,EAAoBF,EAAY5F,OAChC+F,EAAkC,OAArB1E,EAAM6B,WAAsB,EAAI,EAkBnD,SAAS8C,EAAgBC,GACvB,MAAO,CACLC,UAAW,cAAF,QAAiB7E,EAAMuC,aAAeqC,EAAM,EAAIA,IAAQF,EAAU,OAC3EI,OAAQ9E,EAAM0C,WAAakC,EAE/B,CAEA,OAA8B,IAA1BP,EAAe1F,QAAuC,IAAvB4F,EAAY5F,OACtC,iCAGP,uBACEwC,UAAU,SACV4D,MAlBK,CACLC,YAAa,IAAF,QAAQX,EAAe1F,OAAS,GAAM4F,EAAY5F,OAAS,EAAI,IAAMqB,EAAMuC,aAAe,EAAI,IAAMmC,EAAU,QAmBxH1E,EAAMuC,cACL,uBAAKwC,MAAO,CAAED,OAAQ9E,EAAM0C,WAAa,IACvC,gBAAC,KAAgB,CAACV,KAAMhC,EAAMwC,cAAeX,WAAY7B,EAAM6B,WAAYV,UAAU,wBAGxFkD,EAAe7G,KAAI,SAAC0C,EAAM0E,GAAG,OAC5B,uBACEzD,UAAS,UAAKnB,EAAMqC,0BAA4B,IAAM1H,IAAKuF,EAAKvE,GAChEoJ,MAAOJ,EAAgBC,IAEvB,gBAACJ,EAAU,CACTtE,KAAMA,EACNa,YAAaf,EAAMe,YACnBkE,MAAOL,EACPlC,WAAY1C,EAAM0C,aAEhB,MAGL6B,EAAY5F,QACb,uBACEwC,UAAS,UAAKnB,EAAMqC,0BAA4B,GAAE,4BAClD0C,MAAO,CAAEF,UAAW,cAAF,OAAgBR,EAAe1F,QAAU+F,EAAU,OAAOI,OAAQ9E,EAAM0C,WAAa2B,EAAe1F,SAEtH,gBAAC,IAAO,CAAC4B,MAtDXP,EAAMsC,iBACDtC,EAAMsC,iBAAiBiC,GAE5BvE,EAAMkF,cACD7F,EAAkC,UAAxBW,EAAMkF,cAA4B,QAAU,UAAW,CAAEC,MAAOV,EAAmBW,WAAYX,IAE3GpF,EAAU,QAAS,CAAE8F,MAAOV,EAAmBW,WAAYX,IAgD9B/D,UAAQ,EAACC,kBAAkB,eACvD,uBAAKQ,UAAS,yGAAoGnB,EAAMqF,iBAAmB,KAAI,WACxId,EAAY5F,WAO/B,CAjFAuD,EAAWO,aAAe,CACxBC,WAAY,E,+vDC3BR4C,EAAa,GAkBb,SAAUC,EACdC,EACAC,GAEA,IAEMC,EAFS,UAA0BF,EAASF,GAE1B9H,KAAI,SAAAmI,GAAK,OAAIF,EAAW,SAAiBE,GAAO,IAElEC,EAAY,qBAA6BF,GAEzCG,EAAW,YAAoBD,EAAUlJ,MACzCyF,EAAQyD,EAAUlJ,KAAKiC,OACzBkH,EAASC,QAAO,SAACC,EAAK7F,GAAI,OAAK,+BAAM6F,GAAG,KAAG7F,EAAKvE,GAAKuE,GAAI,GAAK,CAAC,GAC/D,KAEJ,MAAO,CACL2F,SAAAA,EACA1D,MAAAA,EACA6D,WAAYJ,EAAUI,WACtBC,aAAcL,EAAUK,aAE5B,CAQM,SAAUC,EACdC,EACAV,EACAW,GAEA,IAAMC,EAASD,QAAAA,EAAY,SAACE,GAC1B,MAAmB,WAAf,EAAOA,GACFA,EAAI3K,GAEN2K,CACT,EAEM,EAA0BC,EAA8C,CAAEd,WAAAA,EAAYW,QAAAA,IAApFI,EAAU,EAAVA,WAAe9J,EAAI,IAArB,gBASN,OAPA,aAAgB,YACTyJ,aAAI,EAAJA,EAAMxH,SAGX6H,EAAWL,EACb,GAAG,CAACA,aAAI,EAAJA,EAAM3I,IAAI6I,GAAQlL,KAAK,OAEpBuB,CACT,CAWM,SAAU6J,EACd1D,G,cAEMwD,EAAwB,QAAf,EAAAxD,EAAQuD,eAAO,QAAK,SAACE,GAClC,MAAmB,WAAf,EAAOA,GACFA,EAAI3K,GAEN2K,CACT,EAEMG,EAAe,SAA0B,IAAIC,KACmB,G,EAApC,WAAiC,I,EAAG,E,unBAA9DhB,EAAQ,KAAEiB,EAAW,KAwBvBf,EAAY,qBAAqCF,GACjDG,EAAW,YAAoBD,EAAUlJ,MACzCyF,EAAQyD,EAAUlJ,KAAKiC,OACzBkH,EAASC,QAAkC,SAACC,EAAK7F,GAAI,OAAK,+BAAM6F,GAAG,KAAGM,EAAOnG,GAAQA,GAAI,GAAK,CAAC,GAC/F,KAEJ,MAAO,CACL0G,4BAAoD,QAAxB,EAAmB,QAAnB,EAAAhB,EAAUA,iBAAS,eAAG,UAAE,eAAEK,cACtDJ,SAAAA,EACA1D,MAAAA,EACA6D,WAAYJ,EAAUI,WACtBQ,WAjCF,SAAoBL,GAClB,GAAKA,aAAI,EAAJA,EAAMxH,OAAX,CAGA,IAAMkI,EAA6B,GAEnCV,EAAKW,SAAQ,SAAAR,GACX,IAAM3L,EAAM0L,EAAOC,GAEfG,EAAaM,QAAQC,IAAIrM,KAG7BkM,EAAeI,KAAKX,GACpBG,EAAaM,QAAQG,IAAIvM,GAC3B,IAEKkM,EAAelI,QAGpBgI,GAAY,SAAA/I,GAAC,kBAAUA,GAAC,EAAK,UAA4BiJ,EAAgBvB,GAAY9H,IAAIqF,EAAQ4C,aAAW,GAjBpG,CAkBV,EAeF,C,kDCnIM,SAAU0B,EAAqBC,GACnC,OAAQA,GACN,KAAK,SACH,MAAO,OACT,KAAK,WACH,MAAO,SACT,KAAK,UACH,MAAO,QACT,KAAK,SACH,MAAO,OACT,KAAK,WACH,MAAO,SACT,KAAK,WACH,MAAO,SACT,QACE,MAAO,OAEb,C,wGCbM/H,EAAYC,EAAA,mBADA,8BASZ,SAAU+H,EAAqBrH,GACnC,OACE,gBAACsH,EAAA,EAAU,KACT,gBAACA,EAAA,QAAgB,CAACC,IAAKvH,EAAMa,SAAUiB,KAAK,UAC5C,gBAACwF,EAAA,UAAkB,KAChBjI,EAAUW,EAAMwH,mBAAqB,sBAAwB,mBAEhE,gBAACF,EAAA,OAAe,KAAEjI,EAAUW,EAAMwH,mBAAqB,mBAAqB,kBACzExH,EAAMyH,SACP,gBAACH,EAAA,MAAc,CAACG,QAASzH,EAAMyH,QAASzF,KAAM3C,EAAU,SAIhE,C,0HC5BA,SAAgB,mBAAqB,QAAQ,UAAY,SCYzD,IACM,EAAYC,EAAA,mBADA,8BAGlB,SAASoI,EAAgBzJ,GACvB,GAAIA,EAAMtB,OAASS,EAAA,cACjB,OAAO,EAAU,UAEnB,OAAQa,EAAMwF,QACZ,KAAKkE,EAAA,SACH,OAAO,EAAU,UAEnB,KAAKA,EAAA,UACH,OAAO,EAAU,WAEvB,CAEA,SAASC,EAAqB3J,GAC5B,GAAIA,EAAMtB,OAASS,EAAA,cACjB,MAAO,aAET,OAAQa,EAAMwF,QACZ,KAAKkE,EAAA,SACH,MAAO,aAET,KAAKA,EAAA,UACH,MAAO,cAEb,CASM,SAAUE,EAAqB7H,G,MACnC,OAAIA,EAAM/B,MAAMtB,OAASS,EAAA,gBAAgD,QAAtB,EAAA4C,EAAM/B,MAAMP,kBAAU,eAAEiB,QAGvEqB,EAAM/B,MAAMtB,OAASS,EAAA,aAAuB4C,EAAM/B,MAAMuF,oBAExD,gBAAClD,EAAA,EAAO,CAACC,MAAO,EAAU,qBAAsBG,UAAQ,GACtD,gBAACa,EAAA,EAAY,CAACF,QAAS,UAAmBS,KAAMP,EAAAC,EAAA,SAMpD,gBAAClB,EAAA,EAAO,CACNC,MAAOmH,EAAgB1H,EAAM/B,OAC7ByC,UAAQ,EACRC,kBAAmB,sBAEnB,uBAAKQ,UAAS,UAAK,YAAgB,YAAIyG,EAAqB5H,EAAM/B,WAhB7D,gCAmBX,C,4WCpCA,IAAM,EAAY,wBACZ,EAAYqB,EAAA,mBAAiC,GAEnD,SAASwI,EAAc7J,G,MACrB,GAAIA,EAAMtB,OAASS,EAAA,eAAyC,QAAjB,EAAAa,aAAK,EAALA,EAAOP,kBAAU,eAAEiB,QAC5D,OAAOV,EAAM8J,YAEf,IAAMC,EAAc/J,EAAMP,WAAWF,KAAI,SAAAI,GAAC,OAAIA,EAAEqK,UAAU,IAU1D,OARAD,EAAY9M,MAAK,SAACgN,EAAOC,GACvB,OAAIC,EAAA,SAAkBF,EAAOC,GACpB,EAEFC,EAAA,UAAmBF,EAAOC,GAAS,GAAK,CACjD,IAGKH,EAAYrJ,OAGVe,EAAA,OAAiBsI,GAFf,EAGX,CA4BM,SAAUK,EAAWxF,GACzB,IACEoC,EASEpC,EATFoC,MACAqD,EAQEzF,EARFyF,YACAC,EAOE1F,EAPF0F,iBACAC,EAME3F,EANF2F,iBACAzH,EAKE8B,EALF9B,YACA0H,EAIE5F,EAJF4F,WACAC,EAGE7F,EAHF6F,cACAC,EAEE9F,EAFF8F,YACAzF,EACEL,EADFK,WAEI0F,EAAWD,IAAgBA,EAAYE,IAAMF,EAAYG,IAEzDC,EAAyC,CAC7C,CACEC,OAAQP,EAAa,GAAKH,EAC1BW,SAAU,eACVtN,GAAI,QACJuN,KAAM,SAAF,OAAKlF,EAAK,EAALA,MAAK,OACZ,uBAAK7C,UAAU,SACb,gBAACgI,EAAA,EAAiB,CAChBC,OAAQpF,EACRyD,QAASc,EAAiBvE,GAC1BqF,mBAAiB,EACjBC,gBAAiB,kBAEf,EAERC,SAAU,IACVC,SAAU,IAEZ,CACEP,SAAU,eACVtN,GAAI,OACJuN,KAAM,SAAF,GAAgB,I,EAAXlF,EAAK,EAALA,MAQP,GAAIA,EAAMxD,KAAM,CACd,GAAIiJ,EAAA,cAAwBzF,MAA8C,QAAnC,EAAAyF,EAAA,mBAA6BzF,UAAM,eAAE0F,aAC1E,OACE,wBAAMvI,UAAU,WACb6C,EAAMxD,MAKb,IAAMmJ,EAhBR,WACE,OAAQ3F,EAAM7D,QACZ,KAAKP,EAAA,SAAmB,MAAO,SAC/B,KAAKA,EAAA,WAAqB,MAAO,WAErC,CAWwBgK,GAEtB,OACE,uBAAKzI,UAAU,WACZwI,GACC,gBAACE,EAAA,EAAY,KACX,gBAACC,EAAA,EAAI,CAACC,UAAW,EAAWC,OAAQL,KAGvCF,EAAA,cAAwBzF,IACvB,gBAACiG,EAAA,EAAY,CACXtN,KAAK,SACLkH,MAAOG,EACPyD,QAAS,WAAYzD,GAASA,EAAMkG,OAAS3B,EAAiBvE,EAAMkG,QAAU,KAC9EC,iBAAkB,CAAEC,SAAU,iBAGlC,gBAACC,EAAA,EAAO,CACN5C,QAASc,EAAiBvE,GAC1BsG,cAAe,CAAE3O,GAAIqI,EAAMrI,GAAI6E,KAAMwD,EAAMxD,MAC3C2J,iBAAkB,CAChBlH,OAAQsH,EAAA,qBAAmCvG,EAAMrH,MACjD6N,WAAY,WACZJ,SAAU,kBAGXpG,EAAMxD,MAId,CAED,OAAO,4BAAM,gBAACsJ,EAAA,EAAI,CAACC,UAAW,EAAWC,OAAO,qBAClD,EACAS,MAAO,IAET,CACEzB,OAAkB,IAAV/D,EAAc,EAAU,YAAc,GAC9CgE,SAAU,eACVC,KAAM,SAAF,GAAgB,IAAXlF,EAAK,EAALA,MACC/F,EAAoC+F,EAApC/F,MAAOyM,EAA6B1G,EAA7B0G,aAAchN,EAAesG,EAAftG,WAE7B,IAAKA,EAAY,CACf,IAAMiN,EAAc1M,EAAMtB,OAASS,EAAA,aAAuBuF,EAAA,iBAA+B,CACvFM,OAAQyH,EACR5H,aAAc4H,EAAavK,OAC3B6C,eAAe,EACfQ,oBAAqBvF,EAAMuF,oBAC3BD,eAAgBtF,EAAMsF,eACtBR,QAAS,CACPA,QAAS9E,EAAM8E,QACfK,qBAAsBnF,EAAMmF,sBAE9BK,OAAQxF,EAAMwF,OACdP,WAAYA,QAAAA,EAAc,KAG5B,OAAO,gBAAC,KAAgB,CAAClB,KAAM2I,aAAW,EAAXA,EAAa3I,MAC7C,CAED,OAAKtE,aAAU,EAAVA,EAAYiB,QAIf,gBAACsD,EAAA,GAAkB,CACjBvE,WAAYA,EACZqD,YAAaA,EACb2B,WAAYkG,EAAW,EAAI,IANtB,gBAAC,KAAuB,KASnC,EACA6B,MAAO,KAER7B,GAAY,CACXI,OAAkB,IAAV/D,EAAc,EAAU,UAAY,GAC5CtJ,GAAI,aACJsN,SAAU,SAAAxL,GAAC,OAAI,QAAWA,EAAEwK,WAAW,EACvCwC,MAAO,IAET,CACExB,SAAU,eACVtN,GAAI,UACJuN,KAAM,SAAF,OAAKlF,EAAK,EAALA,MAAK,OACZ,gBAAC4G,EAAA,EAAO,CACNC,QAASrC,EAAiBxE,GAC1B7C,UAAU,kCACV,EAEJsJ,MAAO,KAILK,EAA4C,CAChD9B,OAAQV,EACRW,SAAU,QACVtN,GAAI,SACJuN,KAAM,SAAF,OAAKlF,EAAK,EAALA,MAAK,OACZ,gBAAC6D,EAAoB,CAAC5J,MAAO+F,GAAS,EAExCyG,MAAO,GAGHM,EAA+C,CACnD/B,OAAQ,EAAU,SAClBC,SAAU,YACVwB,MAAO,IAST,OANIhC,GACFM,EAAQiC,OAAO,EAAG,EAAGF,GAEnBpC,GACFK,EAAQiC,OAAOjC,EAAQpK,OAAS,EAAG,EAAGoM,GAEjChC,EAAQtO,OAAQwQ,QACzB,CC9NM,SAAUC,EAAgBlL,GAC9B,IDgOAmL,EACAC,EACAC,EACAC,EAEMC,E,MCrOA7O,GDgONyO,EC/NEnL,EAAMmL,WDgORC,EC/NEpL,EAAMoL,cDgORC,EC/NErL,EAAMqL,gBDgORC,IC/NItL,EAAMwL,kBDiOJD,EAAmC,GAEzCJ,EAAWrE,SAAQ,SAAArJ,G,QACXiN,EAAeU,aAAa,EAAbA,EAAgB3N,EAAEgO,UAEnC/N,EAAkC,KAElCD,EAAEd,OAASS,EAAA,gBACbM,EAAa,GAED,QAAZ,EAAAD,EAAEC,kBAAU,SAAEoJ,SAAQ,SAAAlJ,GACpB,IAAM8N,EAAYL,aAAe,EAAfA,EAAkBzN,EAAEjC,IAElC+P,GACFhO,EAAWuJ,KAAKyE,EACpB,KAIEhB,GACFa,EAAUtE,KAAK,CACbhJ,MAAOR,EACPiN,aAAAA,EACAiB,aAAc,CACZ1N,MAAOR,EACPiN,aAAAA,EACAhN,WAAAA,GAEFuK,WAAYH,EAAcrK,GAC1BmO,UAAsB,QAAX,EAAAnO,EAAEmO,iBAAS,QAAI,GAEhC,IAEKN,EAGEjO,EAAA,oBAA8BkO,I,EAFnC,G,EAAU,EAAU,S,EAAWA,G,sXChQjC,OACE,gCACGM,OAAOC,KAAKpP,GAAMc,KAAI,SAACuO,EAAS9G,GAAK,OACpC,gBAAC+G,EAAA,EAAK,CACJrR,IAAKsK,EACL8D,QAASV,EAAW,CAClBpD,MAAAA,EACAqD,YAAayD,EACbxD,iBAAkBvI,EAAMuI,iBACxBC,iBAAkBxI,EAAMwI,iBACxBzH,YAAaf,EAAMe,YACnB0H,WAAYzI,EAAMyI,WAClBC,cAAe1I,EAAM0I,cACrBC,YAAa3I,EAAM2I,YACnBzF,WAAYlD,EAAMkD,aAEpBxG,KAAMA,EAAKqP,GACXE,MAAO,KACP,IAIV,C,+MCrDa,GAAc,CACzBC,gBAAe,SAACf,G,MACd,OAAiF,QAA1E,EAAAA,aAAU,EAAVA,EAAY1Q,QAAO,SAAAgD,GAAC,OAAIA,EAAEd,OAASS,EAAA,aAAqB,WAAkB,QAAI,EACvF,EAEA+O,cAAa,SAAChB,GACZ,OAAOzL,EAAA,UAAoB,GAAYwM,gBAAgBf,GAAY3N,KAAI,SAAA4O,GAAI,MAAC,OAAY,QAAZ,EAAAA,EAAE1O,kBAAU,QAAI,EAAE,IAChG,G,uBCXF,UAAgB,YAAc,QAAQ,WAAa,QAAQ,eAAiB,QAAQ,iBAAmB,QAAQ,cAAgB,QAAQ,QAAU,QAAQ,MAAQ,QAAQ,KAAO,QAAQ,OAAS,QAAQ,KAAO,QAAQ,QAAU,SCGlO,SAAS2O,KACP,OACE,uBAAKlL,UAAS,8BACZ,uBAAKA,UAAS,+DAA0D,iBACtE,uBAAKA,UAAS,mDAA8C,aAE9D,uBAAKA,UAAS,wCAAmC,gBAC/C,uBAAKA,UAAS,0CAAqC,YAErD,uBAAKA,UAAS,wCAAmC,oBAC/C,uBAAKA,UAAS,qCAAgC,cAEhD,uBAAKA,UAAS,kDAA6C,sBACzD,uBAAKA,UAAS,qCAAgC,YAEhD,uBAAKA,UAAS,4DAAuD,mBACnE,uBAAKA,UAAS,kDAA6C,eAInE,CAMA,SAASmL,GAActM,GACrB,OACE,uBAAKmB,UAAU,eACb,uBAAKA,UAAS,UAAK,eAAkB,SACnC,uBAAKA,UAAS,qCAAgC,eAEhD,uBAAKA,UAAS,UAAK,cAAiB,SAAM,KAG1C,uBAAKA,UAAS,UAAK,kBAAqB,SACrCnB,EAAMuM,WACH,uBAAKpL,UAAS,qCAAgC,cAC9C,sCAGN,uBAAKA,UAAS,UAAK,oBAAuB,0BACvCnB,EAAMuM,WACH,uBAAKpL,UAAS,qCAAgC,cAC9C,sCAGN,uBAAKA,UAAS,UAAK,iBAAoB,SAAM,KAKnD,CAEM,SAAUqL,KACd,OACE,gCACE,uBAAKrL,UAAU,QACb,gBAACmL,GAAa,CAACC,YAAU,IAEzB,uBAAKpL,UAAU,8BACb,gBAACkL,GAAU,MACX,gBAACA,GAAU,MACX,gBAACA,GAAU,QAIf,uBAAKlL,UAAU,QACb,gBAACmL,GAAa,MAEd,uBAAKnL,UAAU,8BACb,gBAACkL,GAAU,MACX,gBAACA,GAAU,MACX,gBAACA,GAAU,MACX,gBAACA,GAAU,QAIf,uBAAKlL,UAAU,QACb,gBAACmL,GAAa,MAEd,uBAAKnL,UAAU,8BACb,gBAACkL,GAAU,MACX,gBAACA,GAAU,MACX,gBAACA,GAAU,MACX,gBAACA,GAAU,MACX,gBAACA,GAAU,MACX,gBAACA,GAAU,MACX,gBAACA,GAAU,MACX,gBAACA,GAAU,MACX,gBAACA,GAAU,MACX,gBAACA,GAAU,QAKrB,C,gBC/EM,GAAY/M,EAAA,mBADA,wBAGlB,SAASmN,GAAsB/B,EAA0BgC,GACvD,MAAO,CACLC,MAAO,GAAU,qBACjBlF,QAAS,CACPmF,YAAa,UACbC,OAAQ,gBACRC,KAAM,CAACpC,EAAa/O,IACpBoR,OAAQ,CAAEL,WAAAA,IAGhB,CAOA,SAASM,GAAehN,GACtB,OACE,gBAACM,EAAA,EAAO,CAACC,MAAOP,EAAM2M,MAAOjM,UAAQ,GACnC,qBACEuM,KAAMjN,EAAMvD,IACZyQ,OAAO,UAEP,gBAAC3L,EAAA,EAAY,CAACF,QAAS,kBAI/B,CCxBA,IACM,GAAY/B,EAAA,mBADA,wBAGZ,SAAU6N,KACd,IAAQC,GAAmB,EAAAC,EAAA,KAAnBD,eACAE,GAAmB,EAAAC,EAAA,GAAY,MAA/BD,eAEF3E,GAAc,EAAA6E,EAAA,KAEpB,EChBI,SACJT,EACAU,GAC2B,I,IAA3BC,IAAA,yDAEMC,EAAQ,kBAERlS,EAAc,kBAAkCmS,GAAA,iBAChDC,EAAS,kBAA6BC,GAAA,YACtC5K,EAAa,mBACD,QAAhB,EAAAzH,EAAYiB,YAAI,eAAEqR,kBAAmBC,GAAA,aAA4BvS,EAAYiB,KAAKnB,aAM9EkK,EAAa,SAACwI,GAAe,OAAKP,GAAeQ,GAAA,YAAwB,OAAD,QAC5ED,OAAAA,GACGlB,GACH,EACIoB,EAAY,SAACF,GAAe,OAAKN,EAAMlI,EAAWwI,GAAQ,EAChE,GAMI,QAAkCxI,EAAY0I,GALzChD,EAAU,EAAjBhJ,MACAiM,EAAO,EAAPA,QACYC,EAAoB,EAAhCrI,WACAsI,EAAU,EAAVA,WACAC,EAAqB,EAArBA,sBAMInD,GAAgB,SACpBD,aAAU,EAAVA,EAAY3N,KAAI,SAAA8I,GAAG,OAAIA,EAAImF,QAAQ,IACnCyC,GAAA,qBAMI7C,GAAkB,SACtB,iBAA0BF,GAAY3N,KAAI,SAAA8I,GAAG,OAAIA,EAAI3K,EAAE,KACvD,SAAAwK,GAAI,OAAK+H,GAAA,oBAAgC/H,EAAM1K,EAAYiB,KAAKnB,WAAW,IAOvEiT,GAA4B,SAChCf,EAAsBgB,EAAA,SAAoBrD,EAAcjJ,OAAS,IAAM,IACvE,SAAAgE,GAAI,OAAIlK,GAAAyS,EAAA,eAA0C,CAChDC,aAAcxI,EACX1L,OAAOgP,EAAA,iBACPjM,KAAI,SAAA8I,GAAG,MAAK,CAAEnK,cAAemK,EAAInK,cAAeyS,WAAYtI,EAAI3K,GAAI,IACvEkT,QAAS,CACPjT,kBAAmBH,EAAYiB,KAAKnB,WACpCG,cAAeD,EAAYiB,KAAKf,KAElC,IACF,SAAA2K,GAAG,gBAAOA,EAAI3K,GAAE,YAAI2K,EAAInK,cAAa,IAGjC6J,EAAaqI,GACdjD,EAAcpF,YACdqF,EAAgBrF,YAChBwI,EAA0BxI,YAC1B9C,EAAW8C,WAEV8I,GAAsBP,IAA0BpD,aAAU,EAAVA,EAAYxM,UAAWyM,EAAcxE,yBAE3F,MAAO,CACLuE,WAAAA,EACAC,cAAAA,EACAC,gBAAAA,EACAnI,WAAYA,EAAWxG,KACvB8R,0BAAAA,EACAxI,WAAAA,EACA8I,mBAAAA,EACAR,WAAAA,EACAF,QAAAA,EACAD,UAAAA,EACApN,YAAwB,QAAX,EAAA8M,EAAOnR,YAAI,eAAEqE,YAE9B,CDzDMgO,GAVF5D,EAAU,EAAVA,WACAC,EAAa,EAAbA,cACAC,EAAe,EAAfA,gBACArF,EAAU,EAAVA,WACA8I,EAAkB,EAAlBA,mBACAR,EAAU,EAAVA,WACAF,EAAO,EAAPA,QACAD,EAAS,EAATA,UACApN,EAAW,EAAXA,YACAmC,EAAU,EAAVA,WAGI8L,EAAc5B,EAAe6B,EAAA,iBAAgC3B,EAEnE,aAAgB,WACV0B,GACF,eAA2B,CACzBpC,YAAa,cACbC,OAAQ,mBACP,CAAEqC,SAAS,GAClB,GAAG,CAACF,KAEJ,EAAAG,EAAA,GAAmB,CAAE5O,MAAO,GAAU,gBAEtC,IAAM6O,ED2CF,SAAoCzG,GACxC,IAAMkF,EAAS,kBAA6BC,GAAA,YAEtClF,EAAWD,EAAYE,IAAMF,EAAYG,GAE/C,OAAO,eAAkB,SAACM,GAAkB,OAxD9C,SACEsB,EACA9B,EACAiF,GAEA,IAAInB,EACA2C,EAAkB,YAmBtB,GAjBI5F,EAAA,UAAoBiB,KACtBgC,EAAa,SAEXjD,EAAA,gBAA0BiB,KAC5BgC,EAAa,cACb2C,EAAkB,eAGhB5F,EAAA,SAAmBiB,KACrBgC,EAAa,QAEXhC,EAAavK,SAAWP,EAAA,WAC1B8M,EAAa,UAEXhC,EAAavK,SAAWP,EAAA,aAC1B8M,EAAa,YAEXjD,EAAA,cAAwBiB,KACHjB,EAAA,mBAA6BiB,GAA5C4E,WAGN,MAAO,GAGX,IAAMC,EAAsB,CAAC9C,GAAsB/B,EAAcgC,IAE3D8C,EAAYC,GAAA,eAAkC5B,EAAQnD,GAc5D,OAbI8E,GACFD,EAAoBtI,KAAK,CACvB0F,MAAQ/D,EAEJ,GAAUyG,GADV,kBAAM,gBAACrC,GAAc,CAACL,MAAO,GAAU0C,GAAkB5S,IAAK+S,GAAa,EAG/ErO,UAAW,eACXuO,QAAS9G,EACTqE,KAAMwC,GAAA,eAAkC5B,EAAQnD,GAChDiF,cAAc,IAIXJ,CACT,CAQIH,CAAuBhG,EAAQR,EAAUiF,EAAOnR,KAAK,GAAE,CAACkM,GAC5D,CClDiCgH,CAA0BjH,GAEzD,OACE,uBAAKxH,UAAU,SACX6N,GAAe,gBAACa,GAAA,EAAY,MAGxBf,EACK,gBAACtC,GAAsB,MAE3BrB,EAAWxM,OASd,gCACE,gBAACuM,EAAe,CACdC,WAAYA,EACZC,cAAeA,EAAcjJ,MAC7BkJ,gBAAiBA,EAAgBlJ,MACjCoG,iBAAkB,MAClBC,iBAAkB4G,EAClB5D,mBAAiB,EACjB7C,YAAaA,EACbzF,WAAYA,EACZnC,YAAaA,KAEbqN,GAAWpI,IACX,gBAAC8J,EAAA,EAAoB,CAAC9J,WAAYA,EAAYmI,UAAWA,EAAWG,WAAYA,KApBlF,gBAACjH,EAAoB,CACnBI,QAAS,CAAEmF,YAAa,cAAuBC,OAAQ,oBACvDhM,SAAUkP,EAAA,qCAyBxB,C,6zBEjFA,IACM1Q,EAAY,qBADA,gBAGZ2Q,EAAqB,CACzB,UACA,SACA,iBAGI,SAAUzH,EAAiBa,GAC/B,OAAI,kBAA0BA,GACrB,CACLwD,YAAa,iBACbC,OAAQ,kCACRC,KAAM,CAAE1D,EAAOzN,GAAI,YAAmByN,EAAO5I,QAI7C,WAAmB4I,GACd,CACLwD,YAAa,UACbC,OAAQ,oBACRC,KAAM,CAAE1D,EAAOzN,GAAI,YAAmByN,EAAO5I,QAI7C,YAAoB4I,GACf,CACLwD,YAAa,WACbC,OAAQ,sBACRC,KAAM,CAAE1D,EAAOzN,GAAI,YAAmByN,EAAO5I,QAI7C4I,EAAOjJ,SAAW,aACb,CACLyM,YAAa,cACbC,OAAQ,uBACRC,KAAM,CAAE1D,EAAOzN,GAAI,YAAmByN,EAAO5I,QAI7C4I,EAAOjJ,SAAW,WACb,qBAAqCiJ,QAD9C,CAGF,CAEM,SAAU6G,EAA2BhS,EAAc8O,GACvD,IAAK9O,EACH,OAAO,KAET,IAAK+R,EAAmBE,SAASjS,EAAMkS,cACrC,OAAO5H,EAAiB,CAAE5M,GAAIsC,EAAMwN,SAAS3N,WAAYqC,OAAQlC,EAAMkS,eAEzE,GAAIlS,EAAMtB,OAAS,cAAqB,CACtC,IAAM4B,EAAc,4BAAoCN,GAExD,MAAO,CACL2O,YAAa,eACbC,OAAQ,iCACRC,KAAM,CAAEvO,EAAaN,EAAMmS,SAC3BrD,OAAAA,EAEH,CAED,OAAI9O,EAAMtB,OAAS,SACV,CACLiQ,YAAa,eACbC,OAAQ,gDACRC,KAAM,CAAC7O,EAAMmS,SACbrD,OAAAA,GAIG,CACLH,YAAa,cACbC,OAAQ,+BACRC,KAAM,CAAC7O,EAAMmS,SACbrD,OAAAA,EAEJ,CAEM,SAAUsD,EAA0BpS,EAAc8O,GACtD,IAAK9O,EACH,OAAO,KAET,IAAK+R,EAAmBE,SAASjS,EAAMkS,cACrC,OAAO5H,EAAiB,CAAE5M,GAAIsC,EAAMwN,SAAS3N,WAAYqC,OAAQlC,EAAMkS,eAEzE,GAAIlS,EAAMtB,OAAS,cAAqB,CACtC,IAAM4B,EAAc,4BAAoCN,GAExD,MAAO,CACL2O,YAAa,eACbC,OAAQ,gCACRC,KAAM,CAAEvO,EAAaN,EAAMmS,SAC3BrD,OAAAA,EAEH,CAED,OAAI9O,EAAMtB,OAAS,SACV,CACLiQ,YAAa,eACbC,OAAQ,+CACRC,KAAM,CAAC7O,EAAMmS,SACbrD,OAAAA,GAIG,CACLH,YAAa,cACbC,OAAQ,8BACRC,KAAM,CAAC7O,EAAMmS,SACbrD,OAAAA,EAEJ,CAEM,SAAUuD,EAA4BrS,EAAc8O,GACxD,IAAK9O,EACH,OAAO,KAET,IAAK+R,EAAmBE,SAASjS,EAAMkS,cACrC,OAAO5H,EAAiB,CAAE5M,GAAIsC,EAAMwN,SAAS3N,WAAYqC,OAAQlC,EAAMkS,eAEzE,GAAIlS,EAAMtB,OAAS,cAAqB,CACtC,IAAM4B,EAAc,4BAAoCN,GAExD,MAAO,CACL2O,YAAa,eACbC,OAAQ,kCACRC,KAAM,CAAEvO,EAAaN,EAAMmS,SAC3BrD,OAAAA,EAEH,CAED,OAAI9O,EAAMtB,OAAS,SACV,CACLiQ,YAAa,eACbC,OAAQ,iDACRC,KAAM,CAAC7O,EAAMmS,SACbrD,OAAAA,GAIG,CACLH,YAAa,cACbC,OAAQ,gCACRC,KAAM,CAAC7O,EAAMmS,SACbrD,OAAAA,EAEJ,CAEM,SAAUwD,EAA2BtS,EAAc8O,GACvD,IAAK9O,EACH,OAAO,KAET,IAAK+R,EAAmBE,SAASjS,EAAMkS,cACrC,OAAO5H,EAAiB,CAAE5M,GAAIsC,EAAMwN,SAAS3N,WAAYqC,OAAQlC,EAAMkS,eAEzE,GAAIlS,EAAMtB,OAAS,cAAqB,CACtC,IAAM4B,EAAc,4BAAoCN,GAExD,MAAO,CACL2O,YAAa,eACbC,OAAQ,iCACRC,KAAM,CAAEvO,EAAaN,EAAMmS,SAC3BrD,OAAAA,EAEH,CAED,OAAI9O,EAAMtB,OAAS,SACV,CACLiQ,YAAa,eACbC,OAAQ,gDACRC,KAAM,CAAC7O,EAAMmS,SACbrD,OAAAA,GAIG,CACLH,YAAa,cACbC,OAAQ,+BACRC,KAAM,CAAC7O,EAAMmS,SACbrD,OAAAA,EAEJ,CAEM,SAAUyD,EAAuBvS,GACrC,GAAKA,EAAL,CAEA,IAAMyO,EAAa+D,EAAsBxS,GAEzC,OAAIA,EAAMtB,OAAS,SACV,CACLiQ,YAAa,UACbC,OAAQ,gBACRC,KAAM,CAAC7O,EAAMwN,UACbsB,OAAQ,CAAEL,WAAAA,IAIP,kBAAkC,CACvCjB,SAAUxN,EAAMwN,SAAS3N,WACzBsS,QAASnS,EAAMmS,QACf1D,WAAAA,EACAgE,aAAcrR,EAAU,iBAjBR,CAmBpB,CAEM,SAAUsR,EAAsB1S,GACpC,GAAKA,EAAL,CAEA,IAAMyO,EAAa+D,EAAsBxS,GAEzC,GAAIA,EAAMtB,OAAS,SACjB,MAAO,CACLiQ,YAAa,UACbC,OAAQ,4BACRC,KAAM,CAAC7O,EAAMwN,UACbsB,OAAQ,CACNL,WAAAA,EACAkE,gBAAiB,CACfhE,YAAa,cACbC,OAAQ,qBAMhB,IAAMhC,EAAO,WACV,cAAsB,6BACtB,SAAiB,iCACjB,SAAiB,IACjB,SAAiB,IAGdgG,EAAe,WAClB,cAAsB,+BACtB,SAAiB,gCACjB,SAAiB,IACjB,SAAiB,IAGdhE,EAAShC,EAAQ5M,EAAMtB,MACvBmU,EAAiBD,EAAgB5S,EAAMtB,MAE7C,GAAKkQ,GAAWiE,EAEhB,MAAO,CACLlE,YAAa,UACbC,OAAQA,EACRC,KAAM,CAAC7O,EAAMmS,SACbrD,OAAQ,CACN6D,gBAAiB,CACfhE,YAAa,eACbC,OAAQiE,EACRhE,KAAM,CAAC,4BAAoC7O,MA9C/B,CAkDpB,CAaA,SAASwS,EAAsBxS,GAC7B,OAAIA,EAAMkS,eAAiB,UAClB,QAELlS,EAAMkS,eAAiB,gBAClB,cAELlS,EAAMkS,eAAiB,SAClB,OAELlS,EAAMkS,eAAiB,WAClB,SAELlS,EAAMkS,eAAiB,aAClB,gBADT,CAEF,C","sources":["file:///app/packages/libs/shared/src/utils/AnalyticsRequestUtils.ts","file:///app/packages/libs/shared/src/apps/analytics/flight-requests/InteractiveResultsRequests.ts","file:///app/packages/libs/shared/src/apps/share-v2/enums/ShareType.ts","file:///app/packages/libs/shared/src/apps/share-v2/utils/ShareHelper.ts","file:///app/packages/libs/shared/src/apps/share/components/shared-to-avatar-list/shared-to-avatar-list.scss","file:///app/packages/libs/shared/src/apps/share/components/shared-to-avatar-list/SharedToAvatarList.tsx","file:///app/packages/libs/shared/src/apps/share/utils/ShareLinkHelper.ts","file:///app/packages/libs/shared/src/components/avatar-list/AvatarList.tsx","file:///app/packages/libs/shared/src/hooks/UseBatchFetch.ts","file:///app/packages/libs/shared/src/utils/GroupHelper.ts","file:///app/packages/libs/shared/src/apps/share/components/shared-by-me/empty-state/SharedByMeEmptyState.tsx","file:///app/packages/libs/shared/src/apps/share/components/shared-by-me/share-status-indicator/share-status-indicator.scss","file:///app/packages/libs/shared/src/apps/share/components/shared-by-me/share-status-indicator/ShareStatusIndicator.tsx","file:///app/packages/libs/shared/src/apps/share/components/shared-by-me/table/SharedByMeTableUtils.tsx","file:///app/packages/libs/shared/src/apps/share/components/shared-by-me/table/SharedByMeTable.tsx","file:///app/packages/libs/shared/src/utils/ShareHelper.ts","file:///app/packages/projects/lite/src/apps/share/views/shared-by-me/partial-loading/partial-shared-by-me-table.scss","file:///app/packages/projects/lite/src/apps/share/views/shared-by-me/partial-loading/PartialSharedByMeTable.tsx","file:///app/packages/projects/lite/src/apps/share/views/shared-by-me/SharedByMeViewUtils.tsx","file:///app/packages/projects/lite/src/apps/share/views/shared-by-me/SharedByMeView.tsx","file:///app/packages/projects/lite/src/shared/hooks/useSharedByMeTable.ts","file:///app/packages/projects/lite/src/shared/utils/ObjectAppLinkHelper.ts"],"sourcesContent":["import { AnalyticsRequestFilter } from 'libs/shared/interfaces';\n\nexport function getAnalyticsRequestKey(baseKey: string, filter: AnalyticsRequestFilter, extra?: string): string {\n if (!filter)\n return baseKey;\n\n let key = `${baseKey}:${filter.start}:${filter.end}`;\n\n const userIdKey = Array.isArray(filter.userId) ? filter.userId.sort().join(':') : filter.userId;\n const groupIdKey = Array.isArray(filter.groupId) ? filter.groupId.sort().join(':') : filter.groupId;\n const customerIdKey = Array.isArray(filter.customerId) ? filter.customerId.sort().join(':') : filter.customerId;\n\n if (userIdKey)\n key += `:${userIdKey}`;\n\n if (groupIdKey)\n key += `:${groupIdKey}`;\n\n if (customerIdKey)\n key += `:${customerIdKey}`;\n\n if (extra)\n key += `:${extra}`;\n\n return key;\n}","import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { Flight } from 'libs/common/react/index';\n\nimport { MarkInteractiveAnswer } from 'libs/shared/apps/analytics/interfaces/MarkInteractiveAnswer';\nimport { InteractiveResultsReport } from 'libs/shared/apps/analytics/interfaces/requests/InteractiveResultsReport';\nimport { InteractivesPendingReviewsRequest } from 'libs/shared/apps/analytics/interfaces/requests/InteractivesPendingReviewsRequest';\nimport { AnalyticsRequestFilter, CurrentUser, InteractiveResultSet } from 'libs/shared/interfaces';\nimport { getAnalyticsRequestKey } from 'libs/shared/utils/AnalyticsRequestUtils';\n\ninterface InteractiveResultFilters {\n currentUserId: string;\n currentCustomerId: string;\n dateRange?: { start: string, end: string }\n userIds?: string | string[];\n classroomsAndGroups?: string | string[];\n}\n\nfunction getInteractiveResultFilters(\n currentUser: CurrentUser,\n filter: AnalyticsRequestFilter\n): InteractiveResultFilters {\n return {\n currentUserId: currentUser.id,\n currentCustomerId: currentUser.customerId,\n dateRange: filter ? { start: filter.start, end: filter.end } : undefined,\n userIds: filter?.userId,\n classroomsAndGroups: filter?.groupId\n };\n}\n\nexport const InteractiveResultsRequests = {\n /** \n * This endpoint returns data with a lot of duplicated ids,\n * e.g. student answers to the same question will have the same id.\n * Because of that, we don't normalize.\n */\n interactiveResultSet(\n interactiveId: string,\n interactiveMetadataId: string,\n currentUser: CurrentUser,\n filter?: AnalyticsRequestFilter,\n includePublicResults?: boolean,\n success?: (data: InteractiveResultSet) => void,\n error?: (data: any) => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: includePublicResults ?\n `/api/domain/v3/analytics/interactives/${interactiveId}/metadata/${interactiveMetadataId}` :\n `/api/domain/v2/analytics/interactives/${interactiveId}/metadata/${interactiveMetadataId}`,\n key: getAnalyticsRequestKey(`interactive:result:set:${interactiveId}:${interactiveMetadataId}`, filter),\n data: getInteractiveResultFilters(currentUser, filter),\n type: HttpVerbs.POST,\n normalize: false,\n success,\n error,\n always\n };\n },\n \n /**\n * As the response from `interactiveResultSet` isn't normalised, we need to invalidate the cache\n * to update the results data.\n */\n mark(\n interactiveId: string,\n interactiveMetadataId: string,\n answerId: string,\n data: MarkInteractiveAnswer,\n success?: () => void,\n error?: (data: any) => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: `/api/domain/v1/analytics/answers/${answerId}`,\n key: `mark:answer:${answerId}:${data.resultId}`,\n type: HttpVerbs.PUT,\n data,\n normalize: false,\n invalidationKeys: `interactive:result:set:${interactiveId}:${interactiveMetadataId}`,\n success,\n error,\n always\n };\n },\n\n pendingReviews(data: InteractivesPendingReviewsRequest): Flight.Request {\n return {\n url: `/api/domain/v1/analytics/interactives/pending-reviews/summary`,\n key: `interactives:pending:reviews`,\n type: HttpVerbs.POST,\n data\n };\n },\n\n interactiveResultsReport(data: InteractiveResultsReport): Flight.Request {\n return {\n url: '/api/domain/v3/analytics/interactives/report',\n key: 'interactive:results:report',\n data,\n type: HttpVerbs.POST,\n normalize: false\n };\n }\n};","export enum ShareType {\n Link = 'Link',\n Classroom = 'Classroom',\n Open = 'Open',\n Live = 'Live'\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};","// extracted by mini-css-extract-plugin\nexport default {\"avatarContainer\":\"ByxQa\",\"sm\":\"EgJ0v\",\"sharedAvatar\":\"cW0NT\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { Avatar } from 'libs/shared/components/avatar/Avatar';\nimport { AvatarItemProps, AvatarList } from 'libs/shared/components/avatar-list/AvatarList';\nimport { IconCircle } from 'libs/shared/components/icon-circle/IconCircle';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { BaseObject, Classroom, ClassroomGroup, User } from 'libs/shared/interfaces';\nimport { mapColourToBsVariant } from 'libs/shared/utils/GroupHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\nimport { UserHelper } from 'libs/shared/utils/UserHelper';\n\nimport styles from './shared-to-avatar-list.scss';\n\nconst namespace = 'reportsShare.sharedToAvatarList';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction getHiddenRecipientText(hiddenRecipients: BaseObject[]): string {\n const counts = ArrayHelper.countBy(hiddenRecipients, 'typeId');\n const userCount = counts[MasterType.User];\n const classroomCount = counts[MasterType.Classroom];\n const groupCount = counts[MasterType.ClassroomGroup];\n\n if (userCount && classroomCount && groupCount)\n return getPhrase('classroomsGroupsAndUsers', { userCount, classroomCount, groupCount });\n\n if (userCount && classroomCount)\n return getPhrase('classroomsAndUsers', { userCount, classroomCount });\n\n if (userCount && groupCount)\n return getPhrase('groupsAndUsers', { userCount, groupCount });\n\n if (classroomCount && groupCount)\n return getPhrase('classroomsAndGroups', { classroomCount, groupCount });\n\n if (userCount)\n return getPhrase('users', { userCount });\n\n if (classroomCount)\n return getPhrase('classrooms', { classroomCount });\n\n if (groupCount)\n return getPhrase('groups', { groupCount });\n}\n\nfunction SharedToAvatar(props: AvatarItemProps): JSX.Element {\n const user: User = props.item?.typeId === MasterType.User && props.item as User;\n const classroom: Classroom = props.item?.typeId === MasterType.Classroom && props.item as Classroom;\n const classroomGroup: ClassroomGroup = props.item?.typeId === MasterType.ClassroomGroup\n && props.item as ClassroomGroup;\n\n const svgContainerClassName = 'd-flex justify-content-center align-items-center text-white rounded-circle h-100 w-100';\n\n return (\n <>\n {!!user &&\n <Tooltip title={`${user.name} ${user.surname}`} spanHack spanHackClassName='h-100 w-100'>\n <Avatar\n imageUrl={user.avatar?.url}\n imageCdnUrl={props.imageCdnUrl}\n initials={UserHelper.getInitials(user.name, user.surname)}\n extraClasses={styles.sharedAvatar}\n />\n </Tooltip>\n }\n {!!classroom &&\n <Tooltip title={classroom.name} spanHack spanHackClassName='h-100 w-100'>\n <div className={svgContainerClassName}>\n <IconCircle\n svgName={cvSvgLibrary.Classrooms}\n svgSize={SvgContainerSize.Large}\n variant='teal'\n />\n </div>\n </Tooltip>\n }\n {!!classroomGroup &&\n <Tooltip title={classroomGroup.name} spanHack spanHackClassName='h-100 w-100'>\n <div className={svgContainerClassName}>\n <IconCircle\n svgName={cvSvgLibrary.Group}\n variant={mapColourToBsVariant(classroomGroup.metadata?.colour)}\n />\n </div>\n </Tooltip>\n }\n </>\n );\n}\n\n\ninterface AnonymousSharedToAvatarProps {\n avatarSize?: 'md' | 'sm';\n}\n\nexport function AnonymousSharedToAvatar(props: AnonymousSharedToAvatarProps): JSX.Element {\n return (\n <div className={`${styles.avatarContainer} ${props.avatarSize === 'sm' ? styles.sm : ''}`}>\n <Tooltip\n title={getPhrase('anonymous')}\n spanHack\n spanHackClassName='bg-light text-dark d-flex justify-content-center align-items-center rounded-circle h-100 w-100'\n >\n <SvgContainer svgName={cvSvgLibrary.Anonymous} size={props.avatarSize === 'sm' ? SvgContainerSize.Small : null} />\n </Tooltip>\n </div>\n );\n}\n\ninterface SharedLinkAvatarProps {\n text?: string;\n avatarSize?: 'md' | 'sm';\n className?: string;\n}\n\nexport function SharedLinkAvatar(props: SharedLinkAvatarProps): JSX.Element {\n return (\n <div className={`${styles.avatarContainer} ${props.avatarSize === 'sm' ? styles.sm : ''}`}>\n <Tooltip\n title={props.text || getPhrase('sharedLink')}\n spanHack\n spanHackClassName={`bg-light text-dark d-flex justify-content-center align-items-center rounded-circle h-100 w-100 ${props.className || ''}`}\n >\n <SvgContainer svgName={cvSvgLibrary.Link} size={props.avatarSize === 'sm' ? SvgContainerSize.Small : null} />\n </Tooltip>\n </div>\n );\n}\n\ninterface SharedToAvatarListProps {\n recipients: BaseObject[];\n imageCdnUrl: string;\n maxAvatars?: number;\n hasShareLink?: boolean;\n avatarSize?: 'md' | 'sm';\n shareLinkText?: string;\n}\n\nSharedToAvatarList.defaultProps = {\n maxAvatars: 5\n};\n\nexport function SharedToAvatarList(props: SharedToAvatarListProps): JSX.Element {\n return (\n <AvatarList\n {...props}\n items={props.recipients}\n avatarItem={SharedToAvatar}\n avatarContainerClassname={`${styles.avatarContainer} ${props.avatarSize === 'sm' ? styles.sm : ''}`}\n getHiddenTooltip={getHiddenRecipientText}\n hasShareLink={props.hasShareLink}\n shareLinkText={props.shareLinkText}\n />\n );\n}","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { SharePrivacyResponse } from 'libs/shared/apps/share/interfaces/responses/SharePrivacyResponse';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { ShareLinkStatus } from 'libs/shared/enums/ShareLinkStatus';\nimport { 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 = 'share.shareLinkInfo';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface GetIconAndTextOptions {\n linkExpireDate: string;\n isPasswordProtected: boolean;\n privacy: SharePrivacyResponse;\n status: ShareLinkStatus;\n entityTypeId: MasterType;\n hasStudentExp: boolean;\n entity: BaseObject;\n yearGroups: YearGroup[];\n}\n\n\nexport const ShareLinkHelper = {\n getPrivateIconAndText: (options: GetIconAndTextOptions) => {\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.privacy) {\n case 'public':\n return { icon: cvSvgLibrary.VisibleOn, text: getPhrase('publicDescription') };\n case 'protected':\n if (privacy.overrideRestrictions)\n return { icon: cvSvgLibrary.VisibleOn, text: getPhrase('clickViewOnly') };\n return {\n icon: cvSvgLibrary.Lock,\n text: ShareLinkHelper.getRespectRatingText(entity, yearGroups, hasStudentExp)\n };\n case 'just_my_customer':\n if (privacy.overrideRestrictions)\n return { icon: cvSvgLibrary.Lock, text: getPhrase(hasStudentExp ? 'justMySchoolTeachers' : 'justMySchoolDescription') };\n return {\n icon: cvSvgLibrary.Lock,\n text: ShareLinkHelper.getRespectRatingText(entity, yearGroups, hasStudentExp)\n };\n /**\n * Because we plan to add restricted management later \n * for the time being we treat is the same as private \n */\n case 'restricted':\n case 'private':\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};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { SharedLinkAvatar } from 'libs/shared/apps/share/components/shared-to-avatar-list/SharedToAvatarList';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { BaseObject } from 'libs/shared/interfaces';\n\nconst namespace = 'shared.avatarList';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport interface AvatarItemProps {\n imageCdnUrl: string;\n index: number;\n item?: BaseObject;\n hiddenItems?: BaseObject[];\n maxAvatars?: number;\n}\n\ninterface AvatarListProps {\n items: BaseObject[];\n imageCdnUrl: string;\n maxAvatars?: number;\n avatarItem?: (props: AvatarItemProps) => JSX.Element;\n getHiddenTooltip?: (hiddenItems: BaseObject[]) => string;\n numberClassname?: string;\n avatarContainerClassname?: string;\n roleToDisplay?: 'student' | 'staff';\n hasShareLink?: boolean;\n avatarSize?: 'md' | 'sm';\n shareLinkText?: string;\n}\n\nAvatarList.defaultProps = {\n maxAvatars: 5\n};\n\nexport function AvatarList(props: AvatarListProps): JSX.Element {\n const itemsToDisplay = props.items.length > props.maxAvatars\n ? props.items.slice(0, props.maxAvatars - 1)\n : props.items;\n\n const hiddenItems = props.items.length > itemsToDisplay.length\n ? props.items.slice(props.maxAvatars - 1)\n : [];\n\n const AvatarItem = props.avatarItem;\n const hiddenItemsCounts = hiddenItems.length;\n const translateX = props.avatarSize === 'sm' ? 4 : 8;\n\n function getTooltip() {\n if (props.getHiddenTooltip)\n return props.getHiddenTooltip(hiddenItems);\n\n if (props.roleToDisplay)\n return getPhrase(props.roleToDisplay === 'staff' ? 'staff' : 'student', { count: hiddenItemsCounts, smartCount: hiddenItemsCounts });\n\n return getPhrase('users', { count: hiddenItemsCounts, smartCount: hiddenItemsCounts });\n }\n\n function getContainerStyles() {\n return {\n marginRight: `-${((itemsToDisplay.length - 1) + (hiddenItems.length ? 1 : 0) + (props.hasShareLink ? 1 : 0)) * translateX}px`\n };\n }\n\n function getAvatarStyles(idx: number) {\n return {\n transform: `translateX(${(props.hasShareLink ? idx + 1 : idx) * -translateX}px)`,\n zIndex: props.maxAvatars - idx\n };\n }\n\n if (itemsToDisplay.length === 0 && hiddenItems.length === 0)\n return <></>;\n\n return (\n <div\n className='d-flex'\n style={getContainerStyles()}\n >\n {props.hasShareLink && (\n <div style={{ zIndex: props.maxAvatars + 1 }}>\n <SharedLinkAvatar text={props.shareLinkText} avatarSize={props.avatarSize} className='bg-dark text-white' />\n </div>\n )}\n {itemsToDisplay.map((item, idx) => (\n <div\n className={`${props.avatarContainerClassname || ''}`} key={item.id}\n style={getAvatarStyles(idx)}\n >\n <AvatarItem\n item={item}\n imageCdnUrl={props.imageCdnUrl}\n index={idx}\n maxAvatars={props.maxAvatars}\n />\n </div>\n ))}\n\n {!!hiddenItems.length && (\n <div\n className={`${props.avatarContainerClassname || ''} bg-white rounded-circle`}\n style={{ transform: `translateX(${itemsToDisplay.length * -translateX}px)`, zIndex: props.maxAvatars - itemsToDisplay.length }}\n >\n <Tooltip title={getTooltip()} spanHack spanHackClassName='h-100 w-100'>\n <div className={`d-flex justify-content-center align-items-center border border-dark rounded-circle h-100 w-100 ${props.numberClassname || ''}`}>\n {`+${hiddenItems.length}`}\n </div>\n </Tooltip>\n </div>\n )}\n </div>\n );\n}","import React from 'react';\n\nimport { Flight } from 'libs/common/flight';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { BaseObject } from 'libs/shared/interfaces';\n\nconst CHUNK_SIZE = 50;\n\nexport interface UseBatchFetchResult<T extends BaseObject> {\n itemsArr: T[];\n items: { [key: string]: T} | null;\n isFetching: boolean;\n hasCompleted: boolean;\n}\n\n/**\n * Used to fetch multiple items by id with Flight. Will fetch 25 items at a time firing off multiple\n * requests if there are more than 25 items.\n * This will return items as null until we have all our items. Items will be returned as an object with\n * their ids as they key for easy mapping\n * \n * @param itemIds \n * @param getRequest \n */\nexport function useBatchFetch<T extends BaseObject>(\n itemIds: string[],\n getRequest: (ids: string[]) => Flight.Request\n): UseBatchFetchResult<T> {\n const chunks = ArrayHelper.chunk<string>(itemIds, CHUNK_SIZE);\n\n const requests = chunks.map(chunk => getRequest(ArrayHelper.uniq(chunk)));\n\n const responses = Flight.useBasicFetchAll<T[]>(requests);\n\n const itemsArr = ArrayHelper.flatten(responses.data);\n const items = responses.data.length\n ? itemsArr.reduce((acc, item) => ({ ...acc, [item.id]: item }), {})\n : null;\n\n return {\n itemsArr,\n items,\n isFetching: responses.isFetching,\n hasCompleted: responses.hasCompleted\n };\n}\n\n/**\n * When you need the useBatchFetch() behavior, but your list of objects to hydrate\n * will grow, such as on a scrolling page. useGrowingBatchFetch() will use local state\n * to determine what we've already built a request for and what items are new\n * as to not re-fetch items - Sha\n */\nexport function useGrowingBatchFetch<TResponse, TObjects = string>(\n objs: TObjects[],\n getRequest: (items: TObjects[]) => Flight.Request,\n _getKey?: (obj: TObjects) => string\n) {\n const getKey = _getKey ?? ((obj: any) => {\n if (typeof obj === 'object')\n return obj.id;\n\n return obj;\n });\n\n const { fetchItems, ...data } = useGrowingBatchFetchFunc<TResponse, TObjects>({ getRequest, _getKey });\n\n React.useEffect(() => {\n if (!objs?.length)\n return;\n\n fetchItems(objs);\n }, [objs?.map(getKey).join(',')]);\n\n return data;\n}\n\ninterface UseGrowingBatchFetchFuncOptions<TObjects> {\n getRequest: (items: TObjects[]) => Flight.Request;\n _getKey?: (obj: TObjects) => string;\n}\n\n/**\n * When you need the useGrowingBatchFetch() behaviour, but need to trigger the\n * fetch manually and update the objects - Nish \n */\nexport function useGrowingBatchFetchFunc<TResponse, TObjects = string>(\n options: UseGrowingBatchFetchFuncOptions<TObjects>\n) {\n const getKey = options._getKey ?? ((obj: any) => {\n if (typeof obj === 'object')\n return obj.id;\n\n return obj;\n });\n\n const fetchedItems = React.useRef<Set<string>>(new Set<string>());\n const [ requests, setRequests ] = React.useState<Flight.Request[]>([]);\n\n function fetchItems(objs: TObjects[]) {\n if (!objs?.length)\n return;\n\n const unfetchedItems: TObjects[] = [];\n \n objs.forEach(obj => {\n const key = getKey(obj);\n\n if (fetchedItems.current.has(key))\n return;\n\n unfetchedItems.push(obj);\n fetchedItems.current.add(key);\n });\n \n if (!unfetchedItems.length)\n return;\n \n setRequests(r => ([ ...r, ...ArrayHelper.chunk<TObjects>(unfetchedItems, CHUNK_SIZE).map(options.getRequest) ]));\n }\n\n const responses = Flight.useBasicFetchAll<TResponse[]>(requests);\n const itemsArr = ArrayHelper.flatten(responses.data);\n const items = responses.data.length\n ? itemsArr.reduce<Record<string, TResponse>>((acc, item) => ({ ...acc, [getKey(item)]: item }), {})\n : null;\n\n return {\n hasFirstRequestCompleted: !!responses.responses?.[0]?.hasCompleted,\n itemsArr,\n items,\n isFetching: responses.isFetching,\n fetchItems\n };\n}\n","import { ButtonProps } from 'react-bootstrap';\n\nimport { ClassroomGroupColour } from 'libs/shared/interfaces';\n\nexport function mapColourToBsVariant(groupColour: ClassroomGroupColour): ButtonProps['variant'] {\n switch (groupColour) {\n case ClassroomGroupColour.Pink:\n return 'pink';\n case ClassroomGroupColour.Orange:\n return 'orange';\n case ClassroomGroupColour.Green:\n return 'green';\n case ClassroomGroupColour.Blue:\n return 'blue';\n case ClassroomGroupColour.Purple:\n return 'purple';\n case ClassroomGroupColour.Indigo:\n return 'indigo';\n default:\n return 'pink';\n }\n}\n","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\n\nconst namespace = 'share.sharedByMeEmptyState';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface SharedByMeEmptyStateProps {\n imageUrl: string;\n appLink?: Core.AppLink;\n useInteractiveCopy?: boolean;\n}\n\nexport function SharedByMeEmptyState(props: SharedByMeEmptyStateProps): JSX.Element {\n return (\n <EmptyState>\n <EmptyState.Image src={props.imageUrl} size='small'/>\n <EmptyState.Heading>\n {getPhrase(props.useInteractiveCopy ? 'interactivesHeading' : 'genericHeading')}\n </EmptyState.Heading>\n <EmptyState.Info>{getPhrase(props.useInteractiveCopy ? 'interactivesInfo' : 'genericInfo')}</EmptyState.Info>\n {!!props.appLink &&\n <EmptyState.Cta appLink={props.appLink} text={getPhrase('cta')} />\n }\n </EmptyState>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"indicatorContainer\":\"T6YAv\",\"indicator\":\"_MRHG\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { ShareLinkStatus } from 'libs/shared/enums/ShareLinkStatus';\nimport { ShareType } from 'libs/shared/enums/ShareType';\nimport { UnionShareObject } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './share-status-indicator.scss';\n\nconst namespace = 'share.shareStatusIndicator';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction getStatusPhrase(share: UnionShareObject): string {\n if (share.type === ShareType.DirectShare)\n return getPhrase('active');\n\n switch (share.status) {\n case ShareLinkStatus.Active:\n return getPhrase('active');\n\n case ShareLinkStatus.Expired:\n return getPhrase('expired');\n }\n}\n\nfunction getBgColourClassName(share: UnionShareObject): string {\n if (share.type === ShareType.DirectShare)\n return 'bg-success';\n \n switch (share.status) {\n case ShareLinkStatus.Active:\n return 'bg-success';\n\n case ShareLinkStatus.Expired:\n return 'bg-gray-500';\n }\n}\n\ninterface ShareStatusIndicatorProps {\n share: UnionShareObject;\n}\n\n/**\n * TODO: add support for deleted share links (currently the api doesn't return these.)\n */\nexport function ShareStatusIndicator(props: ShareStatusIndicatorProps): JSX.Element {\n if (props.share.type === ShareType.DirectShare && !props.share.recipients?.length)\n return <></>;\n\n if (props.share.type === ShareType.ShareLink && props.share.isPasswordProtected) {\n return (\n <Tooltip title={getPhrase('passwordProtected')} spanHack>\n <SvgContainer svgName={cvSvgLibrary.Lock} size={SvgContainerSize.Small} />\n </Tooltip>\n );\n }\n\n return (\n <Tooltip\n title={getStatusPhrase(props.share)}\n spanHack\n spanHackClassName={styles.indicatorContainer}\n >\n <div className={`${styles.indicator} ${getBgColourClassName(props.share)}`} />\n </Tooltip>\n );\n}","import React from 'react';\nimport { Column } from 'react-table';\nimport { format as formatDate } from 'timeago.js';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport {\n ShareStatusIndicator\n} from 'libs/shared/apps/share/components/shared-by-me/share-status-indicator/ShareStatusIndicator';\nimport { SharedObjectImage } from 'libs/shared/apps/share/components/shared-object-image/SharedObjectImage';\nimport {\n AnonymousSharedToAvatar,\n SharedLinkAvatar,\n SharedToAvatarList\n} from 'libs/shared/apps/share/components/shared-to-avatar-list/SharedToAvatarList';\nimport { ShareHelper } from 'libs/shared/apps/share/utils/ShareHelper';\nimport { ShareLinkHelper } from 'libs/shared/apps/share/utils/ShareLinkHelper';\nimport { SharableEntity, SharableRecipient, ShareViewHelper } from 'libs/shared/apps/share/views/share/ShareViewHelper';\nimport { ActionOptions, Actions } from 'libs/shared/components/actions/Actions';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { TitleSubText } from 'libs/shared/components/title-sub-text/TitleSubText';\nimport { VideoSubText } from 'libs/shared/components/video-sub-text/VideoSubText';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { ShareType } from 'libs/shared/enums/ShareType';\nimport { Breakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { BaseObject, UnionShareObject, YearGroup } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nconst namespace = 'share.sharedByMeTable';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction getDateShared(share: UnionShareObject): string {\n if (share.type === ShareType.ShareLink || !share?.recipients?.length)\n return share.dateCreated;\n\n const datesShared = share.recipients.map(r => r.dateShared);\n\n datesShared.sort((date1, date2) => {\n if (DateHelper.isSame(date1, date2))\n return 0;\n\n return DateHelper.isAfter(date1, date2) ? 1 : -2;\n });\n\n\n if (!datesShared.length)\n return '';\n\n return ArrayHelper.last(datesShared);\n}\n\ninterface SharedByMeTableData {\n share: UnionShareObject;\n sharedObject: SharableEntity;\n dateShared: string;\n sharedToData: {\n share: UnionShareObject;\n sharedObject: SharableEntity;\n recipients?: BaseObject[];\n };\n viewCount: number;\n}\n\ntype TableDataGroupings = { [date: string]: SharedByMeTableData[] };\n\ninterface GetColumnsOptions {\n index: number;\n dateHeading: string;\n getObjectAppLink: (object: BaseObject) => Core.AppLink;\n getObjectActions: (object: BaseObject) => ActionOptions[];\n imageCdnUrl: string;\n showStatus?: boolean;\n showViewCount?: boolean;\n breakpoints?: Breakpoints;\n yearGroups?: YearGroup[];\n}\n\nexport function getColumns(options: GetColumnsOptions): Column<SharedByMeTableData>[] {\n const {\n index,\n dateHeading,\n getObjectAppLink,\n getObjectActions,\n imageCdnUrl,\n showStatus,\n showViewCount,\n breakpoints,\n yearGroups\n } = options;\n const isMobile = breakpoints && (breakpoints.xs || breakpoints.sm);\n\n const columns: Column<SharedByMeTableData>[] = [\n {\n Header: showStatus ? '' : dateHeading,\n accessor: 'sharedObject',\n id: 'image',\n Cell: ({ value }) => (\n <div className='w-100'>\n <SharedObjectImage\n object={value}\n appLink={getObjectAppLink(value)}\n showVideoMetadata\n locationContext={LocationContext.SharedByMe}\n />\n </div>\n ),\n minWidth: 140,\n maxWidth: 30\n },\n {\n accessor: 'sharedObject',\n id: 'name',\n Cell: ({ value }) => {\n function getSubTextPhrase(): string {\n switch (value.typeId) {\n case MasterType.Series: return 'series';\n case MasterType.Playlist: return 'playlist';\n }\n }\n\n if (value.name) {\n if (VideoHelper.isVideoType(value) && !VideoHelper.getCanBeConsumed(value)?.canNavigate) {\n return (\n <span className='clamp-2'>\n {value.name}\n </span>\n );\n }\n\n const subTextPhrase = getSubTextPhrase();\n\n return (\n <div className='clamp-2'>\n {subTextPhrase &&\n <TitleSubText>\n <Text namespace={namespace} phrase={subTextPhrase} />\n </TitleSubText>\n }\n {VideoHelper.isVideoType(value) && (\n <VideoSubText\n type='series'\n video={value}\n appLink={'series' in value && value.series ? getObjectAppLink(value.series) : null}\n analyticsOptions={{ location: LocationContext.Insights }}\n />\n )}\n <AppLink\n appLink={getObjectAppLink(value)}\n analyticsData={{ id: value.id, name: value.name }}\n analyticsOptions={{\n entity: ShareViewHelper.getAnalyticsEntity(value.type),\n actionType: UserAction.Click,\n location: LocationContext.SharedByMe\n }}\n >\n {value.name}\n </AppLink>\n </div>\n );\n }\n\n return <span><Text namespace={namespace} phrase='videoUnavailable' /></span>;\n },\n width: 60\n },\n {\n Header: index === 0 ? getPhrase('sharedTo') : '',\n accessor: 'sharedToData',\n Cell: ({ value }) => {\n const { share, sharedObject, recipients } = value;\n\n if (!recipients) {\n const iconAndText = share.type === ShareType.ShareLink && ShareLinkHelper.getIconAndText({\n entity: sharedObject,\n entityTypeId: sharedObject.typeId,\n hasStudentExp: false,\n isPasswordProtected: share.isPasswordProtected,\n linkExpireDate: share.linkExpireDate,\n privacy: {\n privacy: share.privacy,\n overrideRestrictions: share.overrideRestrictions\n },\n status: share.status,\n yearGroups: yearGroups ?? []\n });\n\n return <SharedLinkAvatar text={iconAndText?.text} />;\n }\n \n if (!recipients?.length)\n return <AnonymousSharedToAvatar />;\n\n return (\n <SharedToAvatarList\n recipients={recipients}\n imageCdnUrl={imageCdnUrl}\n maxAvatars={isMobile ? 1 : 2}\n />\n );\n },\n width: 40\n },\n !isMobile && {\n Header: index === 0 ? getPhrase('shared') : '',\n id: 'dateShared',\n accessor: s => formatDate(s.dateShared),\n width: 40\n },\n {\n accessor: 'sharedObject',\n id: 'actions',\n Cell: ({ value }) => (\n <Actions\n actions={getObjectActions(value)}\n className='w-100 justify-content-end pe-2'\n />\n ),\n width: 20\n }\n ];\n\n const statusColumn: Column<SharedByMeTableData> = {\n Header: dateHeading,\n accessor: 'share',\n id: 'status',\n Cell: ({ value }) => (\n <ShareStatusIndicator share={value} />\n ),\n width: 5\n };\n\n const viewCountColumn: Column<SharedByMeTableData> = {\n Header: getPhrase('views'),\n accessor: 'viewCount',\n width: 30\n };\n\n if (showStatus)\n columns.splice(0, 0, statusColumn);\n\n if (showViewCount)\n columns.splice(columns.length - 1, 0, viewCountColumn);\n\n return columns.filter((Boolean));\n}\n\nexport function useGetData(\n sentShares: UnionShareObject[],\n sharedObjects: Record<string, SharableEntity>,\n shareRecipients: Record<string, SharableRecipient>,\n groupByDate: boolean\n): TableDataGroupings {\n const tableData: SharedByMeTableData[] = [];\n\n sentShares.forEach(s => {\n const sharedObject = sharedObjects?.[s.objectId];\n\n let recipients: BaseObject[] | null = null;\n\n if (s.type === ShareType.DirectShare) {\n recipients = [];\n\n s.recipients?.forEach(r => {\n const recipient = shareRecipients?.[r.id];\n\n if (recipient)\n recipients.push(recipient);\n });\n }\n\n // Skip if we don't have access to the shared object (e.g. if it's been deleted)\n if (sharedObject)\n tableData.push({\n share: s,\n sharedObject,\n sharedToData: {\n share: s,\n sharedObject,\n recipients\n },\n dateShared: getDateShared(s),\n viewCount: s.viewCount ?? 0\n });\n });\n\n if (!groupByDate)\n return { [getPhrase('title')]: tableData };\n\n return ShareHelper.groupByDateShared(tableData);\n}","import React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { SHARES_TABLE_THEME } from 'libs/shared/apps/share/constants/TableTheme';\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { Table } from 'libs/shared/components/table/Table';\nimport { Breakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { BaseObject, UnionShareObject, YearGroup } from 'libs/shared/interfaces';\n\nimport { SharableEntity, SharableRecipient } from '../../../views/share/ShareViewHelper';\n\nimport { getColumns, useGetData } from './SharedByMeTableUtils';\n\ninterface SharedByMeTableProps {\n sentShares: UnionShareObject[];\n sharedObjects: Record<string, SharableEntity>;\n shareRecipients: Record<string, SharableRecipient>;\n getObjectAppLink: (object: BaseObject) => Core.AppLink;\n getObjectActions: (object: BaseObject) => ActionOptions[];\n groupByDateShared?: boolean;\n showStatus?: boolean;\n showViewCount?: boolean;\n breakpoints?: Breakpoints;\n imageCdnUrl: string;\n yearGroups?: YearGroup[];\n}\n\nexport function SharedByMeTable(props: SharedByMeTableProps): JSX.Element {\n const data = useGetData(\n props.sentShares,\n props.sharedObjects,\n props.shareRecipients,\n !!props.groupByDateShared\n );\n\n return (\n <>\n {Object.keys(data).map((heading, index) => (\n <Table\n key={index}\n columns={getColumns({\n index,\n dateHeading: heading,\n getObjectAppLink: props.getObjectAppLink,\n getObjectActions: props.getObjectActions,\n imageCdnUrl: props.imageCdnUrl,\n showStatus: props.showStatus,\n showViewCount: props.showViewCount,\n breakpoints: props.breakpoints,\n yearGroups: props.yearGroups\n })}\n data={data[heading]}\n theme={SHARES_TABLE_THEME}\n />\n ))}\n </>\n );\n}","import { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { ShareType } from 'libs/shared/enums/ShareType';\nimport { DirectShare, ShareRecipient, UnionShareObject } from 'libs/shared/interfaces';\n\nexport const ShareHelper = {\n getDirectShares(sentShares: UnionShareObject[]): DirectShare[] {\n return sentShares?.filter(s => s.type === ShareType.DirectShare) as DirectShare[] ?? [];\n },\n \n getRecipients(sentShares: UnionShareObject[]): ShareRecipient[] {\n return ArrayHelper.flatten(ShareHelper.getDirectShares(sentShares).map(d => d.recipients ?? []));\n }\n};","// extracted by mini-css-extract-plugin\nexport default {\"imageColumn\":\"uIOaA\",\"nameColumn\":\"Nta2B\",\"sharedToColumn\":\"XTJBC\",\"dateSharedColumn\":\"HdARK\",\"actionsColumn\":\"DXyZw\",\"heading\":\"XZ6o7\",\"image\":\"MolfU\",\"name\":\"MM43m\",\"avatar\":\"EboYM\",\"date\":\"by_XM\",\"actions\":\"_S2M_\"};","import React from 'react';\n\nimport styles from './partial-shared-by-me-table.scss';\n\nfunction PartialRow(): JSX.Element {\n return (\n <div className={`d-flex striped-row rounded`}>\n <div className={`d-flex align-items-center justify-content-center p-2 ${styles.imageColumn}`}>\n <div className={`partial-loading-background rounded w-100 ${styles.image}`} />\n </div>\n <div className={`d-flex align-items-center p-2 ${styles.nameColumn}`}>\n <div className={`partial-loading-background w-75 ${styles.name}`} />\n </div>\n <div className={`d-flex align-items-center p-2 ${styles.sharedToColumn}`}>\n <div className={`partial-loading-background ${styles.avatar}`} />\n </div>\n <div className={`d-none d-md-flex align-items-center p-2 ${styles.dateSharedColumn}`}>\n <div className={`partial-loading-background ${styles.date}`} />\n </div>\n <div className={`d-flex align-items-center justify-content-end p-2 ${styles.actionsColumn}`}>\n <div className={`partial-loading-background rounded me-2 ${styles.actions}`} />\n </div>\n </div>\n );\n}\n\ninterface PartialHeaderProps {\n fullHeader?: boolean;\n}\n\nfunction PartialHeader(props: PartialHeaderProps): JSX.Element {\n return (\n <div className='d-flex mb-1'>\n <div className={`${styles.imageColumn} p-2`}>\n <div className={`partial-loading-background ${styles.heading}`} />\n </div>\n <div className={`${styles.nameColumn} p-2`}>\n \n </div>\n <div className={`${styles.sharedToColumn} p-2`}>\n {props.fullHeader\n ? <div className={`partial-loading-background ${styles.heading}`} />\n : <> </>\n }\n </div>\n <div className={`${styles.dateSharedColumn} p-2 d-none d-md-flex`}>\n {props.fullHeader\n ? <div className={`partial-loading-background ${styles.heading}`} />\n : <> </>\n }\n </div>\n <div className={`${styles.actionsColumn} p-2`}>\n \n </div>\n </div>\n );\n}\n\nexport function PartialSharedByMeTable(): JSX.Element {\n return (\n <>\n <div className='mb-3'>\n <PartialHeader fullHeader />\n\n <div className='striped-list no-full-width'>\n <PartialRow />\n <PartialRow />\n <PartialRow />\n </div>\n </div>\n\n <div className='mb-3'>\n <PartialHeader />\n\n <div className='striped-list no-full-width'>\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n </div>\n </div>\n\n <div className='mb-3'>\n <PartialHeader />\n\n <div className='striped-list no-full-width'>\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n </div>\n </div>\n </>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/react/index';\n\nimport { SharableEntityType } from 'libs/shared/apps/share/views/share/ShareViewHelper';\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { Breakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { BaseObject, Config } from 'libs/shared/interfaces';\nimport { AnalyticsRouteHelper } from 'libs/shared/utils/AnalyticsRouteHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nconst namespace = 'liteShare.sharedByMe';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction getShareActionOptions(sharedObject: BaseObject, entityType: SharableEntityType): ActionOptions {\n return {\n label: getPhrase('editShareSettings'),\n appLink: {\n application: AppChannels.SHARE,\n action: Actions.Share.SHARE,\n args: [sharedObject.id],\n params: { entityType }\n }\n };\n}\n\ninterface SeeUsageActionProps {\n label: string;\n url?: string;\n}\n\nfunction SeeUsageAction(props: SeeUsageActionProps): JSX.Element {\n return (\n <Tooltip title={props.label} spanHack>\n <a\n href={props.url}\n target='_blank'\n >\n <SvgContainer svgName={cvSvgLibrary.Analytics} />\n </a>\n </Tooltip>\n );\n}\n\nfunction getSharedObjectActions(\n sharedObject: BaseObject,\n isMobile: boolean,\n config: Config\n): ActionOptions[] {\n let entityType: SharableEntityType;\n let analyticsPhrase = 'viewUsage';\n\n if (VideoHelper.isVideo(sharedObject))\n entityType = 'video';\n\n if (VideoHelper.isInteractive(sharedObject)) {\n entityType = 'interactive';\n analyticsPhrase = 'viewResults';\n }\n\n if (VideoHelper.isClip(sharedObject))\n entityType = 'clip';\n\n if (sharedObject.typeId === MasterType.Series)\n entityType = 'series';\n\n if (sharedObject.typeId === MasterType.Playlist)\n entityType = 'playlist';\n\n if (VideoHelper.isVideoType(sharedObject)) {\n const { canConsume } = VideoHelper.getCanBeConsumed(sharedObject);\n\n if (!canConsume)\n return [];\n }\n\n const sharedObjectActions = [getShareActionOptions(sharedObject, entityType)];\n\n const objectUrl = AnalyticsRouteHelper.getObjectUrl(config, sharedObject);\n if (objectUrl) {\n sharedObjectActions.push({\n label: !isMobile\n ? () => <SeeUsageAction label={getPhrase(analyticsPhrase)} url={objectUrl} />\n : getPhrase(analyticsPhrase),\n\n className: 'btn btn-link',\n button: !isMobile,\n href: AnalyticsRouteHelper.getObjectUrl(config, sharedObject),\n openInNewTab: true\n });\n }\n\n return sharedObjectActions;\n}\n\nexport function useGetSharedObjectActions(breakpoints: Breakpoints): ((object: BaseObject) => ActionOptions[]) | null {\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n const isMobile = breakpoints.xs || breakpoints.sm;\n\n return React.useCallback((object: BaseObject) =>\n getSharedObjectActions(object, isMobile, config.data), [isMobile]);\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { SharedByMeEmptyState } from 'libs/shared/apps/share/components/shared-by-me/empty-state/SharedByMeEmptyState';\nimport { SharedByMeTable } from 'libs/shared/apps/share/components/shared-by-me/table/SharedByMeTable';\nimport { InfiniteScrollFooter } from 'libs/shared/components/infinite-scroll-footer/InfiniteScrollFooter';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { useSharedByMeTable } from 'shared/hooks/useSharedByMeTable';\nimport { getObjectAppLink } from 'shared/utils/ObjectAppLinkHelper';\n\nimport { SharesHeader } from 'apps/share/components/shares-header/SharesHeader';\n\nimport { PartialSharedByMeTable } from './partial-loading/PartialSharedByMeTable';\nimport {\n useGetSharedObjectActions\n} from './SharedByMeViewUtils';\n\nconst namespace = 'liteShare.sharedByMe';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function SharedByMeView(): JSX.Element {\n const { hasPermissions } = usePermissions();\n const { hasShareFlowV2 } = useSettings(null);\n\n const breakpoints = useBreakpoints();\n\n const {\n sentShares,\n sharedObjects,\n shareRecipients,\n isFetching,\n showPartialLoading,\n nextCursor,\n hasMore,\n fetchNext,\n imageCdnUrl,\n yearGroups\n } = useSharedByMeTable();\n\n const hasMyShares = hasPermissions(PermissionName.ViewMyShares) && hasShareFlowV2;\n\n React.useEffect(() => {\n if (hasMyShares)\n Core.AppLinkHelper.trigger({\n application: AppChannels.MY_SHARES,\n action: Actions.MyShares.HOME\n }, { replace: true });\n }, [hasMyShares]);\n\n useSetPageMetadata({ title: getPhrase('sharedByMe') });\n\n const getSharedObjectActions = useGetSharedObjectActions(breakpoints);\n\n return (\n <div className='px-3'>\n {!hasMyShares && <SharesHeader />}\n\n {(() => {\n if (showPartialLoading)\n return <PartialSharedByMeTable />;\n\n if (!sentShares.length)\n return (\n <SharedByMeEmptyState\n appLink={{ application: AppChannels.DASHBOARD, action: Actions.Dashboard.HOME }}\n imageUrl={ImageUrls.EmptyStates.Share.SHARED_WITH_ME}\n />\n );\n\n return (\n <>\n <SharedByMeTable\n sentShares={sentShares}\n sharedObjects={sharedObjects.items}\n shareRecipients={shareRecipients.items}\n getObjectAppLink={getObjectAppLink}\n getObjectActions={getSharedObjectActions}\n groupByDateShared\n breakpoints={breakpoints}\n yearGroups={yearGroups}\n imageCdnUrl={imageCdnUrl}\n />\n {(hasMore || isFetching) &&\n <InfiniteScrollFooter isFetching={isFetching} fetchNext={fetchNext} nextCursor={nextCursor} />\n }\n </>\n );\n })()}\n </div>\n );\n}","import { Flight } from 'libs/common/react/index';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { InteractiveResultsRequests } from 'libs/shared/apps/analytics/flight-requests/InteractiveResultsRequests';\nimport { ShareRequests } from 'libs/shared/apps/share/flight-requests/ShareRequests';\nimport { GetSentItemsParams } from 'libs/shared/apps/share/interfaces/requests/GetSentItemsParams';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { UseBatchFetchResult, useGrowingBatchFetch } from 'libs/shared/hooks/UseBatchFetch';\nimport { useInfiniteList } from 'libs/shared/hooks/UseInfiniteList';\nimport { BaseObject, Config, CurrentUser, UnionShareObject, YearGroup } from 'libs/shared/interfaces';\nimport { ShareHelper } from 'libs/shared/utils/ShareHelper';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\n\nexport function getBatchFetchResultAsArray(result: UseBatchFetchResult<BaseObject>): BaseObject[] {\n return result.items ? Object.values(result.items) : [];\n}\n\nexport function useSharedByMeTable(\n params?: GetSentItemsParams,\n interactiveInsights?: boolean,\n shouldFetch: boolean = true\n) {\n const fetch = Flight.useGetFetch();\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const yearGroups = Flight.useBasicFetch<YearGroup[]>(\n currentUser.data?.isAuthenticated && CustomerRequests.yearGroups(currentUser.data.customerId)\n );\n\n /**\n * Fetch sent shares\n */\n const getRequest = (cursor?: string) => shouldFetch && ShareRequests.sentShare({\n cursor,\n ...params\n });\n const fetchNext = (cursor?: string) => fetch(getRequest(cursor));\n const {\n items: sentShares,\n hasMore,\n isFetching: isFetchingSentShares,\n nextCursor,\n hasFirstPageCompleted\n } = useInfiniteList<UnionShareObject>(getRequest, fetchNext);\n\n /**\n * Fetch shared objects\n */\n const sharedObjects = useGrowingBatchFetch(\n sentShares?.map(obj => obj.objectId),\n ShareRequests.sharedObjectsById\n );\n\n /**\n * Fetch recipients\n */\n const shareRecipients = useGrowingBatchFetch(\n ShareHelper.getRecipients(sentShares).map(obj => obj.id),\n objs => (ShareRequests.getRecipientsById(objs, currentUser.data.customerId))\n );\n \n\n /**\n * Fetch which interactives required marking\n */\n const interactivesPendingReview = useGrowingBatchFetch(\n interactiveInsights ? ObjectHelper.values(sharedObjects.items || []) : [],\n objs => InteractiveResultsRequests.pendingReviews({\n interactives: objs\n .filter(VideoHelper.isInteractive)\n .map(obj => ({ interactiveId: obj.interactiveId, metadataId: obj.id })),\n filters: {\n currentCustomerId: currentUser.data.customerId,\n currentUserId: currentUser.data.id\n }\n }),\n obj => `${obj.id}:${obj.interactiveId}`\n );\n \n const isFetching = isFetchingSentShares\n || sharedObjects.isFetching\n || shareRecipients.isFetching\n || interactivesPendingReview.isFetching\n || yearGroups.isFetching;\n\n const showPartialLoading = !hasFirstPageCompleted || (sentShares?.length && !sharedObjects.hasFirstRequestCompleted);\n\n return {\n sentShares,\n sharedObjects,\n shareRecipients,\n yearGroups: yearGroups.data,\n interactivesPendingReview,\n isFetching,\n showPartialLoading,\n nextCursor,\n hasMore,\n fetchNext,\n imageCdnUrl: config.data?.imageCdnUrl\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 const actions: Record<ShareType, string> = {\n [ShareType.Classroom]: Actions.Share.DELETE_ASSIGNMENT,\n [ShareType.Open]: Actions.Share.DELETE_OPEN_CLASSROOM,\n [ShareType.Link]: '',\n [ShareType.Live]: ''\n };\n\n const previousActions: Record<ShareType, string> = {\n [ShareType.Classroom]: Actions.Classrooms.CLASSROOM_HOME,\n [ShareType.Open]: Actions.Classrooms.OPEN_CLASSROOMS,\n [ShareType.Link]: '',\n [ShareType.Live]: ''\n };\n \n const action = actions[share.type];\n const previousAction = previousActions[share.type];\n\n if (!action || !previousAction) return;\n \n return {\n application: AppChannels.SHARE,\n action: action,\n args: [share.shareId],\n params: {\n previousAppLink: {\n application: AppChannels.CLASSROOMS,\n action: previousAction,\n args: [ShareHelper.getClassroomIdFromShare(share)]\n } as Core.AppLink\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":["getAnalyticsRequestKey","baseKey","filter","extra","key","start","end","userIdKey","Array","isArray","userId","sort","join","groupIdKey","groupId","customerIdKey","customerId","getInteractiveResultFilters","currentUser","currentUserId","id","currentCustomerId","dateRange","undefined","userIds","classroomsAndGroups","InteractiveResultsRequests","interactiveResultSet","interactiveId","interactiveMetadataId","includePublicResults","success","error","always","url","data","type","HttpVerbs","normalize","mark","answerId","resultId","invalidationKeys","pendingReviews","interactiveResultsReport","ShareType","ShareHelper","getFlattenedRecipients","shares","map","s","recipients","getFlattenedUniqueScopes","r","scopeId","toString","x","getClassroomIdFromShare","share","firstRecipient","recipientId","recipientTypeId","getClassroomForShare","classrooms","classroomId","find","classroom","getRecipientsCount","length","hasShareExpired","expireDate","now","Date","calculateDaysToExpiry","remainingDays","getShareLocalExpiry","format","localDate","getPhrase","LanguageService","getHiddenRecipientText","hiddenRecipients","counts","ArrayHelper","userCount","MasterType","classroomCount","groupCount","SharedToAvatar","props","user","item","typeId","classroomGroup","svgContainerClassName","Tooltip","title","name","surname","spanHack","spanHackClassName","Avatar","imageUrl","avatar","imageCdnUrl","initials","UserHelper","extraClasses","className","IconCircle","svgName","svgSize","SvgContainer","S","variant","metadata","colour","AnonymousSharedToAvatar","avatarSize","size","SharedLinkAvatar","text","SharedToAvatarList","AvatarList","items","avatarItem","avatarContainerClassname","getHiddenTooltip","hasShareLink","shareLinkText","defaultProps","maxAvatars","ShareLinkHelper","getPrivateIconAndText","options","entityTypeId","privacy","hasStudentExp","entity","yearGroups","icon","overrideRestrictions","getRespectRatingText","getIconAndText","linkExpireDate","isPasswordProtected","status","isToday","dayDifference","days","video","restriction","_restrictions","value","yearGroup","maxYearGroup","minAllowedYearGroup","rating","itemsToDisplay","slice","hiddenItems","AvatarItem","hiddenItemsCounts","translateX","getAvatarStyles","idx","transform","zIndex","style","marginRight","index","roleToDisplay","count","smartCount","numberClassname","CHUNK_SIZE","useBatchFetch","itemIds","getRequest","requests","chunk","responses","itemsArr","reduce","acc","isFetching","hasCompleted","useGrowingBatchFetch","objs","_getKey","getKey","obj","useGrowingBatchFetchFunc","fetchItems","fetchedItems","Set","setRequests","hasFirstRequestCompleted","unfetchedItems","forEach","current","has","push","add","mapColourToBsVariant","groupColour","SharedByMeEmptyState","EmptyState","src","useInteractiveCopy","appLink","getStatusPhrase","ShareLinkStatus","getBgColourClassName","ShareStatusIndicator","getDateShared","dateCreated","datesShared","dateShared","date1","date2","DateHelper","getColumns","dateHeading","getObjectAppLink","getObjectActions","showStatus","showViewCount","breakpoints","isMobile","xs","sm","columns","Header","accessor","Cell","SharedObjectImage","object","showVideoMetadata","locationContext","minWidth","maxWidth","VideoHelper","canNavigate","subTextPhrase","getSubTextPhrase","TitleSubText","Text","namespace","phrase","VideoSubText","series","analyticsOptions","location","AppLink","analyticsData","ShareViewHelper","actionType","width","sharedObject","iconAndText","Actions","actions","statusColumn","viewCountColumn","splice","Boolean","SharedByMeTable","sentShares","sharedObjects","shareRecipients","groupByDate","tableData","groupByDateShared","objectId","recipient","sharedToData","viewCount","Object","keys","heading","Table","theme","getDirectShares","getRecipients","d","PartialRow","PartialHeader","fullHeader","PartialSharedByMeTable","getShareActionOptions","entityType","label","application","action","args","params","SeeUsageAction","href","target","SharedByMeView","hasPermissions","usePermissions","hasShareFlowV2","useSettings","useBreakpoints","interactiveInsights","shouldFetch","fetch","UserRequests","config","ConfigRequests","isAuthenticated","CustomerRequests","cursor","ShareRequests","fetchNext","hasMore","isFetchingSentShares","nextCursor","hasFirstPageCompleted","interactivesPendingReview","ObjectHelper","I","interactives","metadataId","filters","showPartialLoading","useSharedByMeTable","hasMyShares","PermissionName","replace","useSetPageMetadata","getSharedObjectActions","analyticsPhrase","canConsume","sharedObjectActions","objectUrl","AnalyticsRouteHelper","button","openInNewTab","useGetSharedObjectActions","SharesHeader","InfiniteScrollFooter","ImageUrls","INSIGHTS_WHITELIST","getInsightsOverviewAppLink","includes","objectTypeId","shareId","getInsightsHeatmapAppLink","getInsightsQuestionsAppLink","getInsightsStudentsAppLink","getShareOptionsAppLink","getSharableEntityType","detailsTitle","getDeleteShareAppLink","previousAppLink","previousActions","previousAction"],"sourceRoot":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scripts/9134-19912ca3ee-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/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/hooks/useShareLinkData.ts","file:///app/packages/libs/shared/src/apps/share-v2/utils/ShareLinkHelper.ts","file:///app/packages/libs/shared/src/apps/share-v2/utils/ShareViewHelper.tsx","file:///app/packages/libs/shared/src/apps/share-v2/utils/get-share-event-logger/getShareEventLogger.ts","file:///app/packages/libs/shared/src/utils/get-event-logger/getEventLogger.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}","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 { Flight } from 'libs/common/react/index';\n\nimport { ShareRequests } from 'libs/shared/apps/share-v2/flight-requests/ShareRequests';\nimport type { SharePrivacyResponse } from 'libs/shared/apps/share-v2/interfaces/SharePrivacyResponse';\nimport { SharableEntityType, ShareViewHelper } from 'libs/shared/apps/share-v2/utils/ShareViewHelper';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport type { Config, CurrentUser } from 'libs/shared/interfaces';\n\nimport { Share } from '../interfaces/Share';\n\ninterface UseShareLinkDataOptions {\n entityId: string;\n entityType: SharableEntityType;\n}\n\nexport function useShareLinkData(options: UseShareLinkDataOptions) {\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const entity = ShareViewHelper.getFetchFunctionByType(options.entityType)(options.entityId, currentUser.data?.id);\n const privacy = Flight.useBasicFetch<SharePrivacyResponse>(ShareRequests.getPrivacy(options.entityId));\n const share = Flight.useBasicFetch<Share>(ShareRequests.getShareLink(options.entityId));\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n \n const dataLoaded = !!entity.data\n && !!currentUser.data\n && !!privacy.data\n && !!share.data\n && !!config.data;\n\n return {\n dataLoaded,\n currentUser: currentUser,\n entity: entity,\n privacy: privacy,\n share: share,\n config: config\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\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 { 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 { AnalyticsOptions, EntityType, ShareDescriptors, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { EventLogConfig, getEventLogger } from 'libs/shared/utils/get-event-logger/getEventLogger';\n\nimport { BaseShareData, ShareLogData } from './interfaces/GetShareEventLogger';\n\ninterface ShareEventLoggerOptions {\n data: BaseShareData;\n analyticsOptions: AnalyticsOptions;\n shouldLog?: boolean;\n}\n\nexport type ShareLogFn = ReturnType<typeof getShareEventLogger>['log'];\n\nfunction isValidShare(data: ShareLogData): boolean {\n if (!('share' in data))\n return false;\n\n return !!data.share;\n}\n\nconst LogDataConfig: EventLogConfig<ShareLogData> = {\n /**\n * Share - Link\n */\n 'create-share-link': {\n isValid: isValidShare,\n analyticsOptions: {\n actionType: UserAction.Create,\n workflowPhase: WorkflowPhase.Complete,\n entity: EntityType.ShareLink\n }\n },\n 'update-share-link': {\n isValid: isValidShare,\n analyticsOptions: {\n actionType: UserAction.Edit,\n entity: EntityType.ShareLink,\n workflowPhase: WorkflowPhase.Complete\n }\n },\n 'delete-share-link': {\n isValid: isValidShare,\n analyticsOptions: {\n actionType: UserAction.Delete,\n entity: EntityType.ShareLink,\n workflowPhase: WorkflowPhase.Complete\n }\n },\n\n 'plugin-share-embed': {\n isValid: isValidShare,\n analyticsOptions: {\n actionType: UserAction.Share,\n descriptor: ShareDescriptors.PluginEmbed,\n workflowPhase: WorkflowPhase.Complete,\n entity: EntityType.ShareLink\n }\n },\n\n /**\n * General\n */\n 'copy-embed-html': {\n isValid: () => true,\n analyticsOptions: {\n actionType: UserAction.Share,\n workflowPhase: WorkflowPhase.Complete,\n entity: EntityType.ShareLink, // default\n descriptor: ShareDescriptors.CopyEmbedHtml\n }\n },\n 'copy-share-link': {\n isValid: isValidShare,\n analyticsOptions: {\n actionType: UserAction.Share,\n workflowPhase: WorkflowPhase.Complete,\n entity: EntityType.ShareLink, // default\n descriptor: ShareDescriptors.CopyLink\n }\n }\n};\n\nexport function getShareEventLogger(options: ShareEventLoggerOptions) {\n const { log, getData } = getEventLogger({\n analyticsOptions: options.analyticsOptions,\n baseData: options.data,\n config: LogDataConfig,\n shouldLog: options.shouldLog ?? true\n });\n\n return {\n log,\n getData\n };\n}","import { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AnalyticsOptions, HashObject } from 'libs/analytics/interfaces';\n\n/**\n * Base type that every event needs to extend from\n */\nexport interface BaseEventLogData<T extends string = string> {\n type: T;\n}\n\n/**\n * Utility type to map event types to config types\n */\nexport type EventLogConfig<TEvents extends BaseEventLogData> = {\n [K in TEvents['type']]: BaseConfigData<Extract<TEvents, { type: K }>>;\n};\n\ninterface BaseConfigData<T extends BaseEventLogData> {\n isValid?: (data: T) => boolean;\n analyticsOptions: AnalyticsOptions;\n}\n\ninterface GetEventLoggerOptions<TData extends HashObject, TEvents extends BaseEventLogData> {\n baseData: TData;\n /**\n * Event type config map\n */\n config: EventLogConfig<TEvents>;\n /**\n * Base analytics options\n */\n analyticsOptions: AnalyticsOptions;\n\n shouldLog?: boolean;\n}\n\n/**\n * Method build and log events which are typed using map\n * passed in from config\n */\nexport function getEventLogger<\n TData extends HashObject = HashObject,\n TEvents extends BaseEventLogData = BaseEventLogData\n>(\n options: GetEventLoggerOptions<TData, TEvents>\n) {\n /**\n * Types to assist hinting in our log / getData methods\n */\n type EventType = TEvents['type']; // type of event\n type EventData = Extract<TEvents, { type: EventType }>; // restrict the data to the passed type\n \n /**\n * Get analytics data and options for a given event type\n */\n function getData(\n data: EventData,\n logAnalyticsOptions?: AnalyticsOptions\n ) {\n const logDataConfig = options.config[data.type];\n\n if (!logDataConfig?.isValid(data))\n return;\n\n const mergedData = {\n ...options.baseData,\n ...data\n };\n \n const sanitizedData = ObjectHelper.omit<typeof data>(mergedData, ['type']);\n\n const analyticsOptions = AnalyticsHelper.mergeOptions(\n logDataConfig.analyticsOptions,\n [\n options.analyticsOptions,\n logAnalyticsOptions\n ]\n );\n\n return {\n data: sanitizedData,\n analyticsOptions\n };\n }\n\n /**\n * Similar to `getData` except it logs the analytics event\n * for a given type if its valid\n */\n function log(\n data: EventData,\n logAnalyticsOptions?: AnalyticsOptions\n ) {\n if (!options.shouldLog)\n return;\n\n const analytics = getData(data, logAnalyticsOptions);\n\n if (!analytics)\n return;\n\n AnalyticsHelper.logUserAction(analytics.data, analytics.analyticsOptions);\n }\n\n return {\n getData,\n log\n };\n}"],"names":["SharePrivacy","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","useShareLinkActions","options","fetchAsync","entityPrivacy","entityId","loaded","updateShareLink","privacy","requestPrivacy","deleteShareLink","useShareLinkData","currentUser","entity","entityType","share","config","dataLoaded","getPhrase","ShareLinkHelper","getPrivateIconAndText","entityTypeId","hasStudentExp","yearGroups","icon","text","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","ShareViewHelper","canEmbed","includes","canAddPolicies","getEnabledIntegrations","googleClassroomSetting","msftTeamsSetting","filter","i","enabled","map","getShareSettingsInitialValues","interactive","preventScrubbing","immediateFeedback","getEnabledSettingsField","showImmediateFeedbackField","showPreventScrubbingField","getFetchFunctionByType","getAnalyticsEntity","getAnalyticsOptions","isValidShare","LogDataConfig","isValid","analyticsOptions","actionType","workflowPhase","descriptor","getShareEventLogger","baseData","shouldLog","log","getData","getEventLogger","logAnalyticsOptions","logDataConfig","mergedData","analytics"],"sourceRoot":""}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
/*! For license information please see 9528-2b478f4ca8-lite.chunk.js.LICENSE.txt */
|
|
2
|
-
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[9528],{54841:(t,e,r)=>{r.r(e),r.d(e,{AutomaticAccessView:()=>_});var n=r(32735),o=r(23481),i=r(20354),a=r(79095),c=r(61807),u=r(83345),s=r(24833),l=r(23371),f=r(16714),h=r(31949),p=r(69883),y=r(79612),v=r(93802),d=r(81803),m=r(68598),g=r(71966),w=r(96268);function b(t){return b="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},b(t)}function x(){x=function(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(t,e,r){t[e]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",c=i.asyncIterator||"@@asyncIterator",u=i.toStringTag||"@@toStringTag";function s(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{s({},"")}catch(t){s=function(t,e,r){return t[e]=r}}function l(t,e,r,n){var i=e&&e.prototype instanceof m?e:m,a=Object.create(i.prototype),c=new G(n||[]);return o(a,"_invoke",{value:k(t,r,c)}),a}function f(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}e.wrap=l;var h="suspendedStart",p="suspendedYield",y="executing",v="completed",d={};function m(){}function g(){}function w(){}var L={};s(L,a,(function(){return this}));var E=Object.getPrototypeOf,S=E&&E(E(I([])));S&&S!==r&&n.call(S,a)&&(L=S);var O=w.prototype=m.prototype=Object.create(L);function _(t){["next","throw","return"].forEach((function(e){s(t,e,(function(t){return this._invoke(e,t)}))}))}function j(t,e){function r(o,i,a,c){var u=f(t[o],t,i);if("throw"!==u.type){var s=u.arg,l=s.value;return l&&"object"==b(l)&&n.call(l,"__await")?e.resolve(l.__await).then((function(t){r("next",t,a,c)}),(function(t){r("throw",t,a,c)})):e.resolve(l).then((function(t){s.value=t,a(s)}),(function(t){return r("throw",t,a,c)}))}c(u.arg)}var i;o(this,"_invoke",{value:function(t,n){function o(){return new e((function(e,o){r(t,n,e,o)}))}return i=i?i.then(o,o):o()}})}function k(e,r,n){var o=h;return function(i,a){if(o===y)throw Error("Generator is already running");if(o===v){if("throw"===i)throw a;return{value:t,done:!0}}for(n.method=i,n.arg=a;;){var c=n.delegate;if(c){var u=A(c,n);if(u){if(u===d)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===h)throw o=v,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=y;var s=f(e,r,n);if("normal"===s.type){if(o=n.done?v:p,s.arg===d)continue;return{value:s.arg,done:n.done}}"throw"===s.type&&(o=v,n.method="throw",n.arg=s.arg)}}}function A(e,r){var n=r.method,o=e.iterator[n];if(o===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,A(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),d;var i=f(o,e.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,d;var a=i.arg;return a?a.done?(r[e.resultName]=a.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,d):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,d)}function N(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function F(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function G(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(N,this),this.reset(!0)}function I(e){if(e||""===e){var r=e[a];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,i=function r(){for(;++o<e.length;)if(n.call(e,o))return r.value=e[o],r.done=!1,r;return r.value=t,r.done=!0,r};return i.next=i}}throw new TypeError(b(e)+" is not iterable")}return g.prototype=w,o(O,"constructor",{value:w,configurable:!0}),o(w,"constructor",{value:g,configurable:!0}),g.displayName=s(w,u,"GeneratorFunction"),e.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===g||"GeneratorFunction"===(e.displayName||e.name))},e.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,w):(t.__proto__=w,s(t,u,"GeneratorFunction")),t.prototype=Object.create(O),t},e.awrap=function(t){return{__await:t}},_(j.prototype),s(j.prototype,c,(function(){return this})),e.AsyncIterator=j,e.async=function(t,r,n,o,i){void 0===i&&(i=Promise);var a=new j(l(t,r,n,o),i);return e.isGeneratorFunction(r)?a:a.next().then((function(t){return t.done?t.value:a.next()}))},_(O),s(O,u,"Generator"),s(O,a,(function(){return this})),s(O,"toString",(function(){return"[object Generator]"})),e.keys=function(t){var e=Object(t),r=[];for(var n in e)r.push(n);return r.reverse(),function t(){for(;r.length;){var n=r.pop();if(n in e)return t.value=n,t.done=!1,t}return t.done=!0,t}},e.values=I,G.prototype={constructor:G,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(F),!e)for(var r in this)"t"===r.charAt(0)&&n.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=t)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var r=this;function o(n,o){return c.type="throw",c.arg=e,r.next=n,o&&(r.method="next",r.arg=t),!!o}for(var i=this.tryEntries.length-1;i>=0;--i){var a=this.tryEntries[i],c=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var u=n.call(a,"catchLoc"),s=n.call(a,"finallyLoc");if(u&&s){if(this.prev<a.catchLoc)return o(a.catchLoc,!0);if(this.prev<a.finallyLoc)return o(a.finallyLoc)}else if(u){if(this.prev<a.catchLoc)return o(a.catchLoc,!0)}else{if(!s)throw Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return o(a.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===t||"continue"===t)&&i.tryLoc<=e&&e<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=t,a.arg=e,i?(this.method="next",this.next=i.finallyLoc,d):this.complete(a)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),d},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),F(r),d}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;F(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:I(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),d}},e}function L(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}var E=function(t,e,r,n){return new(r||(r=Promise))((function(o,i){function a(t){try{u(n.next(t))}catch(t){i(t)}}function c(t){try{u(n.throw(t))}catch(t){i(t)}}function u(t){var e;t.done?o(t.value):(e=t.value,e instanceof r?e:new r((function(t){t(e)}))).then(a,c)}u((n=n.apply(t,e||[])).next())}))},S="settings.automaticAccess",O=o.T.encloseNamespace(S);function _(){(0,w.W)(),(0,y.M)({title:O("pageTitle")});var t,e,r=i.a.useBasicFetch(h.N.currentUser()),o=r.data.customerId,b=i.a.useBasicFetch(r.data.customerId&&g.B.domains(o)),_=i.a.useGetFetchAsync(),j=(0,p.Z)(),k=(t=n.useState([]),e=2,function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,i,a,c=[],u=!0,s=!1;try{if(i=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=i.call(r)).done)&&(c.push(n.value),c.length!==e);u=!0);}catch(t){s=!0,o=t}finally{try{if(!u&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(s)throw o}}return c}}(t,e)||function(t,e){if(t){if("string"==typeof t)return L(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?L(t,e):void 0}}(t,e)||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.")}()),A=k[0],N=k[1];return b.hasCompleted?n.createElement(d.d,{heading:O("heading"),breadcrumbs:[O("breadcrumb")],requiredPermissions:f.C.ManageUsers},n.createElement(c.L,{active:"automatic-access",appLinks:m.W}),n.createElement("p",null,n.createElement(u.x,{namespace:S,phrase:"description"})),n.createElement(a.j,{initialValues:v.y.getInitialAccessBehaviour(b.data),onSaveChanges:function(t,e){var r;return E(this,void 0,void 0,x().mark((function n(){var i;return x().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return i=v.y.formatRequestData(b.data,t,l.W.AutoJoin),n.prev=1,n.next=4,_(g.B.updateDomains(o,i));case 4:j.success(O("success")),n.next=11;break;case 7:n.prev=7,n.t0=n.catch(1),(null===(r=n.t0.responseJSON)||void 0===r?void 0:r.problems)&&N(n.t0.responseJSON.problems),j.error(O("error"));case 11:return n.prev=11,e(),n.finish(11);case 14:case"end":return n.stop()}}),n,null,[[1,7,11,14]])})))},view:s.C.AutomaticAccess,options:["none","allowed"],errors:A,appLinks:m.W})):n.createElement(n.Fragment,null)}}}]);
|
|
3
|
-
//# sourceMappingURL=9528-2b478f4ca8-lite.chunk.js.map
|