@clickview/lite 0.57.2-rc.0 → 0.57.2-rc.2
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 +2 -2
- package/dist/css/{3918-lite-9bd35b2c4c.chunk.css → 3918-lite-88ef54ffc6.chunk.css} +3 -1
- package/dist/css/{1057-lite-04173a371f.chunk.css → 8849-lite-1ad0b22428.chunk.css} +2 -1
- package/dist/css/{lite-app-5335e8e07a.css → lite-app-560655620c.css} +1 -1
- package/dist/languages/en.json +1 -1
- package/dist/scripts/1734-f5ffd39591-lite.chunk.js +2 -0
- package/dist/scripts/1734-f5ffd39591-lite.chunk.js.map +1 -0
- package/dist/scripts/2506-aee0b1f275-lite.chunk.js +2 -0
- package/dist/scripts/2506-aee0b1f275-lite.chunk.js.map +1 -0
- package/dist/scripts/{2564-cd82320188-lite.chunk.js → 2564-98ba0d782a-lite.chunk.js} +3 -3
- package/dist/scripts/{2564-cd82320188-lite.chunk.js.map → 2564-98ba0d782a-lite.chunk.js.map} +1 -1
- package/dist/scripts/2615-e9b2938c18-lite.chunk.js +3 -0
- package/dist/scripts/2615-e9b2938c18-lite.chunk.js.map +1 -0
- package/dist/scripts/2788-86687fd69d-lite.chunk.js +2 -0
- package/dist/scripts/2788-86687fd69d-lite.chunk.js.map +1 -0
- package/dist/scripts/2820-b3d1688da0-lite.chunk.js +2 -0
- package/dist/scripts/2820-b3d1688da0-lite.chunk.js.map +1 -0
- package/dist/scripts/2978-b7bcc3eac4-lite.chunk.js +2 -0
- package/dist/scripts/2978-b7bcc3eac4-lite.chunk.js.map +1 -0
- package/dist/scripts/3391-5e26ca5ece-lite.chunk.js +2 -0
- package/dist/scripts/3391-5e26ca5ece-lite.chunk.js.map +1 -0
- package/dist/scripts/{3667-f9f546136c-lite.chunk.js → 3667-149e98454c-lite.chunk.js} +3 -3
- package/dist/scripts/{3667-f9f546136c-lite.chunk.js.map → 3667-149e98454c-lite.chunk.js.map} +1 -1
- package/dist/scripts/3918-43b95cb315-lite.chunk.js +2 -0
- package/dist/scripts/3918-43b95cb315-lite.chunk.js.map +1 -0
- package/dist/scripts/4113-d6411052c4-lite.chunk.js +2 -0
- package/dist/scripts/4113-d6411052c4-lite.chunk.js.map +1 -0
- package/dist/scripts/4137-bef0be4a57-lite.chunk.js +3 -0
- package/dist/scripts/4137-bef0be4a57-lite.chunk.js.map +1 -0
- package/dist/scripts/4266-42463e0c33-lite.chunk.js +3 -0
- package/dist/scripts/4266-42463e0c33-lite.chunk.js.map +1 -0
- package/dist/scripts/5817-84b8e83c19-lite.chunk.js +3 -0
- package/dist/scripts/5817-84b8e83c19-lite.chunk.js.map +1 -0
- package/dist/scripts/{6433-ff27a3c867-lite.chunk.js → 6433-ad3992c23a-lite.chunk.js} +2 -2
- package/dist/scripts/{6433-ff27a3c867-lite.chunk.js.map → 6433-ad3992c23a-lite.chunk.js.map} +1 -1
- package/dist/scripts/7434-34137ad94a-lite.chunk.js +2 -0
- package/dist/scripts/7434-34137ad94a-lite.chunk.js.map +1 -0
- package/dist/scripts/{7556-79099a07fc-lite.chunk.js → 7556-69f8cb3b20-lite.chunk.js} +3 -3
- package/dist/scripts/7556-69f8cb3b20-lite.chunk.js.map +1 -0
- package/dist/scripts/{8095-777a5c5ddf-lite.chunk.js → 8095-afb976fac0-lite.chunk.js} +2 -2
- package/dist/scripts/8095-afb976fac0-lite.chunk.js.map +1 -0
- package/dist/scripts/839-f8478d27f8-lite.chunk.js +2 -0
- package/dist/scripts/839-f8478d27f8-lite.chunk.js.map +1 -0
- package/dist/scripts/8489-7779fd40b3-lite.chunk.js +3 -0
- package/dist/scripts/8489-7779fd40b3-lite.chunk.js.map +1 -0
- package/dist/scripts/8849-020bfd8cdd-lite.chunk.js +2 -0
- package/dist/scripts/8849-020bfd8cdd-lite.chunk.js.map +1 -0
- package/dist/scripts/bundle-fb8200eefd.min.js +3 -0
- package/dist/scripts/bundle-fb8200eefd.min.js.map +1 -0
- package/package.json +1 -1
- package/dist/scripts/1057-3c48d4553a-lite.chunk.js +0 -2
- package/dist/scripts/1057-3c48d4553a-lite.chunk.js.map +0 -1
- package/dist/scripts/1683-57c0175d4e-lite.chunk.js +0 -2
- package/dist/scripts/1683-57c0175d4e-lite.chunk.js.map +0 -1
- package/dist/scripts/1734-bbca52585c-lite.chunk.js +0 -2
- package/dist/scripts/1734-bbca52585c-lite.chunk.js.map +0 -1
- package/dist/scripts/232-278263e5f8-lite.chunk.js +0 -3
- package/dist/scripts/232-278263e5f8-lite.chunk.js.map +0 -1
- package/dist/scripts/2615-90d4cdd835-lite.chunk.js +0 -3
- package/dist/scripts/2615-90d4cdd835-lite.chunk.js.map +0 -1
- package/dist/scripts/2788-013bbba554-lite.chunk.js +0 -2
- package/dist/scripts/2788-013bbba554-lite.chunk.js.map +0 -1
- package/dist/scripts/312-2458059ebb-lite.chunk.js +0 -2
- package/dist/scripts/312-2458059ebb-lite.chunk.js.map +0 -1
- package/dist/scripts/3918-2855f0da2a-lite.chunk.js +0 -2
- package/dist/scripts/3918-2855f0da2a-lite.chunk.js.map +0 -1
- package/dist/scripts/4137-f0ac17da1f-lite.chunk.js +0 -3
- package/dist/scripts/4137-f0ac17da1f-lite.chunk.js.map +0 -1
- package/dist/scripts/4654-6fedfb863f-lite.chunk.js +0 -2
- package/dist/scripts/4654-6fedfb863f-lite.chunk.js.map +0 -1
- package/dist/scripts/5817-900efca702-lite.chunk.js +0 -3
- package/dist/scripts/5817-900efca702-lite.chunk.js.map +0 -1
- package/dist/scripts/7237-86c18f2701-lite.chunk.js +0 -2
- package/dist/scripts/7237-86c18f2701-lite.chunk.js.map +0 -1
- package/dist/scripts/7434-366d4ae5e0-lite.chunk.js +0 -2
- package/dist/scripts/7434-366d4ae5e0-lite.chunk.js.map +0 -1
- package/dist/scripts/7556-79099a07fc-lite.chunk.js.map +0 -1
- package/dist/scripts/8095-777a5c5ddf-lite.chunk.js.map +0 -1
- package/dist/scripts/839-889090dc50-lite.chunk.js +0 -2
- package/dist/scripts/839-889090dc50-lite.chunk.js.map +0 -1
- package/dist/scripts/8489-6e8c4dd60f-lite.chunk.js +0 -3
- package/dist/scripts/8489-6e8c4dd60f-lite.chunk.js.map +0 -1
- package/dist/scripts/897-399a877281-lite.chunk.js +0 -2
- package/dist/scripts/897-399a877281-lite.chunk.js.map +0 -1
- package/dist/scripts/9201-899c885914-lite.chunk.js +0 -2
- package/dist/scripts/9201-899c885914-lite.chunk.js.map +0 -1
- package/dist/scripts/bundle-4b58e56927.min.js +0 -3
- package/dist/scripts/bundle-4b58e56927.min.js.map +0 -1
- /package/dist/css/{1683-lite-bdd5b6edf8.chunk.css → 2506-lite-bdd5b6edf8.chunk.css} +0 -0
- /package/dist/css/{7237-lite-a8e87f096f.chunk.css → 2820-lite-a8e87f096f.chunk.css} +0 -0
- /package/dist/scripts/{2564-cd82320188-lite.chunk.js.LICENSE.txt → 2564-98ba0d782a-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{2615-90d4cdd835-lite.chunk.js.LICENSE.txt → 2615-e9b2938c18-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{3667-f9f546136c-lite.chunk.js.LICENSE.txt → 3667-149e98454c-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{4137-f0ac17da1f-lite.chunk.js.LICENSE.txt → 4137-bef0be4a57-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{232-278263e5f8-lite.chunk.js.LICENSE.txt → 4266-42463e0c33-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{5817-900efca702-lite.chunk.js.LICENSE.txt → 5817-84b8e83c19-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{6433-ff27a3c867-lite.chunk.js.LICENSE.txt → 6433-ad3992c23a-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{7556-79099a07fc-lite.chunk.js.LICENSE.txt → 7556-69f8cb3b20-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{8489-6e8c4dd60f-lite.chunk.js.LICENSE.txt → 8489-7779fd40b3-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{bundle-4b58e56927.min.js.LICENSE.txt → bundle-fb8200eefd.min.js.LICENSE.txt} +0 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[1734],{83657:(e,t,n)=>{n.d(t,{e:()=>o});var a=n(32735),i=n(91967),r=n(10874),s=n(36532),l=n(42735),c=n(86509);function o(e){var t=a.useMemo((function(){return e.actions.sort((function(e,t){return e.order-t.order}))}),[e.actions]),n=[],o=[];t.forEach((function(e){e.button?n.push(e):o.push(e)}));var p="d-flex";return e.className&&(p+=" ".concat(e.className)),n.length||o.length?a.createElement("div",{className:p},n.length?n.map((function(t,n){return a.createElement(a.Fragment,{key:n},function(){if(t.label){var n=i.q.isFunction(t.label)?t.label:function(){return a.createElement(a.Fragment,null,t.label)};return a.createElement(l.K,{appLink:t.appLink,href:t.href,onClick:t.onClick,svgName:t.svgName,svgSize:e.dropdownToggleSvgSize,className:t.className,tooltip:t.tooltip,showSpinner:t.showSpinner,analyticsData:t.analyticsData,analyticsOptions:t.analyticsOptions,openInNewTab:t.openInNewTab,disabled:t.disabled},n())}var c=a.createElement(r.h,{appLink:t.appLink,href:t.href,onClick:t.onClick,svgName:t.svgName,className:t.className,analyticsData:t.analyticsData,analyticsOptions:t.analyticsOptions,openInNewTab:t.openInNewTab,disabled:t.disabled,showBorder:t.showBorder,customSize:e.customSize,ariaLabel:t.tooltip});return t.tooltip?a.createElement(s.u,{title:t.tooltip,spanHack:!0},c):c}())})):a.createElement(a.Fragment,null),e.sortComponent&&e.sortComponent,o.length?a.createElement(c.m,{actions:o,dropdownToggleClassName:e.actionsDropdownClassName,dropdownToggleSvgSize:e.dropdownToggleSvgSize,fetchMore:e.fetchMore}):a.createElement(a.Fragment,null)):a.createElement(a.Fragment,null)}},64071:(e,t,n)=>{n.d(t,{i:()=>l});var a=n(32735),i=n(23481),r=n(23232),s=i.T.encloseNamespace("insights.insightsListEmptyState");function l(e){return a.createElement(r.u,null,a.createElement(r.u.Image,{src:e.imageUrl,size:"small"}),a.createElement(r.u.Heading,null,s(e.useInteractiveCopy?"interactivesHeading":"genericHeading")),a.createElement(r.u.Info,null,s(e.useInteractiveCopy?"interactivesInfo":"genericInfo")),!!e.appLink&&a.createElement(r.u.Cta,{appLink:e.appLink,text:s("cta")}))}},70835:(e,t,n)=>{n.d(t,{G:()=>k});var a=n(32735),i=n(95834),r=n(69674),s=n(82602),l=n(23481),c=n(75896),o=n(110),p=n(65858),d=n(29024),m=n(40391),u=n(64249),v=n(83657),g=n(36848),h=n(83914),f=n(83345),E=n(4594),y=n(85063),b=n(35223),I=n(31908),S="insights.insightsListTable",w=l.T.encloseNamespace(S);function N(e){var t;if(e.type===y.y.ShareLink||!(null===(t=null==e?void 0:e.recipients)||void 0===t?void 0:t.length))return e.dateCreated;var n=e.recipients.map((function(e){return e.dateShared}));return n.sort((function(e,t){return o.O.isSame(e,t)?0:o.O.isAfter(e,t)?1:-2})),n.length?c.m.last(n):""}var k=a.memo((function(e){var t,n,l,c,o,k,C,O,L,T,j,x=(t=e.sentShares,n=e.sharedObjects,l=e.shareRecipients,c=e.interactivesPendingReviews,o=e.dependencies,a.useMemo((function(){var e=[];return t.forEach((function(t){var a,i,r=n.find((function(e){return e.id===t.objectId})),s=null;if(t.type===y.y.DirectShare&&(s=[],null===(a=t.recipients)||void 0===a||a.forEach((function(e){var t=l.find((function(t){return t.id===e.id}));t&&s.push(t)}))),r){var o=r.typeId===E.E.Interactive&&(null==c?void 0:c.find((function(e){return e.interactiveId===r.interactiveId})));e.push({share:t,sharedObject:r,shareRecipients:s,dateShared:N(t),viewCount:null!==(i=t.viewCount)&&void 0!==i?i:0,pendingReview:null==o?void 0:o.pendingReviewCount})}})),e}),o));return a.createElement(a.Fragment,null,a.createElement(r.i,{columns:(k=e.getObjectAppLink,C=e.getObjectActions,O=e.imageCdnUrl,L=e.breakpoints,T=e.hideViews,j=L&&(L.xs||L.sm||L.md),[{Header:w("title"),accessor:"sharedObject",id:"image",Cell:function(e){var t=e.value;return a.createElement("div",{className:"w-100"},a.createElement(d.k,{object:t,appLink:k(t),showVideoMetadata:!0,locationContext:p.LZ.SharedByMe}))},minWidth:140,maxWidth:30},{accessor:"sharedObject",id:"name",Cell:function(e){var t,n,i=e.value,r=e.row,s=e.data;if(i.name){if(I.M.isVideoType(i)&&!(null===(t=I.M.getCanBeConsumed(i))||void 0===t?void 0:t.canNavigate))return a.createElement("span",{className:"clamp-2"},i.name);var l=null===(n=s[r.index])||void 0===n?void 0:n.pendingReview;return a.createElement("div",null,a.createElement(g.F,{appLink:k(i),className:"clamp-2",analyticsData:{id:i.id,name:i.name},analyticsOptions:{entity:u.I.getAnalyticsEntity(i.type),actionType:p.Vw.Click,location:p.LZ.SharedByMe}},i.name),!!l&&a.createElement("div",{className:"bg-light-ultramarine text-ultramarine fw-semibold font-size-sm rounded-pill w-fit mt-1 px-2"},a.createElement(f.x,{namespace:S,phrase:"requireMarking",options:{count:l}})))}return a.createElement("span",null,a.createElement(f.x,{namespace:S,phrase:"videoUnavailable"}))},width:80},{Header:w("sharedTo"),accessor:"shareRecipients",Cell:function(e){var t=e.value;return t?t.length?a.createElement(m.Kh,{recipients:t,imageCdnUrl:O,maxAvatars:j?1:2}):a.createElement(m.m9,null):a.createElement(m.Ad,null)},width:30},!T&&{Header:w("views"),accessor:"share",Cell:function(e){var t=e.value;return a.createElement("div",{className:"d-flex align-items-center"},a.createElement(h.x,{svgName:b.vn.User}),a.createElement("span",null,t.accessedCount,t.totalAccessible?"/".concat(t.totalAccessible):""))},width:30},!j&&{Header:w("shared"),id:"dateShared",accessor:function(e){return(0,s.WU)(e.dateShared)},width:40},{accessor:"sharedObject",id:"actions",Cell:function(e){var t=e.value;return a.createElement(v.e,{actions:C(t),className:"w-100 justify-content-end align-items-center gap-2",actionsDropdownClassName:"bg-transparent",dropdownToggleSvgSize:h.S.Standard})},width:40}].filter(Boolean)),data:x,theme:i.J}))}))},64734:(e,t,n)=>{n.r(t),n.d(t,{InsightsListView:()=>x});var a=n(32735),i=n(23481),r=n(26025),s=n(65961),l=n(71020),c=n(83345),o=n(4594),p=n(79967),d=n(79612),m=n(99742),u=n(14070),v=n(97291),g=n(64208),h=n(64071),f=n(70835),E=n(75896),y=n(36848),b="insights.insightsTypeFilters",I=i.T.encloseNamespace(b);function S(e){return a.createElement("div",{className:"d-flex align-items-center"},a.createElement("p",{className:"h6 mb-0"},a.createElement(c.x,{namespace:b,phrase:"filters"})),a.createElement("div",{className:"d-flex border-start border-light ps-3 ms-3 gap-2"},a.createElement(w,{typeId:o.E.Video,typeFilters:e.typeIdParams,appLink:e.appLink}),a.createElement(w,{typeId:o.E.Clip,typeFilters:e.typeIdParams,appLink:e.appLink}),a.createElement(w,{typeId:o.E.Interactive,typeFilters:e.typeIdParams,appLink:e.appLink})))}function w(e){var t=e.typeFilters.includes(e.typeId),n=e.appLink,i=n.params,r=E.m.addOrRemoveImmutable(e.typeFilters,e.typeId),s=Object.assign(Object.assign({},n),{params:Object.assign(Object.assign({},i),{typeId:r})});function l(){return e.typeId===o.E.Video?"videos":e.typeId===o.E.Clip?"clips":e.typeId===o.E.Interactive?"interactives":void 0}return a.createElement(y.F,{className:"btn ".concat(t?"btn-dark":"btn-outline-dark"),appLink:s,ariaLabel:"".concat(I("ariaFilterBy"),": ").concat(I(l()))},a.createElement(c.x,{namespace:b,phrase:l()}))}var N=n(23120),k=n(82202),C=n(63153);function O(e){return function(e){if(Array.isArray(e))return L(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 L(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?L(e,t):void 0}}(e)||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 L(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var T="lite.insightsList",j=i.T.encloseNamespace(T);function x(e){var t,n=(0,p.k)(),i=(0,N.w)(e.queryParams),E=r.B.getAudienceAppLinkParams(),y={application:v.O.INSIGHTS,action:u.e.Insights.HOME,params:Object.assign(Object.assign({},E),{typeId:i})},b=(t=[o.E.Video,o.E.Interactive,o.E.Clip],{recipientUserId:null==E?void 0:E.users,recipientGroupId:[].concat(O((null==E?void 0:E.classroomGroups)||[]),O((null==E?void 0:E.classrooms)||[])),objectTypeId:i.length?i:t}),I=(0,g.aH)(b,!0),w=I.sentShares,L=I.sharedObjects,x=I.shareRecipients,A=I.interactivesPendingReview,M=I.isFetching,F=I.showPartialLoading,H=I.nextCursor,R=I.hasMore,V=I.fetchNext,D=I.imageCdnUrl,B=I.dependencies;(0,d.M)({title:j("insights")});var P=(0,N.j)(n,E);return a.createElement("div",{className:"px-3"},a.createElement("div",{className:"d-flex justify-content-between mb-2"},a.createElement("h1",null,a.createElement(c.x,{namespace:T,phrase:"insights"})),a.createElement(s.B,null)),a.createElement("div",{className:"mb-2"},a.createElement(S,{appLink:y,typeIdParams:i})),F?a.createElement(k.N,null):w.length?a.createElement(a.Fragment,null,a.createElement(f.G,{sentShares:w,sharedObjects:L,shareRecipients:x,interactivesPendingReviews:A,getObjectAppLink:C.Q,getObjectActions:P,imageCdnUrl:D,groupByDateShared:!0,dependencies:B,breakpoints:n}),(R||M)&&a.createElement(l._,{isFetching:M,fetchNext:V,nextCursor:H})):a.createElement(h.i,{appLink:{application:v.O.DASHBOARD,action:u.e.Dashboard.HOME},imageUrl:m.W.EmptyStates.Share.SHARED_WITH_ME}))}},23120:(e,t,n)=>{n.d(t,{j:()=>d,w:()=>m});var a=n(32735),i=n(23481),r=n(4594),s=n(35223),l=n(31908),c=n(14070),o=n(97291),p=i.T.encloseNamespace("lite.insightsList");function d(e,t){var n=e.xs||e.sm||e.md,i=JSON.stringify(t);return a.useCallback((function(e){return function(e,t,n){var a,i;l.M.isVideo(e)&&(a="video",i={application:o.O.INSIGHTS,action:c.e.Insights.VIDEO_OVERVIEW,args:[e.id]}),l.M.isInteractive(e)&&(a="interactive",i={application:o.O.INSIGHTS,action:c.e.Insights.INTERACTIVE_OVERVIEW,args:[e.id]}),l.M.isClip(e)&&(a="clip",i={application:o.O.INSIGHTS,action:c.e.Insights.CLIP_OVERVIEW,args:[e.id]}),e.typeId===r.E.Series&&(a="series"),e.typeId===r.E.Playlist&&(a="playlist");var d=[{label:p("editShareSettings"),appLink:{application:o.O.DEFAULT,action:c.e.Default.SHARE,args:[e.id],params:{entityType:a}}}];if(l.M.isVideoType(e)){if(!l.M.getCanBeConsumed(e).canConsume)return[];d.unshift({label:p("viewInsights"),className:"btn btn-outline-dark",button:!n,svgName:s.vn.Chart,appLink:Object.assign(Object.assign({},i),{params:t})})}return d}(e,t,n)}),[n,i])}function m(e){var t=null==e?void 0:e.typeId;return t?"string"==typeof t?[+t]:(null==e?void 0:e.typeId.map((function(e){return+e})))||[]:[]}}}]);
|
|
2
|
+
//# sourceMappingURL=1734-f5ffd39591-lite.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/1734-f5ffd39591-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/components/actions/Actions.tsx","file:///app/packages/projects/lite/src/apps/insights/components/insights-list/empty-state/InsightsListEmptyState.tsx","file:///app/packages/projects/lite/src/apps/insights/components/insights-list/table/InsightsListTableUtils.tsx","file:///app/packages/projects/lite/src/apps/insights/components/insights-list/table/InsightsListTable.tsx","file:///app/packages/projects/lite/src/apps/insights/components/insights-list/type-filter/InsightsTypeFilters.tsx","file:///app/packages/projects/lite/src/apps/insights/views/insights-list/InsightsListView.tsx","file:///app/packages/projects/lite/src/apps/insights/views/insights-list/InsightsListViewUtils.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\nimport { SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { BaseObject } from 'libs/shared/interfaces';\n\nimport { ActionButton } from './ActionButton';\nimport { ActionsDropdown } from './ActionsDropdown';\n\nexport interface ActionOptions {\n order?: number;\n label?: string | (() => JSX.Element);\n appLink?: Core.AppLink;\n href?: string;\n onClick?: () => void;\n svgName?: string;\n className?: string;\n button?: boolean; // If true, a button will be rendered. Otherwise the action will be rendered in the dropdown.\n tooltip?: string;\n showSpinner?: boolean;\n showBorder?: boolean; // only works for button without text label\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n disabled?: boolean;\n openInNewTab?: boolean; // Only used if appLink or href is provided\n group?: string;\n lazyPlaceholder?: boolean;\n}\n\nexport type ActionGenerator = (obj: BaseObject) => ActionOptions[];\n\ninterface ActionsProps {\n actions: ActionOptions[];\n className?: string;\n actionsDropdownClassName?: string;\n dropdownToggleSvgSize?: SvgContainerSize;\n sortComponent?: JSX.Element;\n customSize?: boolean;\n fetchMore?: () => void;\n}\n\nexport function Actions(props: ActionsProps): JSX.Element {\n const orderedActions = React.useMemo(() => props.actions.sort((a, b) => a.order - b.order), [props.actions]);\n\n const buttonActions: ActionOptions[] = [];\n const moreActions: ActionOptions[] = [];\n\n orderedActions.forEach(a => {\n if (a.button)\n buttonActions.push(a);\n else\n moreActions.push(a);\n });\n\n let className = 'd-flex';\n\n if (props.className)\n className += ` ${props.className}`;\n\n if (!buttonActions.length && !moreActions.length)\n return <></>;\n\n return (\n <div className={className}>\n {buttonActions.length ? buttonActions.map((a, idx) => (\n <React.Fragment key={idx}>\n {(() => {\n if (a.label) {\n const label = FunctionHelper.isFunction(a.label)\n ? a.label\n : () => <>{a.label}</>;\n\n return (\n <ActionButton\n appLink={a.appLink}\n href={a.href}\n onClick={a.onClick}\n svgName={a.svgName}\n svgSize={props.dropdownToggleSvgSize}\n className={a.className}\n tooltip={a.tooltip}\n showSpinner={a.showSpinner}\n analyticsData={a.analyticsData}\n analyticsOptions={a.analyticsOptions}\n openInNewTab={a.openInNewTab}\n disabled={a.disabled}\n >\n {label()}\n </ActionButton>\n );\n }\n\n const iconButton = (\n <IconButton\n appLink={a.appLink}\n href={a.href}\n onClick={a.onClick}\n svgName={a.svgName}\n className={a.className}\n analyticsData={a.analyticsData}\n analyticsOptions={a.analyticsOptions}\n openInNewTab={a.openInNewTab}\n disabled={a.disabled}\n showBorder={a.showBorder}\n customSize={props.customSize}\n ariaLabel={a.tooltip}\n />\n );\n\n return a.tooltip\n ? <Tooltip title={a.tooltip} spanHack>{iconButton}</Tooltip>\n : iconButton;\n })()}\n </React.Fragment>\n )) : <></>}\n {props.sortComponent && props.sortComponent}\n {moreActions.length ? (\n <ActionsDropdown\n actions={moreActions}\n dropdownToggleClassName={props.actionsDropdownClassName}\n dropdownToggleSvgSize={props.dropdownToggleSvgSize}\n fetchMore={props.fetchMore}\n />\n ) : <></>}\n </div>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\n\nconst namespace = 'insights.insightsListEmptyState';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface InsightsListEmptyStateProps {\n imageUrl: string;\n appLink?: Core.AppLink;\n useInteractiveCopy?: boolean;\n}\n\nexport function InsightsListEmptyState(props: InsightsListEmptyStateProps): 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}","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 { InteractivesPendingReviews } from 'libs/shared/apps/analytics/interfaces/response/InteractivesPendingReviewsResponse';\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 { SharableEntity, 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 { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { ShareType } from 'libs/shared/enums/ShareType';\nimport { Breakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { BaseObject, InteractiveMetadata, UnionShareObject } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nconst namespace = 'insights.insightsListTable';\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 shareRecipients?: BaseObject[];\n viewCount: number;\n pendingReview: number;\n}\n\nexport function getColumns(\n getObjectAppLink: (object: BaseObject) => Core.AppLink,\n getObjectActions: (object: BaseObject) => ActionOptions[],\n imageCdnUrl: string,\n breakpoints?: Breakpoints,\n hideViews?: boolean\n): Column<SharedByMeTableData>[] {\n const isMobile = breakpoints && (breakpoints.xs || breakpoints.sm || breakpoints.md);\n\n const columns: Column<SharedByMeTableData>[] = [\n {\n Header: getPhrase('title'),\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, row, data }) => {\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 pendingReview = data[row.index]?.pendingReview;\n\n return (\n <div>\n <AppLink\n appLink={getObjectAppLink(value)}\n className='clamp-2'\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 \n {!!pendingReview && (\n <div className='bg-light-ultramarine text-ultramarine fw-semibold font-size-sm rounded-pill w-fit mt-1 px-2'>\n <Text namespace={namespace} phrase='requireMarking' options={{ count: pendingReview }} />\n </div>\n )}\n </div>\n );\n }\n\n return <span><Text namespace={namespace} phrase='videoUnavailable' /></span>;\n },\n width: 80\n },\n {\n Header: getPhrase('sharedTo'),\n accessor: 'shareRecipients',\n Cell: ({ value }) => {\n if (!value)\n return <SharedLinkAvatar />;\n\n if (!value.length)\n return <AnonymousSharedToAvatar />;\n\n return <SharedToAvatarList recipients={value} imageCdnUrl={imageCdnUrl} maxAvatars={isMobile ? 1 : 2} />;\n },\n width: 30\n },\n !hideViews && {\n Header: getPhrase('views'),\n accessor: 'share',\n Cell: ({ value }) => {\n return (\n <div className='d-flex align-items-center'>\n <SvgContainer svgName={cvSvgLibrary.User} />\n <span>{value.accessedCount}{value.totalAccessible ? `/${value.totalAccessible}` : ''}</span>\n </div>\n );\n },\n width: 30\n },\n !isMobile && {\n Header: 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 align-items-center gap-2'\n actionsDropdownClassName='bg-transparent'\n dropdownToggleSvgSize={SvgContainerSize.Standard}\n />\n ),\n width: 40\n }\n ];\n\n return columns.filter((Boolean));\n}\n\nexport function useGetData(\n sentShares: UnionShareObject[],\n sharedObjects: BaseObject[],\n shareRecipients: BaseObject[],\n interactivesPendingReviews: InteractivesPendingReviews[],\n dependencies: any[]\n): SharedByMeTableData[] {\n return React.useMemo(() => {\n const tableData: SharedByMeTableData[] = [];\n\n sentShares.forEach(s => {\n const sharedObject = sharedObjects.find(o => o.id === 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.find(s => s.id === 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 const pendingReview = sharedObject.typeId === MasterType.Interactive && interactivesPendingReviews?.find(\n pendingReview => pendingReview.interactiveId === (sharedObject as InteractiveMetadata).interactiveId\n );\n\n tableData.push({\n share: s,\n sharedObject,\n shareRecipients: recipients,\n dateShared: getDateShared(s),\n viewCount: s.viewCount ?? 0,\n pendingReview: pendingReview?.pendingReviewCount\n });\n }\n });\n\n return tableData;\n }, dependencies);\n}","import React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { InteractivesPendingReviews } from 'libs/shared/apps/analytics/interfaces/response/InteractivesPendingReviewsResponse';\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 } from 'libs/shared/interfaces';\n\nimport { getColumns, useGetData } from './InsightsListTableUtils';\n\ninterface InsightsListTableProps {\n sentShares: UnionShareObject[];\n sharedObjects: BaseObject[];\n shareRecipients: BaseObject[];\n interactivesPendingReviews: InteractivesPendingReviews[];\n getObjectAppLink: (object: BaseObject) => Core.AppLink;\n getObjectActions: (object: BaseObject) => ActionOptions[];\n imageCdnUrl: string;\n groupByDateShared?: boolean;\n showStatus?: boolean;\n showViewCount?: boolean;\n dependencies?: any[];\n breakpoints?: Breakpoints;\n hideViews?: boolean\n}\n\nfunction InsightsListTableMemo(props: InsightsListTableProps): JSX.Element {\n const data = useGetData(\n props.sentShares,\n props.sharedObjects,\n props.shareRecipients,\n props.interactivesPendingReviews,\n props.dependencies\n );\n\n return (\n <>\n <Table\n columns={getColumns(\n props.getObjectAppLink,\n props.getObjectActions,\n props.imageCdnUrl,\n props.breakpoints,\n props.hideViews\n )}\n data={data}\n theme={SHARES_TABLE_THEME}\n />\n </>\n );\n}\n\nexport const InsightsListTable = React.memo(InsightsListTableMemo);","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { MasterType } from 'libs/shared/enums/MasterType';\n\nconst namespace = 'insights.insightsTypeFilters';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface InsightsTypeFilterProps {\n appLink: Core.AppLink;\n typeIdParams: MasterType[];\n}\n\nexport function InsightsTypeFilters(props: InsightsTypeFilterProps) {\n return (\n <div className='d-flex align-items-center'>\n <p className='h6 mb-0'><Text namespace={namespace} phrase='filters' /></p>\n <div className='d-flex border-start border-light ps-3 ms-3 gap-2'>\n <InsightTypeFilterButton typeId={MasterType.Video} typeFilters={props.typeIdParams} appLink={props.appLink} />\n <InsightTypeFilterButton typeId={MasterType.Clip} typeFilters={props.typeIdParams} appLink={props.appLink} />\n <InsightTypeFilterButton\n typeId={MasterType.Interactive}\n typeFilters={props.typeIdParams}\n appLink={props.appLink}\n />\n </div>\n </div>\n );\n}\n\ninterface InsightTypeFilterButtonProps {\n typeId: MasterType;\n typeFilters: MasterType[];\n appLink: Core.AppLink;\n}\n\nfunction InsightTypeFilterButton(props: InsightTypeFilterButtonProps) {\n const selected = props.typeFilters.includes(props.typeId);\n\n const currentAppLink = props.appLink;\n const currentParams = currentAppLink.params as HashObject;\n\n const newType: MasterType[] = ArrayHelper.addOrRemoveImmutable(props.typeFilters, props.typeId);\n\n const newAppLink = {\n ...currentAppLink,\n params: {\n ...currentParams,\n typeId: newType\n }\n };\n\n function getTypePhrase(): string {\n if (props.typeId === MasterType.Video) return 'videos';\n if (props.typeId === MasterType.Clip) return 'clips';\n if (props.typeId === MasterType.Interactive) return 'interactives';\n }\n\n return (\n <AppLink\n className={`btn ${selected ? 'btn-dark' : 'btn-outline-dark'}`}\n appLink={newAppLink}\n ariaLabel={`${getPhrase('ariaFilterBy')}: ${getPhrase(getTypePhrase())}`}\n >\n <Text namespace={namespace} phrase={getTypePhrase()} />\n </AppLink>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsFilterHelper } from 'libs/shared/apps/analytics/utils/AnalyticsFilterUtils';\nimport { AudienceFilterView } from 'libs/shared/apps/analytics/views/audience-filter/AudienceFilterView';\nimport { GetSentItemsParams } from 'libs/shared/apps/share/interfaces/requests/GetSentItemsParams';\nimport { InfiniteScrollFooter } from 'libs/shared/components/infinite-scroll-footer/InfiniteScrollFooter';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { useSharesTable } from 'shared/hooks/useSharesTable';\n\nimport { InsightsListEmptyState } from 'apps/insights/components/insights-list/empty-state/InsightsListEmptyState';\nimport { InsightsListTable } from 'apps/insights/components/insights-list/table/InsightsListTable';\nimport { InsightsTypeFilters } from 'apps/insights/components/insights-list/type-filter/InsightsTypeFilters';\nimport { getTypeIdParams, useGetInsightsObjectActions } from 'apps/insights/views/insights-list/InsightsListViewUtils';\nimport { PartialSharedByMeTable } from 'apps/share/views/shared-by-me/partial-loading/PartialSharedByMeTable';\nimport { getObjectAppLink } from 'apps/share/views/shared-by-me/SharedByMeViewUtils';\n\nconst namespace = 'lite.insightsList';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface InsightsListViewProps {\n queryParams: HashObject;\n}\n\nexport function InsightsListView(props: InsightsListViewProps) {\n const breakpoints = useBreakpoints();\n\n const typeIdAppLinkParams = getTypeIdParams(props.queryParams);\n const audienceAppLinkParams = AnalyticsFilterHelper.getAudienceAppLinkParams();\n const currentAppLink = getCurrentAppLink();\n const sentSharesParams = getSentSharesFilter();\n\n\n const {\n sentShares,\n sharedObjects,\n shareRecipients,\n interactivesPendingReview,\n isFetching,\n showPartialLoading,\n nextCursor,\n hasMore,\n fetchNext,\n imageCdnUrl,\n dependencies\n } = useSharesTable(sentSharesParams, true);\n\n\n useSetPageMetadata({ title: getPhrase('insights') });\n\n const getSharedObjectActions = useGetInsightsObjectActions(breakpoints, audienceAppLinkParams);\n\n function getSentSharesFilter(): GetSentItemsParams {\n const defaultObjectTypes = [ MasterType.Video, MasterType.Interactive, MasterType.Clip ];\n\n return {\n recipientUserId: audienceAppLinkParams?.users,\n recipientGroupId: [ ...audienceAppLinkParams?.classroomGroups || [], ...audienceAppLinkParams?.classrooms || [] ],\n objectTypeId: typeIdAppLinkParams.length ? typeIdAppLinkParams : defaultObjectTypes\n };\n }\n\n function getCurrentAppLink(): Core.AppLink {\n return {\n application: AppChannels.INSIGHTS,\n action: Actions.Insights.HOME,\n params: {\n ...audienceAppLinkParams,\n typeId: typeIdAppLinkParams\n }\n };\n }\n\n return (\n <div className='px-3'>\n <div className='d-flex justify-content-between mb-2'>\n <h1><Text namespace={namespace} phrase='insights' /></h1>\n\n <AudienceFilterView />\n </div>\n\n <div className='mb-2'>\n <InsightsTypeFilters appLink={currentAppLink} typeIdParams={typeIdAppLinkParams} />\n </div>\n\n {(() => {\n if (showPartialLoading)\n return <PartialSharedByMeTable />;\n\n if (!sentShares.length)\n return (\n <InsightsListEmptyState\n appLink={{ application: AppChannels.DASHBOARD, action: Actions.Dashboard.HOME }}\n imageUrl={ImageUrls.EmptyStates.Share.SHARED_WITH_ME}\n />\n );\n\n return (\n <>\n <InsightsListTable\n sentShares={sentShares}\n sharedObjects={sharedObjects}\n shareRecipients={shareRecipients}\n interactivesPendingReviews={interactivesPendingReview}\n getObjectAppLink={getObjectAppLink}\n getObjectActions={getSharedObjectActions}\n imageCdnUrl={imageCdnUrl}\n groupByDateShared\n dependencies={dependencies}\n breakpoints={breakpoints}\n />\n {(hasMore || isFetching) &&\n <InfiniteScrollFooter isFetching={isFetching} fetchNext={fetchNext} nextCursor={nextCursor} />\n }\n </>\n );\n })()}\n </div>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AudienceQueryParams } from 'libs/shared/apps/analytics/interfaces/AudienceQueryParams';\nimport { SharableEntityType } from 'libs/shared/apps/share/views/share/ShareViewHelper';\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 { 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\n\nconst namespace = 'lite.insightsList';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction getInsightsObjectActions(\n sharedObject: BaseObject,\n audienceParams: AudienceQueryParams,\n isMobile: boolean\n): ActionOptions[] {\n let entityType: SharableEntityType;\n let insightsAppLink: Core.AppLink;\n\n if (VideoHelper.isVideo(sharedObject)) {\n entityType = 'video';\n insightsAppLink = {\n application: AppChannels.INSIGHTS,\n action: Actions.Insights.VIDEO_OVERVIEW,\n args: [sharedObject.id]\n };\n }\n\n if (VideoHelper.isInteractive(sharedObject)) {\n entityType = 'interactive';\n insightsAppLink = {\n application: AppChannels.INSIGHTS,\n action: Actions.Insights.INTERACTIVE_OVERVIEW,\n args: [sharedObject.id]\n };\n }\n\n if (VideoHelper.isClip(sharedObject)) {\n entityType = 'clip';\n insightsAppLink = {\n application: AppChannels.INSIGHTS,\n action: Actions.Insights.CLIP_OVERVIEW,\n args: [sharedObject.id]\n };\n }\n\n if (sharedObject.typeId === MasterType.Series)\n entityType = 'series';\n\n if (sharedObject.typeId === MasterType.Playlist)\n entityType = 'playlist';\n\n \n const insightObjectActions: ActionOptions[] = [\n {\n label: getPhrase('editShareSettings'),\n appLink: {\n application: AppChannels.DEFAULT,\n action: Actions.Default.SHARE,\n args: [sharedObject.id],\n params: { entityType }\n }\n }\n ];\n\n if (VideoHelper.isVideoType(sharedObject)) {\n const { canConsume } = VideoHelper.getCanBeConsumed(sharedObject);\n\n if (!canConsume)\n return [];\n\n insightObjectActions.unshift({\n label: getPhrase('viewInsights'),\n className: 'btn btn-outline-dark',\n button: !isMobile,\n svgName: cvSvgLibrary.Chart,\n appLink: { ...insightsAppLink, params: audienceParams }\n });\n }\n\n return insightObjectActions;\n}\n\nexport function useGetInsightsObjectActions(\n breakpoints: Breakpoints,\n audienceParams?: AudienceQueryParams\n): ((object: BaseObject) => ActionOptions[]) | null {\n const isMobile = breakpoints.xs || breakpoints.sm || breakpoints.md;\n const audienceParamsKey = JSON.stringify(audienceParams);\n\n return React.useCallback(\n (object: BaseObject) => getInsightsObjectActions(\n object,\n audienceParams,\n isMobile\n ),\n [ isMobile, audienceParamsKey ]\n );\n}\n\n\nexport function getTypeIdParams(params: HashObject): MasterType[] {\n const typeIdParams = params?.typeId;\n\n if (!typeIdParams) return [];\n\n if (typeof typeIdParams === 'string')\n return [+typeIdParams];\n\n return params?.typeId.map((typeId: MasterType) => +typeId) || [];\n}"],"names":["Actions","props","orderedActions","actions","sort","a","b","order","buttonActions","moreActions","forEach","button","push","className","length","map","idx","key","label","appLink","href","onClick","svgName","svgSize","dropdownToggleSvgSize","tooltip","showSpinner","analyticsData","analyticsOptions","openInNewTab","disabled","iconButton","showBorder","customSize","ariaLabel","title","spanHack","sortComponent","dropdownToggleClassName","actionsDropdownClassName","fetchMore","getPhrase","InsightsListEmptyState","src","imageUrl","size","useInteractiveCopy","text","namespace","LanguageService","getDateShared","share","type","ShareType","recipients","dateCreated","datesShared","r","dateShared","date1","date2","DateHelper","ArrayHelper","InsightsListTable","sentShares","sharedObjects","shareRecipients","interactivesPendingReviews","dependencies","getObjectAppLink","getObjectActions","imageCdnUrl","breakpoints","hideViews","isMobile","data","tableData","s","sharedObject","find","o","id","objectId","recipient","pendingReview","typeId","MasterType","interactiveId","viewCount","pendingReviewCount","Table","columns","xs","sm","md","Header","accessor","Cell","value","SharedObjectImage","object","showVideoMetadata","locationContext","minWidth","maxWidth","row","name","VideoHelper","canNavigate","index","AppLink","entity","ShareViewHelper","actionType","location","Text","phrase","options","count","width","SharedToAvatarList","maxAvatars","SvgContainer","accessedCount","totalAccessible","S","filter","Boolean","theme","InsightsTypeFilters","InsightTypeFilterButton","typeFilters","typeIdParams","selected","includes","currentAppLink","currentParams","params","newType","newAppLink","getTypePhrase","InsightsListView","defaultObjectTypes","useBreakpoints","typeIdAppLinkParams","queryParams","audienceAppLinkParams","application","action","sentSharesParams","recipientUserId","users","recipientGroupId","classroomGroups","classrooms","objectTypeId","useSharesTable","interactivesPendingReview","isFetching","showPartialLoading","nextCursor","hasMore","fetchNext","useSetPageMetadata","getSharedObjectActions","AudienceFilterView","PartialSharedByMeTable","groupByDateShared","InfiniteScrollFooter","ImageUrls","useGetInsightsObjectActions","audienceParams","audienceParamsKey","JSON","stringify","entityType","insightsAppLink","args","insightObjectActions","canConsume","unshift","getInsightsObjectActions","getTypeIdParams"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[2506],{31754:(e,t,a)=>{a.d(t,{x:()=>o});var n=a(82602),r=a(75896),c=a(89682),i=a(11576),o={groupByDateShared:function(e){var t=r.m.groupBy(e,"dateShared");return Object.keys(t).sort().reverse().reduce((function(e,a){var r=(0,n.WU)(a);return e[r]||(e[r]=[]),e[r]=e[r].concat(t[a]),e}),{})},mapActivityStatusToCheckMarkStatus:function(e){switch(e){case i.T.Complete:return c.h.Complete;case i.T.Incomplete:return c.h.Incomplete;case i.T.None:return c.h.None}},mapCheckMarkStatusToActivityStatus:function(e){switch(e){case c.h.Complete:return i.T.Complete;case c.h.Incomplete:return i.T.Incomplete;case c.h.None:return i.T.None}}}},83657:(e,t,a)=>{a.d(t,{e:()=>s});var n=a(32735),r=a(91967),c=a(10874),i=a(36532),o=a(42735),l=a(86509);function s(e){var t=n.useMemo((function(){return e.actions.sort((function(e,t){return e.order-t.order}))}),[e.actions]),a=[],s=[];t.forEach((function(e){e.button?a.push(e):s.push(e)}));var m="d-flex";return e.className&&(m+=" ".concat(e.className)),a.length||s.length?n.createElement("div",{className:m},a.length?a.map((function(t,a){return n.createElement(n.Fragment,{key:a},function(){if(t.label){var a=r.q.isFunction(t.label)?t.label:function(){return n.createElement(n.Fragment,null,t.label)};return n.createElement(o.K,{appLink:t.appLink,href:t.href,onClick:t.onClick,svgName:t.svgName,svgSize:e.dropdownToggleSvgSize,className:t.className,tooltip:t.tooltip,showSpinner:t.showSpinner,analyticsData:t.analyticsData,analyticsOptions:t.analyticsOptions,openInNewTab:t.openInNewTab,disabled:t.disabled},a())}var l=n.createElement(c.h,{appLink:t.appLink,href:t.href,onClick:t.onClick,svgName:t.svgName,className:t.className,analyticsData:t.analyticsData,analyticsOptions:t.analyticsOptions,openInNewTab:t.openInNewTab,disabled:t.disabled,showBorder:t.showBorder,customSize:e.customSize,ariaLabel:t.tooltip});return t.tooltip?n.createElement(i.u,{title:t.tooltip,spanHack:!0},l):l}())})):n.createElement(n.Fragment,null),e.sortComponent&&e.sortComponent,s.length?n.createElement(l.m,{actions:s,dropdownToggleClassName:e.actionsDropdownClassName,dropdownToggleSvgSize:e.dropdownToggleSvgSize,fetchMore:e.fetchMore}):n.createElement(n.Fragment,null)):n.createElement(n.Fragment,null)}},86509:(e,t,a)=>{a.d(t,{m:()=>v});var n=a(32735),r=a(91967),c=a(81886),i=a(45157),o=a(49985),l=a(36848),s=a(83914),m=a(36532),u=a(35223);const d={dropdownToggle:"UCAnJ"};function p(){return n.createElement(n.Fragment,null,n.createElement("div",{style:{padding:"0.53125rem 1rem"}},n.createElement("div",{className:"partial-loading-background",style:{height:"1.0625rem",width:"8rem"}})),n.createElement("div",{style:{padding:"0.53125rem 1rem"}},n.createElement("div",{className:"partial-loading-background",style:{height:"1.0625rem",width:"12rem"}})),n.createElement("div",{style:{padding:"0.53125rem 1rem"}},n.createElement("div",{className:"partial-loading-background",style:{height:"1.0625rem",width:"11rem"}})),n.createElement("div",{style:{padding:"0.53125rem 1rem"}},n.createElement("div",{className:"partial-loading-background",style:{height:"1.0625rem",width:"9rem"}})))}function h(e){var t="dropdown-item";return e&&(t+=" ".concat(e)),t}function g(e){var t=r.q.isFunction(e.action.label)?e.action.label:function(){return n.createElement(n.Fragment,null,e.action.label)};if(e.action.appLink)return n.createElement(l.F,{appLink:e.action.appLink,onClick:e.action.onClick,className:h(e.action.className),analyticsData:e.action.analyticsData,analyticsOptions:e.action.analyticsOptions,openInNewTab:e.action.openInNewTab,disabled:e.action.disabled},e.action.svgName&&n.createElement(s.x,{svgName:e.action.svgName,className:"d-inline-block svg-container me-2 align-middle"}),n.createElement("span",{className:"align-middle"},t()));function a(t){t.preventDefault(),e.action.analyticsData&&e.action.analyticsOptions&&o.k.logUserAction(e.action.analyticsData,e.action.analyticsOptions),r.q.isFunction(e.action.onClick)&&e.action.onClick(),e.action.href&&c.Q.Ab.PageLoad(e.action.href,e.action.openInNewTab)}return e.action.href?n.createElement("a",{className:h(e.action.className),onClick:a,href:e.action.href},e.action.svgName&&n.createElement(s.x,{svgName:e.action.svgName,className:"d-inline-block svg-container me-2 align-middle"}),n.createElement("span",{className:"align-middle"},t())):n.createElement("span",{className:"cursor-pointer ".concat(h(e.action.className)),onClick:a,role:"button",tabIndex:0,onKeyDown:function(e){return"Enter"===e.key&&a(e)}},e.action.svgName&&n.createElement(s.x,{svgName:e.action.svgName,className:"d-inline-block svg-container me-2"}),t())}function v(e){if(!e.actions||!e.actions.length)return n.createElement(n.Fragment,null);var t=e.actions.some((function(e){return e.lazyPlaceholder})),a="dropdown";e.className&&(a+=" ".concat(e.className));var r,c="actions-dropdown-".concat(i.Y.getRandomInt()),o="dropdown-toggle px-0 ".concat(d.dropdownToggle);return e.dropdownToggleClassName&&(o+=" ".concat(e.dropdownToggleClassName)),n.createElement("div",{className:a},n.createElement("button",{className:o,type:"button",id:c,"data-bs-toggle":"dropdown","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","aria-label":"More actions dropdown",onClick:t?e.fetchMore:null},n.createElement(s.x,{svgName:u.vn.More,size:e.dropdownToggleSvgSize})),n.createElement("ul",{className:"dropdown-menu dropdown-menu-end dropdown-menu-right font-size-normal","aria-labelledby":c},t?n.createElement(p,null):e.actions.map((function(e,t){var a=void 0!==r&&r!==e.group;return r=e.group,e.tooltip?n.createElement("li",{key:t},a&&n.createElement("hr",{className:"dropdown-divider",role:"separator"}),n.createElement(m.u,{title:e.tooltip,spanHack:!0},n.createElement(g,{action:e}))):n.createElement("li",{key:t},a&&n.createElement("hr",{className:"dropdown-divider",role:"separator"}),n.createElement(g,{action:e}))}))))}v.defaultProps={dropdownToggleClassName:"btn btn-light",dropdownToggleSvgSize:s.S.Small}},38502:(e,t,a)=>{a.d(t,{r:()=>u});var n=a(32735),r=a(49985),c=a(36848),i=a(18559),o=a(11607),l=a(83914),s=a(87432);function m(e){return n.createElement(n.Fragment,null,!!e.tab.svgName&&n.createElement("div",{className:e.tab.name?"pe-1":""},n.createElement(l.x,{svgName:e.tab.svgName})),e.tab.name,"number"==typeof e.tab.count&&n.createElement("div",{className:"ps-2"},n.createElement(i.C,{type:i.g.Count,data:e.tab.count})))}function u(e){var t;return n.createElement("nav",{className:null!==(t=e.className)&&void 0!==t?t:"",ref:e.containerRef},n.createElement("ul",{className:"\n list-unstyled d-inline-block m-0 ".concat(s.Z.pillTabSelector,"\n ").concat(e.borderRadius?s.Z.radiusSmall:"","\n ").concat(e.listClassName,"\n ")},e.tabs.map((function(e,t){return n.createElement("li",{className:"\n p-0 ".concat(s.Z.tab," ").concat(e.active?"btn btn-dark":"btn btn-outline-dark","\n ").concat(e.name?s.Z.minWidth:""," ").concat(e.className,"\n "),key:t},e.appLink?n.createElement(c.F,{appLink:e.appLink,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,className:"\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ".concat(s.Z.tabLink,"\n ")},n.createElement(m,{tab:e})):n.createElement(o.L,{className:"\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ".concat(s.Z.tabLink,"\n "),onClick:function(){return function(e){!e.active&&e.onSelect&&(e.onSelect(),e.analyticsData&&e.analyticsOptions&&r.k.logUserAction(e.analyticsData,e.analyticsOptions))}(e)}},n.createElement(m,{tab:e})))}))))}u.defaultProps={borderRadius:"lg"}},62875:(e,t,a)=>{function n(e,t,a){var n="".concat(e,":").concat(t.start,":").concat(t.end),r=Array.isArray(t.userId)?t.userId.sort().join(":"):t.userId,c=Array.isArray(t.groupId)?t.groupId.sort().join(":"):t.groupId;return r&&(n+=":".concat(r)),c&&(n+=":".concat(c)),a&&(n+=":".concat(a)),n}a.d(t,{H:()=>n})},36511:(e,t,a)=>{a.d(t,{I:()=>r});var n=a(40424);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"}}},2523:(e,t,a)=>{a.d(t,{w:()=>p});var n=a(32735),r=a(23481),c=a(81886),i=a(38502),o=a(75795),l=a(14070),s=a(97291),m=r.T.encloseNamespace("share.sharesHeader"),u={application:s.O.MY_SHARES,action:l.e.MyShares.SHARED_BY_ME},d={application:s.O.MY_SHARES,action:l.e.MyShares.SHARED_WITH_ME};function p(){return n.createElement("div",{className:"pb-3"},n.createElement("h1",{className:"h2 mb-3"},m("shares")),n.createElement(i.r,{tabs:(t=null===(e=o.O.getCurrentRoute())||void 0===e?void 0:e.appLink,[{name:m("sharedByMe"),onSelect:function(){return c.Q.C$.trigger(u)},active:(null==t?void 0:t.action)===u.action},{name:m("sharedWithMe"),onSelect:function(){return c.Q.C$.trigger(d)},active:(null==t?void 0:t.action)===d.action}])}));var e,t}},47047:(e,t,a)=>{a.r(t),a.d(t,{SharedByMeView:()=>q});var n=a(32735),r=a(23481),c=a(23232),i=r.T.encloseNamespace("share.sharedByMeEmptyState");function o(e){return n.createElement(c.u,null,n.createElement(c.u.Image,{src:e.imageUrl,size:"small"}),n.createElement(c.u.Heading,null,i(e.useInteractiveCopy?"interactivesHeading":"genericHeading")),n.createElement(c.u.Info,null,i(e.useInteractiveCopy?"interactivesInfo":"genericInfo")),!!e.appLink&&n.createElement(c.u.Cta,{appLink:e.appLink,text:i("cta")}))}var l=a(95834),s=a(69674),m=a(82602),u=a(75896),d=a(110),p=a(65858),h=a(83914),g=a(36532),v=a(49080),f=a(85063),y=a(35223);const b={indicatorContainer:"T6YAv",indicator:"_MRHG"};var E=r.T.encloseNamespace("share.shareStatusIndicator");function N(e){if(e.type===f.y.DirectShare)return E("active");switch(e.status){case v.F.Active:return E("active");case v.F.Expired:return E("expired")}}function k(e){if(e.type===f.y.DirectShare)return"bg-success";switch(e.status){case v.F.Active:return"bg-success";case v.F.Expired:return"bg-gray-500"}}function w(e){var t;return e.share.type!==f.y.DirectShare||(null===(t=e.share.recipients)||void 0===t?void 0:t.length)?e.share.type===f.y.ShareLink&&e.share.isPasswordProtected?n.createElement(g.u,{title:E("passwordProtected"),spanHack:!0},n.createElement(h.x,{svgName:y.vn.Lock,size:h.S.Small})):n.createElement(g.u,{title:N(e.share),spanHack:!0,spanHackClassName:b.indicatorContainer},n.createElement("div",{className:"".concat(b.indicator," ").concat(k(e.share))})):n.createElement(n.Fragment,null)}var S=a(29024),C=a(40391),T=a(31754),x=a(64249),O=a(83657),I=a(36848),M=a(83345),L=a(31908);function D(e){return D="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},D(e)}var A="share.sharedByMeTable",H=r.T.encloseNamespace(A);function F(e){var t;if(e.type===f.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 d.O.isSame(e,t)?0:d.O.isAfter(e,t)?1:-2})),a.length?u.m.last(a):""}function R(e,t,a,r,c,i,o,l){var s=l&&(l.xs||l.sm),u=[{Header:i?"":t,accessor:"sharedObject",id:"image",Cell:function(e){var t=e.value;return n.createElement("div",{className:"w-100"},n.createElement(S.k,{object:t,appLink:a(t),showVideoMetadata:!0,locationContext:p.LZ.SharedByMe}))},minWidth:140,maxWidth:30},{accessor:"sharedObject",id:"name",Cell:function(e){var t,r=e.value;return r.name?L.M.isVideoType(r)&&!(null===(t=L.M.getCanBeConsumed(r))||void 0===t?void 0:t.canNavigate)?n.createElement("span",{className:"clamp-2"},r.name):n.createElement(I.F,{appLink:a(r),className:"clamp-2",analyticsData:{id:r.id,name:r.name},analyticsOptions:{entity:x.I.getAnalyticsEntity(r.type),actionType:p.Vw.Click,location:p.LZ.SharedByMe}},r.name):n.createElement("span",null,n.createElement(M.x,{namespace:A,phrase:"videoUnavailable"}))},width:60},{Header:0===e?H("sharedTo"):"",accessor:"shareRecipients",Cell:function(e){var t=e.value;return t?t.length?n.createElement(C.Kh,{recipients:t,imageCdnUrl:c,maxAvatars:s?1:2}):n.createElement(C.m9,null):n.createElement(C.Ad,null)},width:40},!s&&{Header:0===e?H("shared"):"",id:"dateShared",accessor:function(e){return(0,m.WU)(e.dateShared)},width:40},{accessor:"sharedObject",id:"actions",Cell:function(e){var t=e.value;return n.createElement(O.e,{actions:r(t),className:"w-100 justify-content-end pe-2"})},width:20}],d={Header:t,accessor:"share",id:"status",Cell:function(e){var t=e.value;return n.createElement(w,{share:t})},width:5},h={Header:H("views"),accessor:"viewCount",width:30};return i&&u.splice(0,0,d),o&&u.splice(u.length-1,0,h),u.filter(Boolean)}var j=n.memo((function(e){var t,a,r,c,i,o=(t=e.sentShares,a=e.sharedObjects,r=e.shareRecipients,c=!!e.groupByDateShared,i=!!e.refreshTable,n.useMemo((function(){var e,n,i,o=[];return t.forEach((function(e){var t,n,c=a.find((function(t){return t.id===e.objectId})),i=null;e.type===f.y.DirectShare&&(i=[],null===(t=e.recipients)||void 0===t||t.forEach((function(e){var t=r.find((function(t){return t.id===e.id}));t&&i.push(t)}))),c&&o.push({share:e,sharedObject:c,shareRecipients:i,dateShared:F(e),viewCount:null!==(n=e.viewCount)&&void 0!==n?n:0})})),c?T.x.groupByDateShared(o):(e={},n=H("title"),i=o,(n=function(e){var t=function(e,t){if("object"!=D(e)||!e)return e;var a=e[Symbol.toPrimitive];if(void 0!==a){var n=a.call(e,"string");if("object"!=D(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==D(t)?t:t+""}(n))in e?Object.defineProperty(e,n,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[n]=i,e)}),[i]));return n.createElement(n.Fragment,null,Object.keys(o).map((function(t,a){return n.createElement(s.i,{key:a,columns:R(a,t,e.getObjectAppLink,e.getObjectActions,e.imageCdnUrl,e.showStatus,e.showViewCount,e.breakpoints),data:o[t],theme:l.J})})))})),B=a(71020),z=a(79967),_=a(79612),P=a(99742),U=a(14070),W=a(97291),Z=a(64208),V=a(2523),Y=a(82202),J=a(63153),Q=r.T.encloseNamespace("liteShare.sharedByMe");function q(){var e=(0,z.k)(),t=(0,Z.aH)(),a=t.sentShares,r=t.sharedObjects,c=t.shareRecipients,i=t.isFetching,l=t.showPartialLoading,s=t.nextCursor,m=t.hasMore,u=t.fetchNext,d=t.imageCdnUrl;(0,_.M)({title:Q("sharedByMe")});var p=(0,J.U)(e);return n.createElement("div",{className:"px-3"},n.createElement(V.w,null),l?n.createElement(Y.N,null):a.length?n.createElement(n.Fragment,null,n.createElement(j,{sentShares:a,sharedObjects:r,shareRecipients:c,getObjectAppLink:J.Q,getObjectActions:p,imageCdnUrl:d,groupByDateShared:!0,refreshTable:i,breakpoints:e}),(m||i)&&n.createElement(B._,{isFetching:i,fetchNext:u,nextCursor:s})):n.createElement(o,{appLink:{application:W.O.DASHBOARD,action:U.e.Dashboard.HOME},imageUrl:P.W.EmptyStates.Share.SHARED_WITH_ME}))}},87432:(e,t,a)=>{a.d(t,{Z:()=>n});const n={pillTabSelector:"Hdi6o",tab:"RvNxr",minWidth:"GHSz9",radiusSmall:"VhJJa",tabLink:"WFyvo"}}}]);
|
|
2
|
+
//# sourceMappingURL=2506-aee0b1f275-lite.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/2506-aee0b1f275-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/apps/share/utils/ShareHelper.ts","file:///app/packages/libs/shared/src/components/actions/Actions.tsx","file:///app/packages/libs/shared/src/components/actions/actions.scss","file:///app/packages/libs/shared/src/components/actions/ActionsDropdown.tsx","file:///app/packages/libs/shared/src/components/pill-tab-selector/PillTabSelector.tsx","file:///app/packages/libs/shared/src/utils/AnalyticsRequestUtils.ts","file:///app/packages/libs/shared/src/utils/GroupHelper.ts","file:///app/packages/projects/lite/src/apps/share/components/shares-header/SharesHeader.tsx","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/projects/lite/src/apps/share/views/shared-by-me/SharedByMeView.tsx","file:///app/packages/libs/shared/src/components/pill-tab-selector/pill-tab-selector.scss"],"sourcesContent":["import { format } from 'timeago.js';\n\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { CheckMarkStatus } from 'libs/shared/components/check-mark-button/CheckMarkButton';\nimport { ShareActivityStatus } from 'libs/shared/enums/ShareActivityStatus';\n\ninterface ObjectWithDateShared {\n dateShared: string;\n}\n\ntype GroupedByDate<T extends ObjectWithDateShared> = { [date: string]: T[] };\n\nexport const ShareHelper = {\n groupByDateShared<T extends ObjectWithDateShared>(data: T[]): GroupedByDate<T> {\n const dateToObjectMapping: GroupedByDate<T> = ArrayHelper.groupBy(data, 'dateShared');\n\n const sortedDates = Object.keys(dateToObjectMapping).sort().reverse();\n\n // Create a sorted mapping between dates and the \"ObjectWithDateShared\" objects\n return sortedDates.reduce((acc: GroupedByDate<T>, date) => {\n const heading = format(date);\n\n if (!acc[heading])\n acc[heading] = [];\n\n acc[heading] = acc[heading].concat(dateToObjectMapping[date]);\n return acc;\n }, {});\n },\n\n mapActivityStatusToCheckMarkStatus(activityStatus: ShareActivityStatus): CheckMarkStatus {\n switch (activityStatus) {\n case ShareActivityStatus.Complete:\n return CheckMarkStatus.Complete;\n case ShareActivityStatus.Incomplete:\n return CheckMarkStatus.Incomplete;\n case ShareActivityStatus.None:\n return CheckMarkStatus.None;\n }\n },\n\n mapCheckMarkStatusToActivityStatus(checkMarkStatus: CheckMarkStatus): ShareActivityStatus {\n switch (checkMarkStatus) {\n case CheckMarkStatus.Complete:\n return ShareActivityStatus.Complete;\n case CheckMarkStatus.Incomplete:\n return ShareActivityStatus.Incomplete;\n case CheckMarkStatus.None:\n return ShareActivityStatus.None;\n }\n }\n};","import * as React from 'react';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\nimport { SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { BaseObject } from 'libs/shared/interfaces';\n\nimport { ActionButton } from './ActionButton';\nimport { ActionsDropdown } from './ActionsDropdown';\n\nexport interface ActionOptions {\n order?: number;\n label?: string | (() => JSX.Element);\n appLink?: Core.AppLink;\n href?: string;\n onClick?: () => void;\n svgName?: string;\n className?: string;\n button?: boolean; // If true, a button will be rendered. Otherwise the action will be rendered in the dropdown.\n tooltip?: string;\n showSpinner?: boolean;\n showBorder?: boolean; // only works for button without text label\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n disabled?: boolean;\n openInNewTab?: boolean; // Only used if appLink or href is provided\n group?: string;\n lazyPlaceholder?: boolean;\n}\n\nexport type ActionGenerator = (obj: BaseObject) => ActionOptions[];\n\ninterface ActionsProps {\n actions: ActionOptions[];\n className?: string;\n actionsDropdownClassName?: string;\n dropdownToggleSvgSize?: SvgContainerSize;\n sortComponent?: JSX.Element;\n customSize?: boolean;\n fetchMore?: () => void;\n}\n\nexport function Actions(props: ActionsProps): JSX.Element {\n const orderedActions = React.useMemo(() => props.actions.sort((a, b) => a.order - b.order), [props.actions]);\n\n const buttonActions: ActionOptions[] = [];\n const moreActions: ActionOptions[] = [];\n\n orderedActions.forEach(a => {\n if (a.button)\n buttonActions.push(a);\n else\n moreActions.push(a);\n });\n\n let className = 'd-flex';\n\n if (props.className)\n className += ` ${props.className}`;\n\n if (!buttonActions.length && !moreActions.length)\n return <></>;\n\n return (\n <div className={className}>\n {buttonActions.length ? buttonActions.map((a, idx) => (\n <React.Fragment key={idx}>\n {(() => {\n if (a.label) {\n const label = FunctionHelper.isFunction(a.label)\n ? a.label\n : () => <>{a.label}</>;\n\n return (\n <ActionButton\n appLink={a.appLink}\n href={a.href}\n onClick={a.onClick}\n svgName={a.svgName}\n svgSize={props.dropdownToggleSvgSize}\n className={a.className}\n tooltip={a.tooltip}\n showSpinner={a.showSpinner}\n analyticsData={a.analyticsData}\n analyticsOptions={a.analyticsOptions}\n openInNewTab={a.openInNewTab}\n disabled={a.disabled}\n >\n {label()}\n </ActionButton>\n );\n }\n\n const iconButton = (\n <IconButton\n appLink={a.appLink}\n href={a.href}\n onClick={a.onClick}\n svgName={a.svgName}\n className={a.className}\n analyticsData={a.analyticsData}\n analyticsOptions={a.analyticsOptions}\n openInNewTab={a.openInNewTab}\n disabled={a.disabled}\n showBorder={a.showBorder}\n customSize={props.customSize}\n ariaLabel={a.tooltip}\n />\n );\n\n return a.tooltip\n ? <Tooltip title={a.tooltip} spanHack>{iconButton}</Tooltip>\n : iconButton;\n })()}\n </React.Fragment>\n )) : <></>}\n {props.sortComponent && props.sortComponent}\n {moreActions.length ? (\n <ActionsDropdown\n actions={moreActions}\n dropdownToggleClassName={props.actionsDropdownClassName}\n dropdownToggleSvgSize={props.dropdownToggleSvgSize}\n fetchMore={props.fetchMore}\n />\n ) : <></>}\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"dropdownToggle\":\"UCAnJ\"};","import * as React from 'react';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { Core } from 'libs/common/core';\nimport { RandomHelper } from 'libs/common/react/utils/RandomHelper';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { ActionOptions } from './Actions';\n\nimport styles from './actions.scss';\n\nfunction LazyDropdownItems(): JSX.Element {\n return (\n <>\n <div style={{ padding: '0.53125rem 1rem' }}>\n <div className='partial-loading-background' style={{ height: '1.0625rem', width: '8rem' }}></div>\n </div>\n <div style={{ padding: '0.53125rem 1rem' }}>\n <div className='partial-loading-background' style={{ height: '1.0625rem', width: '12rem' }}></div>\n </div>\n <div style={{ padding: '0.53125rem 1rem' }}>\n <div className='partial-loading-background' style={{ height: '1.0625rem', width: '11rem' }}></div>\n </div>\n <div style={{ padding: '0.53125rem 1rem' }}>\n <div className='partial-loading-background' style={{ height: '1.0625rem', width: '9rem' }}></div>\n </div>\n </>\n );\n}\n\nfunction getDropdownItemClassName(actionClassName?: string): string {\n let className = 'dropdown-item';\n\n if (actionClassName)\n className += ` ${actionClassName}`;\n\n return className;\n}\n\nexport type DropdownActionOptions = Omit<ActionOptions, 'button'>;\n\ninterface ActionsDropdownItemProps {\n action: DropdownActionOptions;\n}\n\nfunction ActionsDropdownItem(props: ActionsDropdownItemProps): React.ReactElement {\n const label = FunctionHelper.isFunction(props.action.label)\n ? props.action.label\n : () => <>{props.action.label}</>;\n\n if (props.action.appLink)\n return (\n <AppLink\n appLink={props.action.appLink}\n onClick={props.action.onClick}\n className={getDropdownItemClassName(props.action.className)}\n analyticsData={props.action.analyticsData}\n analyticsOptions={props.action.analyticsOptions}\n openInNewTab={props.action.openInNewTab}\n disabled={props.action.disabled}\n >\n {props.action.svgName && <SvgContainer svgName={props.action.svgName} className='d-inline-block svg-container me-2 align-middle' />}\n <span className='align-middle'>{label()}</span>\n </AppLink>\n );\n\n function onClick(e: React.MouseEvent | React.KeyboardEvent): void {\n e.preventDefault();\n\n if (props.action.analyticsData && props.action.analyticsOptions)\n AnalyticsHelper.logUserAction(props.action.analyticsData, props.action.analyticsOptions);\n\n if (FunctionHelper.isFunction(props.action.onClick))\n props.action.onClick();\n\n if (props.action.href)\n Core.LocationUtils.PageLoad(props.action.href, props.action.openInNewTab);\n }\n\n if (props.action.href) {\n return (\n <a\n className={getDropdownItemClassName(props.action.className)}\n onClick={onClick}\n href={props.action.href}\n >\n {props.action.svgName && <SvgContainer svgName={props.action.svgName} className='d-inline-block svg-container me-2 align-middle' />}\n <span className='align-middle'>{label()}</span>\n </a>\n );\n }\n\n return (\n <span\n className={`cursor-pointer ${getDropdownItemClassName(props.action.className)}`}\n onClick={onClick}\n role='button'\n tabIndex={0}\n onKeyDown={(e: React.KeyboardEvent) => e.key === 'Enter' && onClick(e)}\n >\n {props.action.svgName && <SvgContainer svgName={props.action.svgName} className='d-inline-block svg-container me-2' />}\n {label()}\n </span>\n );\n}\n\ninterface ActionsDropdownProps {\n actions: DropdownActionOptions[];\n className?: string;\n dropdownToggleClassName?: string;\n dropdownToggleSvgSize?: SvgContainerSize;\n fetchMore?: () => void;\n}\n\nActionsDropdown.defaultProps = {\n dropdownToggleClassName: 'btn btn-light',\n dropdownToggleSvgSize: SvgContainerSize.Small\n};\n\nexport function ActionsDropdown(props: ActionsDropdownProps): React.ReactElement {\n if (!props.actions || !props.actions.length)\n return <></>;\n\n const isLazy = props.actions.some(a => a.lazyPlaceholder);\n\n let className = 'dropdown';\n\n if (props.className)\n className += ` ${props.className}`;\n\n // Generate unique id to avoid collisions.\n const dropdownToggleId = `actions-dropdown-${RandomHelper.getRandomInt()}`;\n\n let dropdownToggleClassName = `dropdown-toggle px-0 ${styles.dropdownToggle}`;\n\n if (props.dropdownToggleClassName)\n dropdownToggleClassName += ` ${props.dropdownToggleClassName}`;\n\n let currentGroup: string;\n\n return (\n <div className={className}>\n <button\n className={dropdownToggleClassName}\n type='button'\n id={dropdownToggleId}\n data-bs-toggle='dropdown'\n data-toggle='dropdown'\n aria-haspopup='true'\n aria-expanded='false'\n aria-label={'More actions dropdown'}\n onClick={isLazy ? props.fetchMore : null}\n >\n <SvgContainer svgName={cvSvgLibrary.More} size={props.dropdownToggleSvgSize} />\n </button>\n <ul className='dropdown-menu dropdown-menu-end dropdown-menu-right font-size-normal' aria-labelledby={dropdownToggleId}>\n {isLazy ?\n <LazyDropdownItems /> :\n props.actions.map((a, idx) => {\n const showDivider = currentGroup !== undefined && currentGroup !== a.group;\n currentGroup = a.group;\n \n if (a.tooltip) {\n return (\n <li key={idx}>\n {showDivider && <hr className='dropdown-divider' role='separator'></hr>}\n <Tooltip title={a.tooltip} spanHack>\n <ActionsDropdownItem action={a} />\n </Tooltip>\n \n </li>\n );\n }\n \n return (\n <li key={idx}>\n {showDivider && <hr className='dropdown-divider' role='separator'></hr>}\n <ActionsDropdownItem action={a} />\n </li>\n );\n })\n }\n </ul>\n </div>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Badge, BadgeType } from 'libs/shared/components/badges/Badge';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\n\nimport { SvgContainer } from '../svg-container/SvgContainer';\n\nimport styles from './pill-tab-selector.scss';\n\ninterface TabContentsProps {\n tab: PillTab;\n}\n\nfunction TabContents(props: TabContentsProps): JSX.Element {\n return (\n <>\n {!!props.tab.svgName && (\n <div className={props.tab.name ? 'pe-1' : ''}>\n <SvgContainer svgName={props.tab.svgName} />\n </div>\n )}\n\n {props.tab.name}\n\n {typeof (props.tab.count) === 'number' && (\n <div className='ps-2'>\n <Badge type={BadgeType.Count} data={props.tab.count} />\n </div>\n )}\n </>\n );\n}\n\nexport interface PillTab {\n name: string;\n active: boolean;\n svgName?: string;\n\n className?: string;\n\n appLink?: Core.AppLink;\n onSelect?: () => void;\n\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n\n count?: number;\n}\n\ninterface PillTabSelectorProps {\n tabs: PillTab[];\n containerRef?: (el: HTMLElement) => void;\n listClassName?: string;\n className?: string;\n borderRadius?: 'sm' | 'lg'\n}\n\nPillTabSelector.defaultProps = {\n borderRadius: 'lg'\n};\n\nexport function PillTabSelector(props: PillTabSelectorProps): JSX.Element {\n function onSelectTab(tab: PillTab): void {\n if (tab.active || !tab.onSelect)\n return;\n\n tab.onSelect();\n\n if (tab.analyticsData && tab.analyticsOptions)\n AnalyticsHelper.logUserAction(tab.analyticsData, tab.analyticsOptions);\n }\n\n return (\n <nav className={props.className ?? ''} ref={props.containerRef}>\n <ul className={`\n list-unstyled d-inline-block m-0 ${styles.pillTabSelector}\n ${props.borderRadius ? styles.radiusSmall : ''}\n ${props.listClassName}\n `}>\n {props.tabs.map((tab, index) => {\n return (\n <li\n className={`\n p-0 ${styles.tab} ${tab.active ? 'btn btn-dark' : 'btn btn-outline-dark'}\n ${tab.name ? styles.minWidth : ''} ${tab.className}\n `}\n key={index}\n >\n {tab.appLink ? (\n <AppLink\n appLink={tab.appLink}\n analyticsData={tab.analyticsData}\n analyticsOptions={tab.analyticsOptions}\n className={`\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ${styles.tabLink}\n `}\n >\n <TabContents tab={tab} />\n </AppLink>\n ) : (\n <DivButton\n className={`\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ${styles.tabLink}\n `}\n onClick={() => onSelectTab(tab)}\n >\n <TabContents tab={tab} />\n </DivButton>\n )}\n </li>\n );\n })}\n </ul>\n </nav>\n );\n}\n","import { AnalyticsRequestFilter } from 'libs/shared/interfaces';\n\nexport function getAnalyticsRequestKey(baseKey: string, filter: AnalyticsRequestFilter, sharerId?: string): string {\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\n if (userIdKey)\n key += `:${userIdKey}`;\n\n if (groupIdKey)\n key += `:${groupIdKey}`;\n\n if (sharerId)\n key += `:${sharerId}`;\n\n return key;\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 { PillTab, PillTabSelector } from 'libs/shared/components/pill-tab-selector/PillTabSelector';\nimport { ContextService } from 'libs/shared/services/ContextService';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nconst namespace = 'share.sharesHeader';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst SHARED_BY_ME_APP_LINK = { application: AppChannels.MY_SHARES, action: Actions.MyShares.SHARED_BY_ME };\nconst SHARED_WITH_ME_APP_LINK = { application: AppChannels.MY_SHARES, action: Actions.MyShares.SHARED_WITH_ME };\n\nfunction getPillTabs(): PillTab[] {\n const currentAppLink = ContextService.getCurrentRoute()?.appLink;\n\n return [\n {\n name: getPhrase('sharedByMe'),\n onSelect: () => Core.AppLinkHelper.trigger(SHARED_BY_ME_APP_LINK),\n active: currentAppLink?.action === SHARED_BY_ME_APP_LINK.action\n },\n {\n name: getPhrase('sharedWithMe'),\n onSelect: () => Core.AppLinkHelper.trigger(SHARED_WITH_ME_APP_LINK),\n active: currentAppLink?.action === SHARED_WITH_ME_APP_LINK.action\n }\n ];\n}\n\nexport function SharesHeader(): JSX.Element {\n return (\n <div className='pb-3'>\n <h1 className='h2 mb-3'>{getPhrase('shares')}</h1>\n <PillTabSelector tabs={getPillTabs()} />\n </div>\n );\n}","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 { SharableEntity, 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 { ShareType } from 'libs/shared/enums/ShareType';\nimport { Breakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { BaseObject, UnionShareObject } 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 shareRecipients?: BaseObject[];\n viewCount: number;\n}\n\ntype TableDataGroupings = { [date: string]: SharedByMeTableData[] };\n\nexport function getColumns(\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): Column<SharedByMeTableData>[] {\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 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 return (\n <AppLink\n appLink={getObjectAppLink(value)}\n className='clamp-2'\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 );\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: 'shareRecipients',\n Cell: ({ value }) => {\n if (!value)\n return <SharedLinkAvatar />;\n\n if (!value.length)\n return <AnonymousSharedToAvatar />;\n\n return <SharedToAvatarList recipients={value} imageCdnUrl={imageCdnUrl} maxAvatars={isMobile ? 1 : 2} />;\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: BaseObject[],\n shareRecipients: BaseObject[],\n groupByDate: boolean,\n refreshTable: boolean\n): TableDataGroupings {\n return React.useMemo(() => {\n const tableData: SharedByMeTableData[] = [];\n\n sentShares.forEach(s => {\n const sharedObject = sharedObjects.find(o => o.id === 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.find(s => s.id === 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 shareRecipients: recipients,\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 }, [refreshTable]);\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 } from 'libs/shared/interfaces';\n\nimport { getColumns, useGetData } from './SharedByMeTableUtils';\n\ninterface SharedByMeTableProps {\n sentShares: UnionShareObject[];\n sharedObjects: BaseObject[];\n shareRecipients: BaseObject[];\n getObjectAppLink: (object: BaseObject) => Core.AppLink;\n getObjectActions: (object: BaseObject) => ActionOptions[];\n imageCdnUrl: string;\n groupByDateShared?: boolean;\n showStatus?: boolean;\n showViewCount?: boolean;\n refreshTable?: boolean;\n breakpoints?: Breakpoints;\n}\n\nfunction SharedByMeTableMemo(props: SharedByMeTableProps): JSX.Element {\n const data = useGetData(\n props.sentShares,\n props.sharedObjects,\n props.shareRecipients,\n !!props.groupByDateShared,\n !!props.refreshTable\n );\n\n return (\n <>\n {Object.keys(data).map((heading, index) => (\n <Table\n key={index}\n columns={getColumns(\n index,\n heading,\n props.getObjectAppLink,\n props.getObjectActions,\n props.imageCdnUrl,\n props.showStatus,\n props.showViewCount,\n props.breakpoints\n )}\n data={data[heading]}\n theme={SHARES_TABLE_THEME}\n />\n ))}\n </>\n );\n}\n\nexport const SharedByMeTable = React.memo(SharedByMeTableMemo);","import React from 'react';\n\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 { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { useSharesTable } from 'shared/hooks/useSharesTable';\n\nimport { SharesHeader } from 'apps/share/components/shares-header/SharesHeader';\n\nimport { PartialSharedByMeTable } from './partial-loading/PartialSharedByMeTable';\nimport {\n getObjectAppLink,\n useGetSharedObjectActions\n} from './SharedByMeViewUtils';\n\nconst namespace = 'liteShare.sharedByMe';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function SharedByMeView(): JSX.Element {\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 } = useSharesTable();\n\n useSetPageMetadata({ title: getPhrase('sharedByMe') });\n\n const getSharedObjectActions = useGetSharedObjectActions(breakpoints);\n\n return (\n <div className='px-3'>\n <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}\n shareRecipients={shareRecipients}\n getObjectAppLink={getObjectAppLink}\n getObjectActions={getSharedObjectActions}\n imageCdnUrl={imageCdnUrl}\n groupByDateShared\n refreshTable={isFetching}\n breakpoints={breakpoints}\n />\n {(hasMore || isFetching) &&\n <InfiniteScrollFooter isFetching={isFetching} fetchNext={fetchNext} nextCursor={nextCursor} />\n }\n </>\n );\n })()}\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"pillTabSelector\":\"Hdi6o\",\"tab\":\"RvNxr\",\"minWidth\":\"GHSz9\",\"radiusSmall\":\"VhJJa\",\"tabLink\":\"WFyvo\"};"],"names":["ShareHelper","groupByDateShared","data","dateToObjectMapping","Object","keys","sort","reverse","reduce","acc","date","heading","concat","mapActivityStatusToCheckMarkStatus","activityStatus","mapCheckMarkStatusToActivityStatus","checkMarkStatus","Actions","props","orderedActions","actions","a","b","order","buttonActions","moreActions","forEach","button","push","className","length","map","idx","key","label","appLink","href","onClick","svgName","svgSize","dropdownToggleSvgSize","tooltip","showSpinner","analyticsData","analyticsOptions","openInNewTab","disabled","iconButton","showBorder","customSize","ariaLabel","title","spanHack","sortComponent","dropdownToggleClassName","actionsDropdownClassName","fetchMore","LazyDropdownItems","style","padding","height","width","getDropdownItemClassName","actionClassName","ActionsDropdownItem","FunctionHelper","action","AppLink","SvgContainer","e","preventDefault","AnalyticsHelper","role","tabIndex","onKeyDown","ActionsDropdown","isLazy","some","lazyPlaceholder","currentGroup","dropdownToggleId","RandomHelper","type","id","size","showDivider","undefined","group","Tooltip","defaultProps","S","TabContents","tab","name","count","PillTabSelector","ref","containerRef","borderRadius","listClassName","tabs","index","active","onSelect","onSelectTab","getAnalyticsRequestKey","baseKey","filter","sharerId","start","end","userIdKey","Array","isArray","userId","join","groupIdKey","groupId","mapColourToBsVariant","groupColour","getPhrase","SHARED_BY_ME_APP_LINK","application","SHARED_WITH_ME_APP_LINK","SharesHeader","currentAppLink","LanguageService","SharedByMeEmptyState","EmptyState","src","imageUrl","useInteractiveCopy","text","getStatusPhrase","share","ShareType","status","ShareLinkStatus","getBgColourClassName","ShareStatusIndicator","recipients","isPasswordProtected","spanHackClassName","getDateShared","dateCreated","datesShared","r","dateShared","date1","date2","DateHelper","ArrayHelper","getColumns","dateHeading","getObjectAppLink","getObjectActions","imageCdnUrl","showStatus","showViewCount","breakpoints","isMobile","xs","sm","columns","Header","accessor","Cell","value","SharedObjectImage","object","showVideoMetadata","locationContext","minWidth","maxWidth","VideoHelper","canNavigate","entity","ShareViewHelper","actionType","location","Text","namespace","phrase","SharedToAvatarList","maxAvatars","s","statusColumn","viewCountColumn","splice","Boolean","SharedByMeTable","sentShares","sharedObjects","shareRecipients","groupByDate","refreshTable","tableData","sharedObject","find","o","objectId","recipient","viewCount","Table","theme","SharedByMeView","useBreakpoints","useSharesTable","isFetching","showPartialLoading","nextCursor","hasMore","fetchNext","useSetPageMetadata","getSharedObjectActions","PartialSharedByMeTable","InfiniteScrollFooter","ImageUrls"],"sourceRoot":""}
|