@clickview/lite 0.75.0-rc.0 → 0.75.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundles.json +1 -1
- package/dist/scripts/{1199-56e647318b-lite.chunk.js → 1199-a2ac2338d0-lite.chunk.js} +2 -2
- package/dist/scripts/1199-a2ac2338d0-lite.chunk.js.map +1 -0
- package/dist/scripts/4050-dd1d1b7824-lite.chunk.js +3 -0
- package/dist/scripts/4050-dd1d1b7824-lite.chunk.js.map +1 -0
- package/dist/scripts/5241-163f5ac64c-lite.chunk.js +3 -0
- package/dist/scripts/5241-163f5ac64c-lite.chunk.js.map +1 -0
- package/dist/scripts/{7252-7d8cfa863b-lite.chunk.js → 7252-367b621695-lite.chunk.js} +3 -3
- package/dist/scripts/{7252-7d8cfa863b-lite.chunk.js.map → 7252-367b621695-lite.chunk.js.map} +1 -1
- package/dist/scripts/8723-0e2d0ac241-lite.chunk.js +3 -0
- package/dist/scripts/8723-0e2d0ac241-lite.chunk.js.map +1 -0
- package/dist/scripts/bundle-95a6fc2722.min.js +3 -0
- package/dist/scripts/{bundle-ab6b7dc985.min.js.map → bundle-95a6fc2722.min.js.map} +1 -1
- package/package.json +1 -1
- package/dist/scripts/1199-56e647318b-lite.chunk.js.map +0 -1
- package/dist/scripts/4050-7bda75f544-lite.chunk.js +0 -3
- package/dist/scripts/4050-7bda75f544-lite.chunk.js.map +0 -1
- package/dist/scripts/5241-ec9b0f642f-lite.chunk.js +0 -3
- package/dist/scripts/5241-ec9b0f642f-lite.chunk.js.map +0 -1
- package/dist/scripts/8723-7802a8728e-lite.chunk.js +0 -3
- package/dist/scripts/8723-7802a8728e-lite.chunk.js.map +0 -1
- package/dist/scripts/bundle-ab6b7dc985.min.js +0 -3
- /package/dist/scripts/{4050-7bda75f544-lite.chunk.js.LICENSE.txt → 4050-dd1d1b7824-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{5241-ec9b0f642f-lite.chunk.js.LICENSE.txt → 5241-163f5ac64c-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{7252-7d8cfa863b-lite.chunk.js.LICENSE.txt → 7252-367b621695-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{8723-7802a8728e-lite.chunk.js.LICENSE.txt → 8723-0e2d0ac241-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{bundle-ab6b7dc985.min.js.LICENSE.txt → bundle-95a6fc2722.min.js.LICENSE.txt} +0 -0
package/dist/bundles.json
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[1199],{93479:(e,t,n)=>{n.d(t,{I:()=>c});var r=n(99940);function a(e,t,n){if(!t)return e;var r="".concat(e,":").concat(t.start,":").concat(t.end),a=Array.isArray(t.userId)?t.userId.sort().join(":"):t.userId,i=Array.isArray(t.groupId)?t.groupId.sort().join(":"):t.groupId,c=Array.isArray(t.customerId)?t.customerId.sort().join(":"):t.customerId;return a&&(r+=":".concat(a)),i&&(r+=":".concat(i)),c&&(r+=":".concat(c)),n&&(r+=":".concat(n)),r}function i(e,t){return{currentUserId:e.id,currentCustomerId:e.customerId,dateRange:t?{start:t.start,end:t.end}:void 0,userIds:null==t?void 0:t.userId,classroomsAndGroups:null==t?void 0:t.groupId}}var c={interactiveResultSet:function(e,t,n,c,o,l,s,u){return{url:o?"/api/domain/v3/analytics/interactives/".concat(e,"/metadata/").concat(t):"/api/domain/v2/analytics/interactives/".concat(e,"/metadata/").concat(t),key:a("interactive:result:set:".concat(e,":").concat(t),c),data:i(n,c),type:r.k.POST,normalize:!1,success:l,error:s,always:u}},mark:function(e,t,n,a,i,c,o){return{url:"/api/domain/v1/analytics/answers/".concat(n),key:"mark:answer:".concat(n,":").concat(a.resultId),type:r.k.PUT,data:a,normalize:!1,invalidationKeys:"interactive:result:set:".concat(e,":").concat(t),success:i,error:c,always:o}},pendingReviews:function(e){return{url:"/api/domain/v1/analytics/interactives/pending-reviews/summary",key:"interactives:pending:reviews",type:r.k.POST,data:e}},interactiveResultsReport:function(e){return{url:"/api/domain/v3/analytics/interactives/report",key:"interactive:results:report",data:e,type:r.k.POST,normalize:!1}}}},18488:(e,t,n)=>{n.d(t,{o:()=>c});var r=n(99940),a=n(97395),i={namespace:"share-v2"},c={createShare:function(e){return{url:"{gateway}/v2/shares",key:"create:share-v2",type:r.k.POST,data:e,normalizeOptions:i,invalidationKeys:["sent:share-v2","get:share-v2:shares:object:".concat(e.objectId)]}},updateShare:function(e,t){return{url:"{gateway}/v2/shares/".concat(e),key:"update:share-v2",type:r.k.PUT,data:t,normalizeOptions:i,invalidationKeys:["share-v2:permanent-link:object","share-v2:".concat(e)]}},deleteShare:function(e){return{type:r.k.DELETE,url:"{gateway}/v2/shares/".concat(e),key:"delete:share-v2",normalizeOptions:i,invalidationKeys:["share-v2:permanent-link:object","sent:share-v2","share-v2:".concat(e)]}},getShare:function(e){return{url:"{gateway}/v2/shares/".concat(e),key:"share-v2:".concat(e),bootstrapName:"share-v2:".concat(e),type:r.k.GET,normalizeOptions:i}},getSentShares:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=Object.values(e).sort().join(":");return{url:a._.urlBuilder("{gateway}/v2/shares/sent",e),key:"sent:share-v2:".concat(t),type:r.k.GET,normalize:!1}},getShareLink:function(e){return{url:a._.urlBuilder("{gateway}/v2/shares/permanent-link",{objectId:e}),key:"share-v2:permanent-link:object:".concat(e),normalizeOptions:i}},createShareLink:function(e){return{type:r.k.POST,url:a._.urlBuilder("{gateway}/v2/shares/permanent-link",Object.assign({},e)),key:"create:share-v2:permanent-link:object:".concat(e.objectId),invalidationKeys:["share-v2:permanent-link:object:".concat(e.objectId),"sent:share-v2"],normalizeOptions:i}},getPrivacy:function(e){return{url:"{gateway}/v1/objects/".concat(e,"/access"),key:"privacy:".concat(e),normalize:!1}},getSharesByObjectId:function(e){return{url:"{gateway}/v2/shares/objects/".concat(e),key:"get:share-v2:shares:object:".concat(e),type:r.k.GET,normalizeOptions:i}},createSharePincode:function(e){return{url:"{gateway}/v2/shares/".concat(e,"/pincode"),key:"create:share-v2:".concat(e,":pincode"),type:r.k.POST}},getPincodeByShareId:function(e){return{url:"{gateway}/v2/shares/".concat(e,"/pincode"),key:"get:share-v2:".concat(e,":pincode")}},getPincodeByCode:function(e){return{url:"{gateway}/v2/shares/pincode?code=".concat(e),key:"get:share-v2:pincode:".concat(e)}}}},31754:(e,t,n)=>{n.d(t,{x:()=>o});var r=n(82602),a=n(75896),i=n(41859),c=n(11576),o={groupByDateShared:function(e){var t=a.m.groupBy(e,"dateShared");return Object.keys(t).sort().reverse().reduce((function(e,n){var a=(0,r.WU)(n);return e[a]||(e[a]=[]),e[a]=e[a].concat(t[n]),e}),{})},mapActivityStatusToCheckMarkStatus:function(e){switch(e){case c.T.Complete:return i.h.Complete;case c.T.Incomplete:return i.h.Incomplete;case c.T.None:return i.h.None}},mapCheckMarkStatusToActivityStatus:function(e){switch(e){case i.h.Complete:return c.T.Complete;case i.h.Incomplete:return c.T.Incomplete;case i.h.None:return c.T.None}}}},39902:(e,t,n)=>{n.d(t,{FN:()=>f,SW:()=>p,fh:()=>v});var r=n(32735),a=n(20354),i=n(75896);function c(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)||o(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(e,t){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}}function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function s(e){return s="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},s(e)}function u(e,t,n){return(t=function(e){var t=function(e){if("object"!=s(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=s(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==s(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var d=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n},m=50;function v(e,t){var n=i.m.chunk(e,m).map((function(e){return t(i.m.uniq(e))})),r=a.a.useBasicFetchAll(n),c=i.m.flatten(r.data),o=r.data.length?c.reduce((function(e,t){return Object.assign(Object.assign({},e),u({},t.id,t))}),{}):null;return{itemsArr:c,items:o,isFetching:r.isFetching,hasCompleted:r.hasCompleted}}function f(e,t,n){var a=null!=n?n:function(e){return"object"===s(e)?e.id:e},i=p({getRequest:t,_getKey:n}),c=i.fetchItems,o=d(i,["fetchItems"]);return r.useEffect((function(){(null==e?void 0:e.length)&&c(e)}),[null==e?void 0:e.map(a).join(",")]),o}function p(e){var t,n,l,d,v,f=null!==(t=e._getKey)&&void 0!==t?t:function(e){return"object"===s(e)?e.id:e},p=r.useRef(new Set),h=(d=r.useState([]),v=2,function(e){if(Array.isArray(e))return e}(d)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,c,o=[],l=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=i.call(n)).done)&&(o.push(r.value),o.length!==t);l=!0);}catch(e){s=!0,a=e}finally{try{if(!l&&null!=n.return&&(c=n.return(),Object(c)!==c))return}finally{if(s)throw a}}return o}}(d,v)||o(d,v)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),y=h[0],g=h[1],b=a.a.useBasicFetchAll(y),E=i.m.flatten(b.data),S=b.data.length?E.reduce((function(e,t){return Object.assign(Object.assign({},e),u({},f(t),t))}),{}):null;return{hasFirstRequestCompleted:!!(null===(l=null===(n=b.responses)||void 0===n?void 0:n[0])||void 0===l?void 0:l.hasCompleted),itemsArr:E,items:S,isFetching:b.isFetching,fetchItems:function(t){if(null==t?void 0:t.length){var n=[];t.forEach((function(e){var t=f(e);p.current.has(t)||(n.push(e),p.current.add(t))})),n.length&&g((function(t){return[].concat(c(t),c(i.m.chunk(n,m).map(e.getRequest)))}))}}}}},60115:(e,t,n)=>{n.d(t,{K:()=>s});var r=n(32735),a=n(50242),i=n(91967),c=400,o=n(45719);function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function s(e,t,n,s,u,d){var m,v,f,p,h=(m=(0,r.useState)(0),v=2,function(e){if(Array.isArray(e))return e}(m)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,c,o=[],l=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=i.call(n)).done)&&(o.push(r.value),o.length!==t);l=!0);}catch(e){s=!0,a=e}finally{try{if(!l&&null!=n.return&&(c=n.return(),Object(c)!==c))return}finally{if(s)throw a}}return o}}(m,v)||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}}(m,v)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),y=h[0],g=h[1],b=t,E=(0,o.P)((function(t){if(!e)return null;var n=e(t);return n?n.key:null}),s,u);return f={fetchNextPage:function(){if(t&&e&&E)return g((function(e){return e+1})),b(E.nextCursor)},hasMore:!!(null==E?void 0:E.nextCursor),isFetching:null==E?void 0:E.isFetching,scrollContainer:d},p=function(){if(!f.isFetching){if(f.scrollContainer){var e=f.scrollContainer;if(e.getBoundingClientRect().height+e.scrollTop<e.scrollHeight-c)return}else if(window.innerHeight+document.documentElement.scrollTop<document.documentElement.scrollHeight-c)return;f.fetchNextPage()}},(0,r.useEffect)((function(){var e=i.q.throttle(p,200),t=f.scrollContainer||window;return f.hasMore&&t.addEventListener("scroll",e),function(){return t.removeEventListener("scroll",e)}}),[f.hasMore,f.fetchNextPage,f.scrollContainer]),(0,r.useEffect)((function(){E&&E.shouldInitialFetch&&t&&(b(),g((function(e){return e+1})))}),[null==E?void 0:E.shouldInitialFetch,t]),(0,r.useEffect)((function(){var e,t;if((null==E?void 0:E.statusCode)&&i.q.isFunction(n)){var r=+(null===(t=null===(e=E.statusCode)||void 0===e?void 0:e.toString())||void 0===t?void 0:t.substr(0,1));r!==a.k.ClientError&&r!==a.k.ServerError||n(y,E.statusCode)}}),[null==E?void 0:E.statusCode]),{items:null==E?void 0:E.items,hasMore:!!(null==E?void 0:E.nextCursor),nextCursor:null==E?void 0:E.nextCursor,isFetching:null==E?void 0:E.isFetching,totalItems:null==E?void 0:E.totalItems,hasFirstPageCompleted:null==E?void 0:E.hasFirstPageCompleted}}},15474:(e,t,n)=>{n.d(t,{g:()=>F,F:()=>A});var r=n(32735),a=n(65858),i=n(9806),c=n(65359),o=n(23481),l=n(110),s=n(21789),u=n(36532);const d={indicator:"sybF_"};function m(e){return m="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},m(e)}function v(e,t,n){return(t=function(e){var t=function(e){if("object"!=m(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=m(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==m(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var f,p=o.T.encloseNamespace("share-v2.shareStatusIndicator");!function(e){e[e.Active=0]="Active",e[e.Expired=1]="Expired",e[e.MarkingRequired=2]="MarkingRequired"}(f||(f={}));var h=v(v(v({},f.Active,(function(){return p("activeStatusLabel")})),f.Expired,(function(){return p("expiredStatusLabel")})),f.MarkingRequired,(function(){return p("markingRequiredStatusLabel")})),y=v(v(v({},f.Active,"bg-success"),f.Expired,"bg-danger"),f.MarkingRequired,"bg-blue"),g=v(v(v({},f.Active,(function(){return p("activeStatusTooltip")})),f.Expired,(function(){return p("expiredStatusTooltip")})),f.MarkingRequired,(function(){return p("markingRequiredStatusTooltip")}));function b(e){var t=function(e){return e.markingRequired?f.MarkingRequired:s.x.hasShareExpired(e.share)?f.Expired:f.Active}(e),n=function(e,t){if(e===f.Active&&t){var n=l.O.convertUTCToLocal(t),r=l.O.format(n,"MMMM Do");return p("expiryTooltip",{date:r})}return g[e]()}(t,e.share.expireDate),a=y[t];return r.createElement(u.u,{title:n,spanHack:!0,spanHackClassName:"d-inline-flex"},r.createElement("div",{className:"d-flex align-items-center"},r.createElement("div",{className:"".concat(d.indicator," ").concat(a," me-2 flex-shrink-0")}),function(){var n=h[t](),a=e.share.expireDate;if(t===f.Active&&a){var i=s.x.calculateDaysToExpiry(e.share),c=p("expiryHint",{smartCount:i});return r.createElement("p",{className:"mb-0"},n," · ",c)}return r.createElement("p",{className:"mb-0"},n)}()))}var E=n(76306),S=n(15611),k=n(83914),N=n(83345),w=n(54610),I=n(4594),x=n(35223),C=n(86099);const j={thumbnailContainer:"XNQc8",tableRow:"R3dYa",viewCta:"ssCq6"};var O="myShares.tableRow";function F(e){return r.createElement("div",{className:"d-flex"},r.createElement("div",{className:"col-auto ".concat(j.thumbnailContainer)},r.createElement("p",{className:"fw-semibold mb-2"},e.heading)),r.createElement("div",{className:"".concat(e.isFirst?"d-flex":"d-none"," col align-items-center")},r.createElement("div",{className:"col-10 col-md-4"}),r.createElement("div",{className:"d-none d-md-flex col-6"},r.createElement("div",{className:"col-4"},r.createElement("p",{className:"fw-semibold mb-2"},r.createElement(N.x,{namespace:O,phrase:"viewsHeading"}))),r.createElement("div",{className:"col-3"},r.createElement("p",{className:"fw-semibold mb-2"},r.createElement(N.x,{namespace:O,phrase:"viewedByHeading"}))),r.createElement("div",{className:"col-5"},r.createElement("p",{className:"fw-semibold mb-2"},r.createElement(N.x,{namespace:O,phrase:"statusHeading"})))),r.createElement("div",{className:"col-2"})))}function A(e){var t,n=e.shareData,o=n.sharedObject,l=o.typeId===I.E.Playlist||o.typeId===I.E.Series,s=(0,C.pY)(n.share);return r.createElement("div",{className:"position-relative hover-bg-light-blue ".concat(j.tableRow," ").concat(null!==(t=e.className)&&void 0!==t?t:"")},r.createElement(S.F,{appLink:s,className:"p-2 cursor-pointer d-flex text-decoration-none"},r.createElement("div",{className:"col-auto ".concat(j.thumbnailContainer)},r.createElement(i.k,{object:o,showVideoMetadata:!0,locationContext:a.LZ.MyShares,imageOptions:{size:w.h2.Medium},showCollectionMask:!1,showVideoCount:!0})),r.createElement("div",{className:"col d-flex align-items-center"},r.createElement("div",{className:"px-3 col-10 col-md-4"},r.createElement(c.F,{sharedObject:n.sharedObject})),r.createElement("div",{className:"d-none d-md-flex col-6"},r.createElement("div",{className:"col-4"},l?r.createElement("p",{className:"mb-0"},"-"):r.createElement("p",{className:"mb-0"},r.createElement(N.x,{namespace:O,phrase:"views",options:{smartCount:n.share.viewCount}}))),r.createElement("div",{className:"col-3"},l?r.createElement("p",{className:"mb-0"},"-"):r.createElement("div",{className:"d-flex align-items-center"},r.createElement(k.x,{svgName:x.vn.User,size:k.S.Standard,className:"me-2 svg-container"}),r.createElement("p",{className:"mb-0"},n.share.accessCount))),r.createElement("div",{className:"col-5"},r.createElement(b,{share:n.share,markingRequired:n.pendingReview>0}))))),r.createElement("div",{className:"position-absolute end-0 top-0 bottom-0 d-flex align-items-center pe-2"},r.createElement(S.F,{appLink:s,className:"me-4 text-info d-none ".concat(j.viewCta)},r.createElement(N.x,{namespace:O,phrase:"viewCta"})),r.createElement(E.m,{dropdownToggleSvgSize:k.S.Standard,actions:e.getObjectActions(n),dropdownToggleClassName:"btn btn-link"})))}},5056:(e,t,n)=>{n.d(t,{R:()=>p});var r=n(32735),a=n(23481),i=n(75896),c=n(110),o=n(31754),l=n(2510),s=n(4594);function u(e){return u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},u(e)}function d(e,t,n){return(t=function(e){var t=function(e){if("object"!=u(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=u(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==u(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var m=a.T.encloseNamespace("myShares.mySharesTable");function v(e){var t;if(e.type===l.y.Link||!(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.dateCreated}));return n.length?(n.sort((function(e,t){return c.O.isSame(e,t)?0:c.O.isAfter(e,t)?1:-2})),i.m.last(n)):""}var f=n(15474);function p(e){var t,n,a,i,c,u,p,h=(t=e.sentShares,n=e.sharedObjects,a=e.shareRecipients,i=!!e.groupByDateShared,c=e.interactivesPendingReview,u=[],p=null==c?void 0:c.reduce((function(e,t){return Object.assign(d({},t.interactiveId,t),e)}),{}),t.forEach((function(e){var t,r=null==n?void 0:n[e.objectId],i=null;if(e.type===l.y.Classroom&&(i=[],null===(t=e.recipients)||void 0===t||t.forEach((function(e){var t=null==a?void 0:a[e.recipientId];t&&i.push(t)}))),r){var c=r.typeId===s.E.Interactive&&(null==p?void 0:p[r.interactiveId]);u.push({share:e,sharedObject:r,shareRecipients:i,dateShared:v(e),pendingReview:null==c?void 0:c.pendingReviewCount,privacy:e.privacy})}})),i?o.x.groupByDateShared(u):d({},m("title"),u));return r.createElement(r.Fragment,null,Object.keys(h).map((function(t,n){return r.createElement("div",{key:t},r.createElement(f.g,{heading:t,isFirst:!e.hasDemoInsights&&0===n}),r.createElement("div",{className:"d-flex flex-column mb-4"},h[t].map((function(t){return r.createElement(f.F,{key:t.share.shareId,shareData:t,getObjectActions:e.getObjectActions,breakpoints:e.breakpoints,imageCdnUrl:e.imageCdnUrl,yearGroups:e.yearGroups})}))))})))}},67467:(e,t,n)=>{n.d(t,{o:()=>u});var r=n(32735),a=n(23481),i=n(97958),c=n(99742),o=n(14070),l=n(97291),s=a.T.encloseNamespace("myShares.mySharesTableEmptyState");function u(){return r.createElement(i.u,null,r.createElement(i.u.Image,{src:c.W.EmptyStates.Share.SHARED_BY_ME,size:"small"}),r.createElement(i.u.Heading,null,s("heading")),r.createElement(i.u.Info,null,s("info")),r.createElement(i.u.Cta,{appLink:{application:l.O.DASHBOARD,action:o.e.Dashboard.HOME},text:s("cta")}))}},28001:(e,t,n)=>{n.d(t,{L:()=>o});var r=n(32735);const a={heading:"iWHol",thumbnailContainer:"zrcDh"};function i(e){return r.createElement("div",{className:"d-flex"},r.createElement("div",{className:"col-auto ".concat(a.thumbnailContainer)},r.createElement("div",{className:"partial-loading-background mb-2"}," ")),r.createElement("div",{className:"".concat(e.isFirst?"d-flex":"d-none"," col align-items-center")},r.createElement("div",{className:"col-10 col-md-4"}),r.createElement("div",{className:"d-none d-md-flex col-6"},r.createElement("div",{className:"col-4"},r.createElement("div",{className:"partial-loading-background mb-2 ".concat(a.heading)}," ")),r.createElement("div",{className:"col-3"},r.createElement("div",{className:"partial-loading-background mb-2 ".concat(a.heading)}," ")),r.createElement("div",{className:"col-5"},r.createElement("div",{className:"partial-loading-background mb-2 ".concat(a.heading)}," "))),r.createElement("div",{className:"col-2"})))}function c(){return r.createElement("div",{className:"p-2 d-flex"},r.createElement("div",{className:"col-auto ".concat(a.thumbnailContainer)},r.createElement("div",{className:"partial-loading-background rounded ratio ratio-16x9"})),r.createElement("div",{className:"col d-flex align-items-center"},r.createElement("div",{className:"px-3 col-10 col-md-4"},r.createElement("div",{className:"partial-loading-background w-75"}," ")),r.createElement("div",{className:"d-none d-md-flex col-6"},r.createElement("div",{className:"col-4"},r.createElement("div",{className:"partial-loading-background w-50"}," ")),r.createElement("div",{className:"col-3"},r.createElement("div",{className:"partial-loading-background w-50"}," ")),r.createElement("div",{className:"col-5"},r.createElement("div",{className:"partial-loading-background w-75"}," "))),r.createElement("div",{className:"col-2 d-flex justify-content-end align-items-center"},r.createElement("div",{className:"partial-loading-background w-25"}," "))))}function o(){return r.createElement(r.Fragment,null,r.createElement("div",null,r.createElement(i,{isFirst:!0}),r.createElement("div",{className:"d-flex flex-column rounded-3 mb-4 border"},r.createElement(c,null),r.createElement(c,null),r.createElement(c,null),r.createElement(c,null))),r.createElement("div",null,r.createElement(i,null),r.createElement("div",{className:"d-flex flex-column rounded-3 mb-4 border"},r.createElement(c,null),r.createElement(c,null),r.createElement(c,null),r.createElement(c,null))),r.createElement("div",null,r.createElement(i,null),r.createElement("div",{className:"d-flex flex-column rounded-3 mb-4 border"},r.createElement(c,null),r.createElement(c,null),r.createElement(c,null),r.createElement(c,null),r.createElement(c,null),r.createElement(c,null),r.createElement(c,null),r.createElement(c,null),r.createElement(c,null),r.createElement(c,null))))}},98623:(e,t,n)=>{n.d(t,{a:()=>p});var r=n(20354),a=n(1048),i=n(93479),c=n(30439),o=n(18488),l=n(21789),s=n(39151),u=n(1666),d=n(31949),m=n(39902),v=n(60115),f=n(31908);function p(e){var t,n,p=e.params,h=e.interactiveInsights,y=e.shouldFetch,g=r.a.useGetFetch(),b=r.a.useBasicFetch(d.N.currentUser()),E=r.a.useBasicFetch(s.L.config()),S=r.a.useBasicFetch((null===(t=b.data)||void 0===t?void 0:t.isAuthenticated)&&u.h.yearGroups(b.data.customerId)),k=function(e){return y&&o.o.getSentShares(Object.assign({cursor:e},p))},N=function(e){return g(k(e))},w=(0,v.K)(k,N),I=w.items,x=w.hasMore,C=w.isFetching,j=w.nextCursor,O=w.hasFirstPageCompleted,F=(0,m.FN)(null==I?void 0:I.map((function(e){return e.objectId.toString()})),c.o.sharedObjectsById),A=(0,m.FN)(l.x.getFlattenedRecipients(null!=I?I:[]).map((function(e){return e.recipientId.toString()})),(function(e){return c.o.getRecipientsById(e,b.data.customerId)})),T=(0,m.FN)(h?a.t.values(F.items||[]):[],(function(e){return i.I.pendingReviews({interactives:e.filter(f.M.isInteractive).map((function(e){return{interactiveId:e.interactiveId,metadataId:e.id}})),filters:{currentCustomerId:b.data.customerId,currentUserId:b.data.id}})}),(function(e){return"".concat(e.id,":").concat("interactiveId"in e?e.interactiveId:"")})),R=C||F.isFetching||A.isFetching||T.isFetching||S.isFetching,P=!O||(null==I?void 0:I.length)&&!F.hasFirstRequestCompleted;return{sentShares:I,sharedObjects:F,shareRecipients:A,yearGroups:S.data,interactivesPendingReview:T,isFetching:R,showPartialLoading:P,nextCursor:j,hasMore:x,fetchNext:N,imageCdnUrl:null===(n=E.data)||void 0===n?void 0:n.imageCdnUrl}}},82602:(e,t,n)=>{n.d(t,{WU:()=>s});var r=["second","minute","hour","day","week","month","year"],a=["秒","分钟","小时","天","周","个月","年"],i={},c=function(e,t){i[e]=t},o=[60,60,24,7,365/7/12,12];function l(e){return e instanceof Date?e:!isNaN(e)||/^\d+$/.test(e)?new Date(parseInt(e)):(e=(e||"").trim().replace(/\.\d+/,"").replace(/-/,"/").replace(/-/,"/").replace(/(\d)T(\d)/,"$1 $2").replace(/Z/," UTC").replace(/([+-]\d\d):?(\d\d)/," $1$2"),new Date(e))}var s=function(e,t,n){var r=function(e,t){return(+(t?l(t):new Date)-+l(e))/1e3}(e,n&&n.relativeDate);return function(e,t){for(var n=e<0?1:0,r=e=Math.abs(e),a=0;e>=o[a]&&a<o.length;a++)e/=o[a];return(e=Math.floor(e))>(0==(a*=2)?9:1)&&(a+=1),t(e,a,r)[n].replace("%s",e.toString())}(r,function(e){return i[e]||i.en_US}(t))};c("en_US",(function(e,t){if(0===t)return["just now","right now"];var n=r[Math.floor(t/2)];return e>1&&(n+="s"),[e+" "+n+" ago","in "+e+" "+n]})),c("zh_CN",(function(e,t){if(0===t)return["刚刚","片刻后"];var n=a[~~(t/2)];return[e+" "+n+"前",e+" "+n+"后"]}))}}]);
|
|
2
|
-
//# sourceMappingURL=1199-
|
|
1
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[1199],{93479:(e,t,n)=>{n.d(t,{I:()=>c});var r=n(99940);function a(e,t,n){if(!t)return e;var r="".concat(e,":").concat(t.start,":").concat(t.end),a=Array.isArray(t.userId)?t.userId.sort().join(":"):t.userId,i=Array.isArray(t.groupId)?t.groupId.sort().join(":"):t.groupId,c=Array.isArray(t.customerId)?t.customerId.sort().join(":"):t.customerId;return a&&(r+=":".concat(a)),i&&(r+=":".concat(i)),c&&(r+=":".concat(c)),n&&(r+=":".concat(n)),r}function i(e,t){return{currentUserId:e.id,currentCustomerId:e.customerId,dateRange:t?{start:t.start,end:t.end}:void 0,userIds:null==t?void 0:t.userId,classroomsAndGroups:null==t?void 0:t.groupId}}var c={interactiveResultSet:function(e,t,n,c,o,l,s,u){return{url:o?"/api/domain/v3/analytics/interactives/".concat(e,"/metadata/").concat(t):"/api/domain/v2/analytics/interactives/".concat(e,"/metadata/").concat(t),key:a("interactive:result:set:".concat(e,":").concat(t),c),data:i(n,c),type:r.k.POST,normalize:!1,success:l,error:s,always:u}},mark:function(e,t,n,a,i,c,o){return{url:"/api/domain/v1/analytics/answers/".concat(n),key:"mark:answer:".concat(n,":").concat(a.resultId),type:r.k.PUT,data:a,normalize:!1,invalidationKeys:"interactive:result:set:".concat(e,":").concat(t),success:i,error:c,always:o}},pendingReviews:function(e){return{url:"/api/domain/v1/analytics/interactives/pending-reviews/summary",key:"interactives:pending:reviews",type:r.k.POST,data:e}},interactiveResultsReport:function(e){return{url:"/api/domain/v3/analytics/interactives/report",key:"interactive:results:report",data:e,type:r.k.POST,normalize:!1}}}},18488:(e,t,n)=>{n.d(t,{o:()=>c});var r=n(99940),a=n(97395),i={namespace:"share-v2"},c={createShare:function(e){return{url:"{gateway}/v2/shares",key:"create:share-v2",type:r.k.POST,data:e,normalizeOptions:i,invalidationKeys:["sent:share-v2","get:share-v2:shares:object:".concat(e.objectId)]}},updateShare:function(e,t){return{url:"{gateway}/v2/shares/".concat(e),key:"update:share-v2",type:r.k.PUT,data:t,normalizeOptions:i,invalidationKeys:["share-v2:permanent-link:object","share-v2:".concat(e)]}},deleteShare:function(e){return{type:r.k.DELETE,url:"{gateway}/v2/shares/".concat(e),key:"delete:share-v2",normalizeOptions:i,invalidationKeys:["share-v2:permanent-link:object","sent:share-v2","share-v2:".concat(e)]}},getShare:function(e){return{url:"{gateway}/v2/shares/".concat(e),key:"share-v2:".concat(e),bootstrapName:"share-v2:".concat(e),type:r.k.GET,normalizeOptions:i}},getSentShares:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=Object.values(e).sort().join(":");return{url:a._.urlBuilder("{gateway}/v2/shares/sent",e),key:"sent:share-v2:".concat(t),type:r.k.GET,normalize:!1}},getShareLink:function(e){return{url:a._.urlBuilder("{gateway}/v2/shares/permanent-link",{objectId:e}),key:"share-v2:permanent-link:object:".concat(e),normalizeOptions:i}},createShareLink:function(e){return{type:r.k.POST,url:a._.urlBuilder("{gateway}/v2/shares/permanent-link",Object.assign({},e)),key:"create:share-v2:permanent-link:object:".concat(e.objectId),invalidationKeys:["share-v2:permanent-link:object:".concat(e.objectId),"sent:share-v2"],normalizeOptions:i}},getPrivacy:function(e){return{url:"{gateway}/v1/objects/".concat(e,"/access"),key:"privacy:".concat(e),normalize:!1}},getSharesByObjectId:function(e){return{url:"{gateway}/v2/shares/objects/".concat(e),key:"get:share-v2:shares:object:".concat(e),type:r.k.GET,normalizeOptions:i}},createSharePincode:function(e){return{url:"{gateway}/v2/shares/".concat(e,"/pincode"),key:"create:share-v2:".concat(e,":pincode"),type:r.k.POST}},getPincodeByShareId:function(e){return{url:"{gateway}/v2/shares/".concat(e,"/pincode"),key:"get:share-v2:".concat(e,":pincode")}},getPincodeByCode:function(e){return{url:"{gateway}/v2/shares/pincode?code=".concat(e),key:"get:share-v2:pincode:".concat(e)}}}},31754:(e,t,n)=>{n.d(t,{x:()=>o});var r=n(82602),a=n(75896),i=n(41859),c=n(11576),o={groupByDateShared:function(e){var t=a.m.groupBy(e,"dateShared");return Object.keys(t).sort().reverse().reduce((function(e,n){var a=(0,r.WU)(n);return e[a]||(e[a]=[]),e[a]=e[a].concat(t[n]),e}),{})},mapActivityStatusToCheckMarkStatus:function(e){switch(e){case c.T.Complete:return i.h.Complete;case c.T.Incomplete:return i.h.Incomplete;case c.T.None:return i.h.None}},mapCheckMarkStatusToActivityStatus:function(e){switch(e){case i.h.Complete:return c.T.Complete;case i.h.Incomplete:return c.T.Incomplete;case i.h.None:return c.T.None}}}},39902:(e,t,n)=>{n.d(t,{FN:()=>f,SW:()=>p,fh:()=>v});var r=n(32735),a=n(20354),i=n(75896);function c(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)||o(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(e,t){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}}function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function s(e){return s="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},s(e)}function u(e,t,n){return(t=function(e){var t=function(e){if("object"!=s(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=s(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==s(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var d=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n},m=50;function v(e,t){var n=i.m.chunk(e,m).map((function(e){return t(i.m.uniq(e))})),r=a.a.useBasicFetchAll(n),c=i.m.flatten(r.data),o=r.data.length?c.reduce((function(e,t){return Object.assign(Object.assign({},e),u({},t.id,t))}),{}):null;return{itemsArr:c,items:o,isFetching:r.isFetching,hasCompleted:r.hasCompleted}}function f(e,t,n){var a=null!=n?n:function(e){return"object"===s(e)?e.id:e},i=p({getRequest:t,_getKey:n}),c=i.fetchItems,o=d(i,["fetchItems"]);return r.useEffect((function(){(null==e?void 0:e.length)&&c(e)}),[null==e?void 0:e.map(a).join(",")]),o}function p(e){var t,n,l,d,v,f=null!==(t=e._getKey)&&void 0!==t?t:function(e){return"object"===s(e)?e.id:e},p=r.useRef(new Set),h=(d=r.useState([]),v=2,function(e){if(Array.isArray(e))return e}(d)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,c,o=[],l=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=i.call(n)).done)&&(o.push(r.value),o.length!==t);l=!0);}catch(e){s=!0,a=e}finally{try{if(!l&&null!=n.return&&(c=n.return(),Object(c)!==c))return}finally{if(s)throw a}}return o}}(d,v)||o(d,v)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),y=h[0],g=h[1],b=a.a.useBasicFetchAll(y),E=i.m.flatten(b.data),S=b.data.length?E.reduce((function(e,t){return Object.assign(Object.assign({},e),u({},f(t),t))}),{}):null;return{hasFirstRequestCompleted:!!(null===(l=null===(n=b.responses)||void 0===n?void 0:n[0])||void 0===l?void 0:l.hasCompleted),itemsArr:E,items:S,isFetching:b.isFetching,fetchItems:function(t){if(null==t?void 0:t.length){var n=[];t.forEach((function(e){var t=f(e);p.current.has(t)||(n.push(e),p.current.add(t))})),n.length&&g((function(t){return[].concat(c(t),c(i.m.chunk(n,m).map(e.getRequest)))}))}}}}},60115:(e,t,n)=>{n.d(t,{K:()=>s});var r=n(32735),a=n(50242),i=n(91967),c=400,o=n(45719);function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function s(e,t,n,s,u,d){var m,v,f,p,h=(m=(0,r.useState)(0),v=2,function(e){if(Array.isArray(e))return e}(m)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,c,o=[],l=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=i.call(n)).done)&&(o.push(r.value),o.length!==t);l=!0);}catch(e){s=!0,a=e}finally{try{if(!l&&null!=n.return&&(c=n.return(),Object(c)!==c))return}finally{if(s)throw a}}return o}}(m,v)||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}}(m,v)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),y=h[0],g=h[1],b=t,E=(0,o.P)((function(t){if(!e)return null;var n=e(t);return n?n.key:null}),s,u);return f={fetchNextPage:function(){if(t&&e&&E)return g((function(e){return e+1})),b(E.nextCursor)},hasMore:!!(null==E?void 0:E.nextCursor),isFetching:null==E?void 0:E.isFetching,scrollContainer:d},p=function(){if(!f.isFetching){if(f.scrollContainer){var e=f.scrollContainer;if(e.getBoundingClientRect().height+e.scrollTop<e.scrollHeight-c)return}else if(window.innerHeight+document.documentElement.scrollTop<document.documentElement.scrollHeight-c)return;f.fetchNextPage()}},(0,r.useEffect)((function(){var e=i.q.throttle(p,200),t=f.scrollContainer||window;return f.hasMore&&t.addEventListener("scroll",e),function(){return t.removeEventListener("scroll",e)}}),[f.hasMore,f.fetchNextPage,f.scrollContainer]),(0,r.useEffect)((function(){E&&E.shouldInitialFetch&&t&&(b(),g((function(e){return e+1})))}),[null==E?void 0:E.shouldInitialFetch,t]),(0,r.useEffect)((function(){var e,t;if((null==E?void 0:E.statusCode)&&i.q.isFunction(n)){var r=+(null===(t=null===(e=E.statusCode)||void 0===e?void 0:e.toString())||void 0===t?void 0:t.substr(0,1));r!==a.k.ClientError&&r!==a.k.ServerError||n(y,E.statusCode)}}),[null==E?void 0:E.statusCode]),{items:null==E?void 0:E.items,hasMore:!!(null==E?void 0:E.nextCursor),nextCursor:null==E?void 0:E.nextCursor,isFetching:null==E?void 0:E.isFetching,totalItems:null==E?void 0:E.totalItems,hasFirstPageCompleted:null==E?void 0:E.hasFirstPageCompleted}}},15474:(e,t,n)=>{n.d(t,{g:()=>F,F:()=>A});var r=n(32735),a=n(65858),i=n(9806),c=n(65359),o=n(23481),l=n(110),s=n(21789),u=n(36532);const d={indicator:"sybF_"};function m(e){return m="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},m(e)}function v(e,t,n){return(t=function(e){var t=function(e){if("object"!=m(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=m(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==m(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var f,p=o.T.encloseNamespace("share-v2.shareStatusIndicator");!function(e){e[e.Active=0]="Active",e[e.Expired=1]="Expired",e[e.MarkingRequired=2]="MarkingRequired"}(f||(f={}));var h=v(v(v({},f.Active,(function(){return p("activeStatusLabel")})),f.Expired,(function(){return p("expiredStatusLabel")})),f.MarkingRequired,(function(){return p("markingRequiredStatusLabel")})),y=v(v(v({},f.Active,"bg-success"),f.Expired,"bg-danger"),f.MarkingRequired,"bg-blue"),g=v(v(v({},f.Active,(function(){return p("activeStatusTooltip")})),f.Expired,(function(){return p("expiredStatusTooltip")})),f.MarkingRequired,(function(){return p("markingRequiredStatusTooltip")}));function b(e){var t=function(e){return e.markingRequired?f.MarkingRequired:s.x.hasShareExpired(e.share)?f.Expired:f.Active}(e),n=function(e,t){if(e===f.Active&&t){var n=l.O.convertUTCToLocal(t),r=l.O.format(n,"MMMM Do");return p("expiryTooltip",{date:r})}return g[e]()}(t,e.share.expireDate),a=y[t];return r.createElement(u.u,{title:n,spanHack:!0,spanHackClassName:"d-inline-flex"},r.createElement("div",{className:"d-flex align-items-center"},r.createElement("div",{className:"".concat(d.indicator," ").concat(a," me-2 flex-shrink-0")}),function(){var n=h[t](),a=e.share.expireDate;if(t===f.Active&&a){var i=s.x.calculateDaysToExpiry(e.share),c=p("expiryHint",{smartCount:i});return r.createElement("p",{className:"mb-0"},n," · ",c)}return r.createElement("p",{className:"mb-0"},n)}()))}var E=n(76306),S=n(15611),k=n(83914),N=n(83345),w=n(54610),x=n(4594),I=n(35223),C=n(86099);const j={thumbnailContainer:"XNQc8",tableRow:"R3dYa",viewCta:"ssCq6"};var O="myShares.tableRow";function F(e){return r.createElement("div",{className:"d-flex"},r.createElement("div",{className:"col-auto ".concat(j.thumbnailContainer)},r.createElement("p",{className:"fw-semibold mb-2"},e.heading)),r.createElement("div",{className:"".concat(e.isFirst?"d-flex":"d-none"," col align-items-center")},r.createElement("div",{className:"col-10 col-md-4"}),r.createElement("div",{className:"d-none d-md-flex col-6"},r.createElement("div",{className:"col-4"},r.createElement("p",{className:"fw-semibold mb-2"},r.createElement(N.x,{namespace:O,phrase:"viewsHeading"}))),r.createElement("div",{className:"col-3"},r.createElement("p",{className:"fw-semibold mb-2"},r.createElement(N.x,{namespace:O,phrase:"viewedByHeading"}))),r.createElement("div",{className:"col-5"},r.createElement("p",{className:"fw-semibold mb-2"},r.createElement(N.x,{namespace:O,phrase:"statusHeading"})))),r.createElement("div",{className:"col-2"})))}function A(e){var t,n=e.shareData,o=n.sharedObject,l=o.typeId===x.E.Playlist||o.typeId===x.E.Series,s=(0,C.pY)(n.share);return r.createElement("div",{className:"position-relative hover-bg-light-blue ".concat(j.tableRow," ").concat(null!==(t=e.className)&&void 0!==t?t:"")},r.createElement(S.F,{appLink:s,className:"p-2 cursor-pointer d-flex text-decoration-none"},r.createElement("div",{className:"col-auto ".concat(j.thumbnailContainer)},r.createElement(i.k,{object:o,showVideoMetadata:!0,locationContext:a.LZ.MyShares,imageOptions:{size:w.h2.Medium},showCollectionMask:!1,showVideoCount:!0})),r.createElement("div",{className:"col d-flex align-items-center"},r.createElement("div",{className:"px-3 col-10 col-md-4"},r.createElement(c.F,{sharedObject:n.sharedObject})),r.createElement("div",{className:"d-none d-md-flex col-6"},r.createElement("div",{className:"col-4"},l?r.createElement("p",{className:"mb-0"},"-"):r.createElement("p",{className:"mb-0"},r.createElement(N.x,{namespace:O,phrase:"views",options:{smartCount:n.share.viewCount}}))),r.createElement("div",{className:"col-3"},l?r.createElement("p",{className:"mb-0"},"-"):r.createElement("div",{className:"d-flex align-items-center"},r.createElement(k.x,{svgName:I.vn.User,size:k.S.Standard,className:"me-2 svg-container"}),r.createElement("p",{className:"mb-0"},n.share.accessCount))),r.createElement("div",{className:"col-5"},r.createElement(b,{share:n.share,markingRequired:n.pendingReview>0}))))),r.createElement("div",{className:"position-absolute end-0 top-0 bottom-0 d-flex align-items-center pe-2"},r.createElement(S.F,{appLink:s,className:"me-4 text-info d-none ".concat(j.viewCta)},r.createElement(N.x,{namespace:O,phrase:"viewCta"})),r.createElement(E.m,{dropdownToggleSvgSize:k.S.Standard,actions:e.getObjectActions(n),dropdownToggleClassName:"btn btn-link"})))}},5056:(e,t,n)=>{n.d(t,{R:()=>p});var r=n(32735),a=n(23481),i=n(75896),c=n(110),o=n(31754),l=n(2510),s=n(4594);function u(e){return u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},u(e)}function d(e,t,n){return(t=function(e){var t=function(e){if("object"!=u(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=u(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==u(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var m=a.T.encloseNamespace("myShares.mySharesTable");function v(e){var t;if(e.type===l.y.Link||!(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.dateCreated}));return n.length?(n.sort((function(e,t){return c.O.isSame(e,t)?0:c.O.isAfter(e,t)?1:-2})),i.m.last(n)):""}var f=n(15474);function p(e){var t,n,a,i,c,u,p,h=(t=e.sentShares,n=e.sharedObjects,a=e.shareRecipients,i=!!e.groupByDateShared,c=e.interactivesPendingReview,u=[],p=null==c?void 0:c.reduce((function(e,t){return Object.assign(d({},t.interactiveId,t),e)}),{}),t.forEach((function(e){var t,r=null==n?void 0:n[e.objectId],i=null;if(e.type===l.y.Classroom&&(i=[],null===(t=e.recipients)||void 0===t||t.forEach((function(e){var t=null==a?void 0:a[e.recipientId];t&&i.push(t)}))),r){var c=r.typeId===s.E.Interactive&&(null==p?void 0:p[r.interactiveId]);u.push({share:e,sharedObject:r,shareRecipients:i,dateShared:v(e),pendingReview:null==c?void 0:c.pendingReviewCount,privacy:e.privacy})}})),i?o.x.groupByDateShared(u):d({},m("title"),u));return r.createElement(r.Fragment,null,Object.keys(h).map((function(t,n){return r.createElement("div",{key:n},r.createElement(f.g,{heading:t,isFirst:!e.hasDemoInsights&&0===n}),r.createElement("div",{className:"d-flex flex-column mb-4"},h[t].map((function(t,n){return r.createElement(f.F,{key:n,shareData:t,getObjectActions:e.getObjectActions,breakpoints:e.breakpoints,imageCdnUrl:e.imageCdnUrl,yearGroups:e.yearGroups})}))))})))}},67467:(e,t,n)=>{n.d(t,{o:()=>u});var r=n(32735),a=n(23481),i=n(97958),c=n(99742),o=n(14070),l=n(97291),s=a.T.encloseNamespace("myShares.mySharesTableEmptyState");function u(){return r.createElement(i.u,null,r.createElement(i.u.Image,{src:c.W.EmptyStates.Share.SHARED_BY_ME,size:"small"}),r.createElement(i.u.Heading,null,s("heading")),r.createElement(i.u.Info,null,s("info")),r.createElement(i.u.Cta,{appLink:{application:l.O.DASHBOARD,action:o.e.Dashboard.HOME},text:s("cta")}))}},28001:(e,t,n)=>{n.d(t,{L:()=>o});var r=n(32735);const a={heading:"iWHol",thumbnailContainer:"zrcDh"};function i(e){return r.createElement("div",{className:"d-flex"},r.createElement("div",{className:"col-auto ".concat(a.thumbnailContainer)},r.createElement("div",{className:"partial-loading-background mb-2"}," ")),r.createElement("div",{className:"".concat(e.isFirst?"d-flex":"d-none"," col align-items-center")},r.createElement("div",{className:"col-10 col-md-4"}),r.createElement("div",{className:"d-none d-md-flex col-6"},r.createElement("div",{className:"col-4"},r.createElement("div",{className:"partial-loading-background mb-2 ".concat(a.heading)}," ")),r.createElement("div",{className:"col-3"},r.createElement("div",{className:"partial-loading-background mb-2 ".concat(a.heading)}," ")),r.createElement("div",{className:"col-5"},r.createElement("div",{className:"partial-loading-background mb-2 ".concat(a.heading)}," "))),r.createElement("div",{className:"col-2"})))}function c(){return r.createElement("div",{className:"p-2 d-flex"},r.createElement("div",{className:"col-auto ".concat(a.thumbnailContainer)},r.createElement("div",{className:"partial-loading-background rounded ratio ratio-16x9"})),r.createElement("div",{className:"col d-flex align-items-center"},r.createElement("div",{className:"px-3 col-10 col-md-4"},r.createElement("div",{className:"partial-loading-background w-75"}," ")),r.createElement("div",{className:"d-none d-md-flex col-6"},r.createElement("div",{className:"col-4"},r.createElement("div",{className:"partial-loading-background w-50"}," ")),r.createElement("div",{className:"col-3"},r.createElement("div",{className:"partial-loading-background w-50"}," ")),r.createElement("div",{className:"col-5"},r.createElement("div",{className:"partial-loading-background w-75"}," "))),r.createElement("div",{className:"col-2 d-flex justify-content-end align-items-center"},r.createElement("div",{className:"partial-loading-background w-25"}," "))))}function o(){return r.createElement(r.Fragment,null,r.createElement("div",null,r.createElement(i,{isFirst:!0}),r.createElement("div",{className:"d-flex flex-column rounded-3 mb-4 border"},r.createElement(c,null),r.createElement(c,null),r.createElement(c,null),r.createElement(c,null))),r.createElement("div",null,r.createElement(i,null),r.createElement("div",{className:"d-flex flex-column rounded-3 mb-4 border"},r.createElement(c,null),r.createElement(c,null),r.createElement(c,null),r.createElement(c,null))),r.createElement("div",null,r.createElement(i,null),r.createElement("div",{className:"d-flex flex-column rounded-3 mb-4 border"},r.createElement(c,null),r.createElement(c,null),r.createElement(c,null),r.createElement(c,null),r.createElement(c,null),r.createElement(c,null),r.createElement(c,null),r.createElement(c,null),r.createElement(c,null),r.createElement(c,null))))}},98623:(e,t,n)=>{n.d(t,{a:()=>p});var r=n(20354),a=n(1048),i=n(93479),c=n(30439),o=n(18488),l=n(21789),s=n(39151),u=n(1666),d=n(31949),m=n(39902),v=n(60115),f=n(31908);function p(e){var t,n,p=e.params,h=e.interactiveInsights,y=e.shouldFetch,g=r.a.useGetFetch(),b=r.a.useBasicFetch(d.N.currentUser()),E=r.a.useBasicFetch(s.L.config()),S=r.a.useBasicFetch((null===(t=b.data)||void 0===t?void 0:t.isAuthenticated)&&u.h.yearGroups(b.data.customerId)),k=function(e){return y&&o.o.getSentShares(Object.assign({cursor:e},p))},N=function(e){return g(k(e))},w=(0,v.K)(k,N),x=w.items,I=w.hasMore,C=w.isFetching,j=w.nextCursor,O=w.hasFirstPageCompleted,F=(0,m.FN)(null==x?void 0:x.map((function(e){return e.objectId.toString()})),c.o.sharedObjectsById),A=(0,m.FN)(l.x.getFlattenedRecipients(null!=x?x:[]).map((function(e){return e.recipientId.toString()})),(function(e){return c.o.getRecipientsById(e,b.data.customerId)})),T=(0,m.FN)(h?a.t.values(F.items||[]):[],(function(e){return i.I.pendingReviews({interactives:e.filter(f.M.isInteractive).map((function(e){return{interactiveId:e.interactiveId,metadataId:e.id}})),filters:{currentCustomerId:b.data.customerId,currentUserId:b.data.id}})}),(function(e){return"".concat(e.id,":").concat("interactiveId"in e?e.interactiveId:"")})),R=C||F.isFetching||A.isFetching||T.isFetching||S.isFetching,P=!O||(null==x?void 0:x.length)&&!F.hasFirstRequestCompleted;return{sentShares:x,sharedObjects:F,shareRecipients:A,yearGroups:S.data,interactivesPendingReview:T,isFetching:R,showPartialLoading:P,nextCursor:j,hasMore:I,fetchNext:N,imageCdnUrl:null===(n=E.data)||void 0===n?void 0:n.imageCdnUrl}}},82602:(e,t,n)=>{n.d(t,{WU:()=>s});var r=["second","minute","hour","day","week","month","year"],a=["秒","分钟","小时","天","周","个月","年"],i={},c=function(e,t){i[e]=t},o=[60,60,24,7,365/7/12,12];function l(e){return e instanceof Date?e:!isNaN(e)||/^\d+$/.test(e)?new Date(parseInt(e)):(e=(e||"").trim().replace(/\.\d+/,"").replace(/-/,"/").replace(/-/,"/").replace(/(\d)T(\d)/,"$1 $2").replace(/Z/," UTC").replace(/([+-]\d\d):?(\d\d)/," $1$2"),new Date(e))}var s=function(e,t,n){var r=function(e,t){return(+(t?l(t):new Date)-+l(e))/1e3}(e,n&&n.relativeDate);return function(e,t){for(var n=e<0?1:0,r=e=Math.abs(e),a=0;e>=o[a]&&a<o.length;a++)e/=o[a];return(e=Math.floor(e))>(0==(a*=2)?9:1)&&(a+=1),t(e,a,r)[n].replace("%s",e.toString())}(r,function(e){return i[e]||i.en_US}(t))};c("en_US",(function(e,t){if(0===t)return["just now","right now"];var n=r[Math.floor(t/2)];return e>1&&(n+="s"),[e+" "+n+" ago","in "+e+" "+n]})),c("zh_CN",(function(e,t){if(0===t)return["刚刚","片刻后"];var n=a[~~(t/2)];return[e+" "+n+"前",e+" "+n+"后"]}))}}]);
|
|
2
|
+
//# sourceMappingURL=1199-a2ac2338d0-lite.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/1199-a2ac2338d0-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/utils/AnalyticsRequestUtils.ts","file:///app/packages/libs/shared/src/apps/analytics/flight-requests/InteractiveResultsRequests.ts","file:///app/packages/libs/shared/src/apps/share-v2/flight-requests/ShareRequests.ts","file:///app/packages/libs/shared/src/apps/share/utils/ShareHelper.ts","file:///app/packages/libs/shared/src/hooks/UseBatchFetch.ts","file:///app/packages/libs/shared/src/hooks/UseInfiniteScroll.ts","file:///app/packages/libs/shared/src/hooks/UseInfiniteList.ts","file:///app/packages/libs/shared/src/apps/share-v2/components/share-status-indicator/share-status-indicator.scss","file:///app/packages/libs/shared/src/apps/share-v2/components/share-status-indicator/ShareStatusIndicator.tsx","file:///app/packages/projects/lite/src/apps/my-shares/components/my-shares-table-row/my-shares-table-row.scss","file:///app/packages/projects/lite/src/apps/my-shares/components/my-shares-table-row/MySharesTableRow.tsx","file:///app/packages/projects/lite/src/apps/my-shares/components/my-shares-table/MySharesTableUtils.ts","file:///app/packages/projects/lite/src/apps/my-shares/components/my-shares-table/MySharesTable.tsx","file:///app/packages/projects/lite/src/apps/my-shares/components/my-shares-table/empty-state/MySharesTableEmptyState.tsx","file:///app/packages/projects/lite/src/apps/my-shares/components/my-shares-table/partial-loading/partial-my-shares-table.scss","file:///app/packages/projects/lite/src/apps/my-shares/components/my-shares-table/partial-loading/PartialMySharesTable.tsx","file:///app/packages/projects/lite/src/shared/hooks/useSharesTable.ts","file:///app/node_modules/timeago.js/esm/lang/en_US.js","file:///app/node_modules/timeago.js/esm/lang/zh_CN.js","file:///app/node_modules/timeago.js/esm/register.js","file:///app/node_modules/timeago.js/esm/utils/date.js","file:///app/node_modules/timeago.js/esm/format.js","file:///app/node_modules/timeago.js/esm/index.js"],"sourcesContent":["import { AnalyticsRequestFilter } from 'libs/shared/interfaces';\n\nexport function getAnalyticsRequestKey(baseKey: string, filter: AnalyticsRequestFilter, extra?: string): string {\n if (!filter)\n return baseKey;\n\n let key = `${baseKey}:${filter.start}:${filter.end}`;\n\n const userIdKey = Array.isArray(filter.userId) ? filter.userId.sort().join(':') : filter.userId;\n const groupIdKey = Array.isArray(filter.groupId) ? filter.groupId.sort().join(':') : filter.groupId;\n const customerIdKey = Array.isArray(filter.customerId) ? filter.customerId.sort().join(':') : filter.customerId;\n\n if (userIdKey)\n key += `:${userIdKey}`;\n\n if (groupIdKey)\n key += `:${groupIdKey}`;\n\n if (customerIdKey)\n key += `:${customerIdKey}`;\n\n if (extra)\n key += `:${extra}`;\n\n return key;\n}","import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { Flight } from 'libs/common/react/index';\n\nimport { MarkInteractiveAnswer } from 'libs/shared/apps/analytics/interfaces/MarkInteractiveAnswer';\nimport { InteractiveResultsReport } from 'libs/shared/apps/analytics/interfaces/requests/InteractiveResultsReport';\nimport { InteractivesPendingReviewsRequest } from 'libs/shared/apps/analytics/interfaces/requests/InteractivesPendingReviewsRequest';\nimport { AnalyticsRequestFilter, CurrentUser, InteractiveResultSet } from 'libs/shared/interfaces';\nimport { getAnalyticsRequestKey } from 'libs/shared/utils/AnalyticsRequestUtils';\n\ninterface InteractiveResultFilters {\n currentUserId: string;\n currentCustomerId: string;\n dateRange?: { start: string, end: string }\n userIds?: string | string[];\n classroomsAndGroups?: string | string[];\n}\n\nfunction getInteractiveResultFilters(\n currentUser: CurrentUser,\n filter: AnalyticsRequestFilter\n): InteractiveResultFilters {\n return {\n currentUserId: currentUser.id,\n currentCustomerId: currentUser.customerId,\n dateRange: filter ? { start: filter.start, end: filter.end } : undefined,\n userIds: filter?.userId,\n classroomsAndGroups: filter?.groupId\n };\n}\n\nexport const InteractiveResultsRequests = {\n /** \n * This endpoint returns data with a lot of duplicated ids,\n * e.g. student answers to the same question will have the same id.\n * Because of that, we don't normalize.\n */\n interactiveResultSet(\n interactiveId: string,\n interactiveMetadataId: string,\n currentUser: CurrentUser,\n filter?: AnalyticsRequestFilter,\n includePublicResults?: boolean,\n success?: (data: InteractiveResultSet) => void,\n error?: (data: any) => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: includePublicResults ?\n `/api/domain/v3/analytics/interactives/${interactiveId}/metadata/${interactiveMetadataId}` :\n `/api/domain/v2/analytics/interactives/${interactiveId}/metadata/${interactiveMetadataId}`,\n key: getAnalyticsRequestKey(`interactive:result:set:${interactiveId}:${interactiveMetadataId}`, filter),\n data: getInteractiveResultFilters(currentUser, filter),\n type: HttpVerbs.POST,\n normalize: false,\n success,\n error,\n always\n };\n },\n \n /**\n * As the response from `interactiveResultSet` isn't normalised, we need to invalidate the cache\n * to update the results data.\n */\n mark(\n interactiveId: string,\n interactiveMetadataId: string,\n answerId: string,\n data: MarkInteractiveAnswer,\n success?: () => void,\n error?: (data: any) => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: `/api/domain/v1/analytics/answers/${answerId}`,\n key: `mark:answer:${answerId}:${data.resultId}`,\n type: HttpVerbs.PUT,\n data,\n normalize: false,\n invalidationKeys: `interactive:result:set:${interactiveId}:${interactiveMetadataId}`,\n success,\n error,\n always\n };\n },\n\n pendingReviews(data: InteractivesPendingReviewsRequest): Flight.Request {\n return {\n url: `/api/domain/v1/analytics/interactives/pending-reviews/summary`,\n key: `interactives:pending:reviews`,\n type: HttpVerbs.POST,\n data\n };\n },\n\n interactiveResultsReport(data: InteractiveResultsReport): Flight.Request {\n return {\n url: '/api/domain/v3/analytics/interactives/report',\n key: 'interactive:results:report',\n data,\n type: HttpVerbs.POST,\n normalize: false\n };\n }\n};","import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\n\nimport { ShareType } from 'libs/shared/apps/share-v2/enums/ShareType';\nimport { CreateShareLinkRequest } from 'libs/shared/apps/share-v2/interfaces/CreateShareLinkRequest';\nimport { CreateShareRequest } from 'libs/shared/apps/share-v2/interfaces/CreateShareRequest';\nimport { UpdateShareRequest } from 'libs/shared/apps/share-v2/interfaces/UpdateShareRequest';\n\nconst normalizeOptions: Flight.NormalizeOptions = {\n namespace: 'share-v2'\n};\n\nexport interface GetSentSharesParams {\n cursor?: string;\n scopeId?: string;\n objectTypeId?: number;\n type?: ShareType\n}\n\nexport const ShareRequests = {\n createShare(\n data: CreateShareRequest\n ): Flight.Request {\n return {\n url: '{gateway}/v2/shares',\n key: 'create:share-v2',\n type: HttpVerbs.POST,\n data,\n normalizeOptions,\n invalidationKeys: [ 'sent:share-v2', `get:share-v2:shares:object:${data.objectId}` ]\n };\n },\n\n updateShare(\n shareId: string,\n data: UpdateShareRequest\n ): Flight.Request {\n return {\n url: `{gateway}/v2/shares/${shareId}`,\n key: `update:share-v2`,\n type: HttpVerbs.PUT,\n data,\n normalizeOptions,\n invalidationKeys: [ 'share-v2:permanent-link:object', `share-v2:${shareId}` ]\n };\n },\n \n deleteShare(\n shareId: string\n ): Flight.Request {\n return {\n type: HttpVerbs.DELETE,\n url: `{gateway}/v2/shares/${shareId}`,\n key: `delete:share-v2`,\n normalizeOptions,\n invalidationKeys: [ 'share-v2:permanent-link:object', 'sent:share-v2', `share-v2:${shareId}` ]\n };\n },\n\n getShare(\n shareId: string\n ): Flight.Request {\n return {\n url: `{gateway}/v2/shares/${shareId}`,\n key: `share-v2:${shareId}`,\n bootstrapName: `share-v2:${shareId}`,\n type: HttpVerbs.GET,\n normalizeOptions\n };\n },\n\n getSentShares(\n params: GetSentSharesParams = {}\n ): Flight.Request {\n const key = Object.values(params).sort().join(':');\n\n return {\n url: UrlHelper.urlBuilder('{gateway}/v2/shares/sent', params),\n key: `sent:share-v2:${key}`,\n type: HttpVerbs.GET,\n normalize: false\n };\n },\n\n getShareLink(\n id: string\n ): Flight.Request {\n return {\n url: UrlHelper.urlBuilder('{gateway}/v2/shares/permanent-link', { objectId: id }),\n key: `share-v2:permanent-link:object:${id}`,\n normalizeOptions\n };\n },\n\n createShareLink(\n data: CreateShareLinkRequest\n ): Flight.Request {\n return {\n type: HttpVerbs.POST,\n url: UrlHelper.urlBuilder('{gateway}/v2/shares/permanent-link', { ...data }),\n key: `create:share-v2:permanent-link:object:${data.objectId}`,\n invalidationKeys: [ `share-v2:permanent-link:object:${data.objectId}`, 'sent:share-v2' ],\n normalizeOptions\n };\n },\n\n getPrivacy(id: string): Flight.Request {\n return {\n url: `{gateway}/v1/objects/${id}/access`,\n key: `privacy:${id}`,\n normalize: false\n };\n },\n \n getSharesByObjectId(\n objectId: string | number\n ): Flight.Request {\n return {\n url: `{gateway}/v2/shares/objects/${objectId}`,\n key: `get:share-v2:shares:object:${objectId}`,\n type: HttpVerbs.GET,\n normalizeOptions\n };\n },\n\n createSharePincode(shareId: string): Flight.Request {\n return {\n url: `{gateway}/v2/shares/${shareId}/pincode`,\n key: `create:share-v2:${shareId}:pincode`,\n type: HttpVerbs.POST\n };\n },\n\n getPincodeByShareId(shareId: string): Flight.Request {\n return {\n url: `{gateway}/v2/shares/${shareId}/pincode`,\n key: `get:share-v2:${shareId}:pincode`\n };\n },\n\n getPincodeByCode(code: string): Flight.Request {\n return {\n url: `{gateway}/v2/shares/pincode?code=${code}`,\n key: `get:share-v2:pincode:${code}`\n };\n }\n};\n","import { 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 React from 'react';\n\nimport { Flight } from 'libs/common/flight';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { BaseObject } from 'libs/shared/interfaces';\n\nconst CHUNK_SIZE = 50;\n\nexport interface UseBatchFetchResult<T extends BaseObject> {\n itemsArr: T[];\n items: { [key: string]: T} | null;\n isFetching: boolean;\n hasCompleted: boolean;\n}\n\n/**\n * Used to fetch multiple items by id with Flight. Will fetch 25 items at a time firing off multiple\n * requests if there are more than 25 items.\n * This will return items as null until we have all our items. Items will be returned as an object with\n * their ids as they key for easy mapping\n * \n * @param itemIds \n * @param getRequest \n */\nexport function useBatchFetch<T extends BaseObject>(\n itemIds: string[],\n getRequest: (ids: string[]) => Flight.Request\n): UseBatchFetchResult<T> {\n const chunks = ArrayHelper.chunk<string>(itemIds, CHUNK_SIZE);\n\n const requests = chunks.map(chunk => getRequest(ArrayHelper.uniq(chunk)));\n\n const responses = Flight.useBasicFetchAll<T[]>(requests);\n\n const itemsArr = ArrayHelper.flatten(responses.data);\n const items = responses.data.length\n ? itemsArr.reduce((acc, item) => ({ ...acc, [item.id]: item }), {})\n : null;\n\n return {\n itemsArr,\n items,\n isFetching: responses.isFetching,\n hasCompleted: responses.hasCompleted\n };\n}\n\n/**\n * When you need the useBatchFetch() behavior, but your list of objects to hydrate\n * will grow, such as on a scrolling page. useGrowingBatchFetch() will use local state\n * to determine what we've already built a request for and what items are new\n * as to not re-fetch items - Sha\n */\nexport function useGrowingBatchFetch<TResponse, TObjects = string>(\n objs: TObjects[],\n getRequest: (items: TObjects[]) => Flight.Request,\n _getKey?: (obj: TObjects) => string\n) {\n const getKey = _getKey ?? ((obj: any) => {\n if (typeof obj === 'object')\n return obj.id;\n\n return obj;\n });\n\n const { fetchItems, ...data } = useGrowingBatchFetchFunc<TResponse, TObjects>({ getRequest, _getKey });\n\n React.useEffect(() => {\n if (!objs?.length)\n return;\n\n fetchItems(objs);\n }, [objs?.map(getKey).join(',')]);\n\n return data;\n}\n\ninterface UseGrowingBatchFetchFuncOptions<TObjects> {\n getRequest: (items: TObjects[]) => Flight.Request;\n _getKey?: (obj: TObjects) => string;\n}\n\n/**\n * When you need the useGrowingBatchFetch() behaviour, but need to trigger the\n * fetch manually and update the objects - Nish \n */\nexport function useGrowingBatchFetchFunc<TResponse, TObjects = string>(\n options: UseGrowingBatchFetchFuncOptions<TObjects>\n) {\n const getKey = options._getKey ?? ((obj: any) => {\n if (typeof obj === 'object')\n return obj.id;\n\n return obj;\n });\n\n const fetchedItems = React.useRef<Set<string>>(new Set<string>());\n const [ requests, setRequests ] = React.useState<Flight.Request[]>([]);\n\n function fetchItems(objs: TObjects[]) {\n if (!objs?.length)\n return;\n\n const unfetchedItems: TObjects[] = [];\n \n objs.forEach(obj => {\n const key = getKey(obj);\n\n if (fetchedItems.current.has(key))\n return;\n\n unfetchedItems.push(obj);\n fetchedItems.current.add(key);\n });\n \n if (!unfetchedItems.length)\n return;\n \n setRequests(r => ([ ...r, ...ArrayHelper.chunk<TObjects>(unfetchedItems, CHUNK_SIZE).map(options.getRequest) ]));\n }\n\n const responses = Flight.useBasicFetchAll<TResponse[]>(requests);\n const itemsArr = ArrayHelper.flatten(responses.data);\n const items = responses.data.length\n ? itemsArr.reduce<Record<string, TResponse>>((acc, item) => ({ ...acc, [getKey(item)]: item }), {})\n : null;\n\n return {\n hasFirstRequestCompleted: !!responses.responses?.[0]?.hasCompleted,\n itemsArr,\n items,\n isFetching: responses.isFetching,\n fetchItems\n };\n}\n","import { useEffect } from 'react';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\n\nconst SCROLL_TOLERANCE = 400; // value in px\n\ninterface UseInfiniteScrollOptions {\n fetchNextPage: () => void;\n hasMore: boolean;\n isFetching: boolean;\n scrollContainer?: HTMLElement;\n}\n\nexport function useInfiniteScroll(options: UseInfiniteScrollOptions): void {\n const handleScroll = (): void => {\n if (options.isFetching)\n return;\n\n if (!options.scrollContainer) {\n const currentScrollHeight = window.innerHeight + document.documentElement.scrollTop;\n \n const totalHeight = document.documentElement.scrollHeight - SCROLL_TOLERANCE;\n \n if (currentScrollHeight < totalHeight)\n return;\n } else {\n const { scrollContainer } = options;\n const currentScrollHeight = scrollContainer.getBoundingClientRect().height + scrollContainer.scrollTop;\n \n const totalHeight = scrollContainer.scrollHeight - SCROLL_TOLERANCE;\n \n if (currentScrollHeight < totalHeight)\n return;\n }\n\n options.fetchNextPage();\n };\n\n useEffect(() => {\n const onScroll = FunctionHelper.throttle(handleScroll, 200);\n\n const scrollContainer = options.scrollContainer || window;\n\n if (options.hasMore)\n scrollContainer.addEventListener('scroll', onScroll);\n\n return () => scrollContainer.removeEventListener('scroll', onScroll);\n }, [ options.hasMore, options.fetchNextPage, options.scrollContainer ]);\n}","import { useEffect, useState } from 'react';\n\nimport { HttpStatus, HttpStatusClass } from 'libs/common/backbone/enums/HttpStatus';\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { Flight } from 'libs/common/flight';\n\nimport { BaseObject, BasePaginatedCollection } from 'libs/shared/interfaces';\n\nimport { useInfiniteScroll } from './UseInfiniteScroll';\nimport { useSelectAllPages } from './UseSelectAllPages';\n\nexport interface UseInfiniteListResult<T extends BaseObject> {\n items: T[];\n hasMore: boolean;\n isFetching: boolean;\n nextCursor: string;\n totalItems?: number;\n hasFirstPageCompleted: boolean;\n}\n\n/**\n * Hook to extract an infinite list from the application state,\n * save it locally in state and only update when new data\n * is fetched.\n * \n * @param getRequest - callback function to get the request for each page.\n * Can be false if the request requires data that hasn't yet been fetched - e.g. user id.\n * \n * @param fetchNext - callback function to fetch a page.\n * Can be false if the request requires data that hasn't yet been fetched - e.g. user id.\n */\nexport function useInfiniteList<TObject = BaseObject, TResponse = BasePaginatedCollection<TObject>>(\n getRequest: ((cursor?: string) => Flight.Request) | false,\n fetchNext: ((cursor?: string) => void) | false,\n onError?: (pageNumber: number, statusCode: HttpStatus) => void,\n getItems?: (responseData: TResponse) => TObject[],\n getCursor?: (responseData: TResponse) => string,\n scrollContainer?: HTMLElement\n): UseInfiniteListResult<TObject> {\n const [ pagesFetched, setPagesFetched ] = useState(0);\n\n const fetchNextFn = fetchNext as (cursor?: string) => void;\n\n function getKey(cursor?: string): string {\n if (!getRequest)\n return null;\n\n const request = getRequest(cursor);\n\n if (!request)\n return null;\n\n return request.key;\n }\n\n const response = useSelectAllPages<TObject, TResponse>(\n getKey,\n getItems,\n getCursor\n );\n\n function fetchNextPage(): void {\n if (!fetchNext || !getRequest || !response)\n return;\n\n setPagesFetched(currentVal => currentVal + 1);\n return fetchNextFn(response.nextCursor);\n }\n\n useInfiniteScroll({\n fetchNextPage,\n hasMore: !!response?.nextCursor,\n isFetching: response?.isFetching,\n scrollContainer\n });\n\n useEffect(() => {\n if (!response)\n return;\n\n if (response.shouldInitialFetch && fetchNext) {\n fetchNextFn();\n setPagesFetched(currentVal => currentVal + 1);\n }\n }, [ response?.shouldInitialFetch, fetchNext ]);\n\n useEffect(() => {\n if (!response?.statusCode || !FunctionHelper.isFunction(onError))\n return;\n\n const httpStatusClass: HttpStatusClass = +(response.statusCode?.toString()?.substr(0, 1));\n\n if (httpStatusClass !== HttpStatusClass.ClientError && httpStatusClass !== HttpStatusClass.ServerError)\n return;\n\n onError(pagesFetched, response.statusCode);\n }, [response?.statusCode]);\n\n return {\n items: response?.items,\n hasMore: !!response?.nextCursor,\n nextCursor: response?.nextCursor,\n isFetching: response?.isFetching,\n totalItems: response?.totalItems,\n hasFirstPageCompleted: response?.hasFirstPageCompleted\n };\n}","// extracted by mini-css-extract-plugin\nexport default {\"indicator\":\"sybF_\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { Share } from 'libs/shared/apps/share-v2/interfaces/Share';\nimport { ShareHelper } from 'libs/shared/apps/share-v2/utils/ShareHelper';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\n\nimport styles from './share-status-indicator.scss';\n\nconst namespace = 'share-v2.shareStatusIndicator';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nenum ShareIndicatorStatus {\n Active,\n Expired,\n MarkingRequired\n}\n\nconst statusIndicatorLabels = {\n [ShareIndicatorStatus.Active]: () => getPhrase('activeStatusLabel'),\n [ShareIndicatorStatus.Expired]: () => getPhrase('expiredStatusLabel'),\n [ShareIndicatorStatus.MarkingRequired]: () => getPhrase('markingRequiredStatusLabel')\n};\n\nconst statusIndicatorColors = {\n [ShareIndicatorStatus.Active]: 'bg-success',\n [ShareIndicatorStatus.Expired]: 'bg-danger',\n [ShareIndicatorStatus.MarkingRequired]: 'bg-blue'\n};\n\nconst statusIndicatorTooltips = {\n [ShareIndicatorStatus.Active]: () => getPhrase('activeStatusTooltip'),\n [ShareIndicatorStatus.Expired]: () => getPhrase('expiredStatusTooltip'),\n [ShareIndicatorStatus.MarkingRequired]: () => getPhrase('markingRequiredStatusTooltip')\n};\n\nfunction determineStatus(props: ShareStatusIndicatorProps): ShareIndicatorStatus {\n if (props.markingRequired)\n return ShareIndicatorStatus.MarkingRequired;\n\n if (ShareHelper.hasShareExpired(props.share))\n return ShareIndicatorStatus.Expired;\n\n return ShareIndicatorStatus.Active;\n}\n\nfunction getTooltip(status: ShareIndicatorStatus, expireDate: string): string {\n if (status === ShareIndicatorStatus.Active && expireDate) {\n const localDate = DateHelper.convertUTCToLocal(expireDate);\n const formattedDate = DateHelper.format(localDate, 'MMMM Do');\n\n return getPhrase('expiryTooltip', { date: formattedDate });\n }\n\n return statusIndicatorTooltips[status]();\n}\n\ninterface ShareStatusIndicatorProps {\n share: Share;\n markingRequired: boolean;\n}\n\nexport function ShareStatusIndicator(props: ShareStatusIndicatorProps) {\n const status = determineStatus(props);\n const tooltip = getTooltip(status, props.share.expireDate);\n const color = statusIndicatorColors[status];\n\n function renderDisplayText() {\n const label = statusIndicatorLabels[status]();\n const expireDate = props.share.expireDate;\n \n if (status === ShareIndicatorStatus.Active && expireDate) {\n const remainingDays = ShareHelper.calculateDaysToExpiry(props.share);\n const hint = getPhrase('expiryHint', { smartCount: remainingDays });\n\n return (\n <p className='mb-0'>\n {label} · {hint}\n </p>\n );\n }\n\n return (\n <p className='mb-0'>\n {label}\n </p>\n );\n }\n\n return (\n <Tooltip title={tooltip} spanHack spanHackClassName='d-inline-flex'>\n <div className='d-flex align-items-center'>\n <div className={`${styles.indicator} ${color} me-2 flex-shrink-0`} />\n {renderDisplayText()}\n </div>\n </Tooltip>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"thumbnailContainer\":\"XNQc8\",\"tableRow\":\"R3dYa\",\"viewCta\":\"ssCq6\"};","import React from 'react';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { SharedObjectImage } from 'libs/shared/apps/share/components/shared-object-image/SharedObjectImage';\nimport { SharedObjectTitle } from 'libs/shared/apps/share/components/shared-object-title/SharedObjectTitle';\nimport { ShareStatusIndicator } from 'libs/shared/apps/share-v2/components/share-status-indicator/ShareStatusIndicator';\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { ActionsDropdown } from 'libs/shared/components/actions/ActionsDropdown';\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 { ImageSize } from 'libs/shared/enums/Images';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { Breakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { YearGroup } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { getInsightsOverviewAppLink } from 'shared/utils/ObjectAppLinkHelper';\n\nimport { MySharesTableData } from 'apps/my-shares/components/my-shares-table/MySharesTableUtils';\n\nimport styles from './my-shares-table-row.scss';\n\nconst namespace = 'myShares.tableRow';\n\ninterface MySharesTableHeadingProps {\n heading: string;\n isFirst: boolean;\n}\n\nexport function MySharesTableHeading(props: MySharesTableHeadingProps) {\n return (\n <div className='d-flex'>\n <div className={`col-auto ${styles.thumbnailContainer}`}>\n <p className='fw-semibold mb-2'>{props.heading}</p>\n </div>\n \n <div className={`${props.isFirst ? 'd-flex' : 'd-none'} col align-items-center`}>\n <div className='col-10 col-md-4' />\n\n <div className='d-none d-md-flex col-6'>\n <div className='col-4'>\n <p className='fw-semibold mb-2'><Text namespace={namespace} phrase='viewsHeading' /></p>\n </div>\n\n <div className='col-3'>\n <p className='fw-semibold mb-2'><Text namespace={namespace} phrase='viewedByHeading' /></p>\n </div>\n\n <div className='col-5'>\n <p className='fw-semibold mb-2'><Text namespace={namespace} phrase='statusHeading' /></p>\n </div>\n </div>\n\n <div className='col-2' />\n </div>\n </div>\n );\n}\n\ninterface MySharesTableRowProps extends React.PropsWithChildren {\n shareData: MySharesTableData;\n breakpoints?: Breakpoints;\n getObjectActions: (row: MySharesTableData) => ActionOptions[];\n yearGroups: YearGroup[];\n imageCdnUrl: string;\n className?: string;\n}\n\nexport function MySharesTableRow(props: MySharesTableRowProps) {\n const { shareData } = props;\n const sharedObject = shareData.sharedObject;\n const isCollection = sharedObject.typeId === MasterType.Playlist || sharedObject.typeId === MasterType.Series;\n const appLink = getInsightsOverviewAppLink(shareData.share);\n\n function renderViewCount() {\n if (isCollection)\n return <p className='mb-0'>-</p>;\n\n return (\n <p className='mb-0'>\n <Text namespace={namespace} phrase='views' options={{ smartCount: shareData.share.viewCount }} />\n </p>\n );\n }\n\n function renderViewedBy() {\n if (isCollection)\n return <p className='mb-0'>-</p>;\n\n return (\n <div className='d-flex align-items-center'>\n <SvgContainer svgName={cvSvgLibrary.User} size={SvgContainerSize.Standard} className='me-2 svg-container' />\n <p className='mb-0'>{shareData.share.accessCount}</p>\n </div>\n );\n }\n\n return (\n <div className={`position-relative hover-bg-light-blue ${styles.tableRow} ${props.className ?? ''}`}>\n <AppLink appLink={appLink} className={`p-2 cursor-pointer d-flex text-decoration-none`}>\n <div className={`col-auto ${styles.thumbnailContainer}`}>\n <SharedObjectImage\n object={sharedObject}\n showVideoMetadata\n locationContext={LocationContext.MyShares}\n imageOptions={{ size: ImageSize.Medium }}\n showCollectionMask={false}\n showVideoCount\n />\n </div>\n \n <div className='col d-flex align-items-center'>\n <div className='px-3 col-10 col-md-4'>\n <SharedObjectTitle sharedObject={shareData.sharedObject} />\n </div>\n\n <div className='d-none d-md-flex col-6'>\n <div className='col-4'>\n {renderViewCount()}\n </div>\n\n <div className='col-3'>\n {renderViewedBy()}\n </div>\n\n <div className='col-5'>\n <ShareStatusIndicator share={shareData.share} markingRequired={shareData.pendingReview > 0} />\n </div>\n </div>\n </div>\n </AppLink>\n <div className='position-absolute end-0 top-0 bottom-0 d-flex align-items-center pe-2'>\n <AppLink appLink={appLink} className={`me-4 text-info d-none ${styles.viewCta}`}>\n <Text namespace={namespace} phrase='viewCta' />\n </AppLink>\n <ActionsDropdown\n dropdownToggleSvgSize={SvgContainerSize.Standard}\n actions={props.getObjectActions(shareData)}\n dropdownToggleClassName='btn btn-link'\n />\n </div>\n </div>\n );\n}\n","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { InteractivesPendingReviews } from 'libs/shared/apps/analytics/interfaces/response/InteractivesPendingReviewsResponse';\nimport { ShareHelper } from 'libs/shared/apps/share/utils/ShareHelper';\nimport { SharableEntity, SharableRecipient } from 'libs/shared/apps/share/views/share/ShareViewHelper';\nimport { SharePrivacy } from 'libs/shared/apps/share-v2/enums/SharePrivacy';\nimport { ShareType } from 'libs/shared/apps/share-v2/enums/ShareType';\nimport { Share } from 'libs/shared/apps/share-v2/interfaces/Share';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { InteractiveMetadata } from 'libs/shared/interfaces';\n\nconst namespace = 'myShares.mySharesTable';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction getDateShared(share: Share): string {\n if (share.type === ShareType.Link || !share?.recipients?.length)\n return share.dateCreated;\n\n const datesCreated = share.recipients.map(r => r.dateCreated);\n\n if (!datesCreated.length)\n return '';\n\n datesCreated.sort((date1, date2) => {\n if (DateHelper.isSame(date1, date2))\n return 0;\n\n return DateHelper.isAfter(date1, date2) ? 1 : -2;\n });\n\n return ArrayHelper.last(datesCreated);\n}\n\nexport interface MySharesTableData {\n share: Share;\n sharedObject: SharableEntity;\n dateShared: string;\n shareRecipients?: SharableRecipient[];\n pendingReview?: number;\n privacy?: SharePrivacy;\n}\n\ntype TableDataGroupings = { [date: string]: MySharesTableData[] };\n\nexport function useGetMySharesData(\n sentShares: Share[],\n sharedObjects: Record<string, SharableEntity>,\n shareRecipients: Record<string, SharableRecipient>,\n groupByDate: boolean,\n interactivesPendingReviews: InteractivesPendingReviews[]\n): TableDataGroupings {\n const tableData: MySharesTableData[] = [];\n\n const interactivesPendingReviewsMap = interactivesPendingReviews\n ?.reduce<Record<string, InteractivesPendingReviews>>(\n (map, obj) => ({ [obj.interactiveId]: obj, ...map }),\n {}\n );\n\n sentShares.forEach(s => {\n const sharedObject = sharedObjects?.[s.objectId];\n\n let recipients: SharableRecipient[] | null = null;\n\n if (s.type === ShareType.Classroom) {\n recipients = [];\n\n s.recipients?.forEach(r => {\n const recipient = shareRecipients?.[r.recipientId];\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 &&\n interactivesPendingReviewsMap?.[(sharedObject as InteractiveMetadata).interactiveId];\n\n tableData.push({\n share: s,\n sharedObject,\n shareRecipients: recipients,\n dateShared: getDateShared(s),\n pendingReview: pendingReview?.pendingReviewCount,\n privacy: s.privacy\n });\n }\n });\n\n if (!groupByDate)\n return { [getPhrase('title')]: tableData };\n\n return ShareHelper.groupByDateShared(tableData);\n}","import React from 'react';\n\nimport { InteractivesPendingReviews } from 'libs/shared/apps/analytics/interfaces/response/InteractivesPendingReviewsResponse';\nimport { SharableEntity, SharableRecipient } from 'libs/shared/apps/share/views/share/ShareViewHelper';\nimport { Share } from 'libs/shared/apps/share-v2/interfaces/Share';\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { Breakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { YearGroup } from 'libs/shared/interfaces';\n\nimport { MySharesTableData, useGetMySharesData } from 'apps/my-shares/components/my-shares-table/MySharesTableUtils';\nimport { MySharesTableHeading, MySharesTableRow } from 'apps/my-shares/components/my-shares-table-row/MySharesTableRow';\n\ninterface MySharesTableProps {\n sentShares: Share[];\n sharedObjects: Record<string, SharableEntity>;\n shareRecipients: Record<string, SharableRecipient>;\n interactivesPendingReview: InteractivesPendingReviews[];\n getObjectActions: (row: MySharesTableData) => ActionOptions[];\n groupByDateShared?: boolean;\n showStatus?: boolean;\n showViewCount?: boolean;\n dependencies?: any[];\n breakpoints?: Breakpoints;\n hasDemoInsights?: boolean;\n imageCdnUrl: string;\n yearGroups: YearGroup[];\n}\n\nexport function MySharesTable(props: MySharesTableProps): JSX.Element {\n const data = useGetMySharesData(\n props.sentShares,\n props.sharedObjects,\n props.shareRecipients,\n !!props.groupByDateShared,\n props.interactivesPendingReview\n );\n\n return (\n <>\n {Object.keys(data).map((heading, headingIdx) => (\n <div key={headingIdx}>\n <MySharesTableHeading heading={heading} isFirst={!props.hasDemoInsights && headingIdx === 0} />\n\n <div className='d-flex flex-column mb-4'>\n {data[heading].map((shareData, index) => (\n <MySharesTableRow\n key={index}\n shareData={shareData}\n getObjectActions={props.getObjectActions}\n breakpoints={props.breakpoints}\n imageCdnUrl={props.imageCdnUrl}\n yearGroups={props.yearGroups}\n />\n ))}\n </div>\n </div>\n ))}\n </>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nconst namespace = 'myShares.mySharesTableEmptyState';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function MySharesTableEmptyState(): JSX.Element {\n return (\n <EmptyState>\n <EmptyState.Image src={ImageUrls.EmptyStates.Share.SHARED_BY_ME} size='small' />\n <EmptyState.Heading>\n {getPhrase('heading')}\n </EmptyState.Heading>\n <EmptyState.Info>{getPhrase('info')}</EmptyState.Info>\n <EmptyState.Cta appLink={{ application: AppChannels.DASHBOARD, action: Actions.Dashboard.HOME }} text={getPhrase('cta')} />\n </EmptyState>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"heading\":\"iWHol\",\"thumbnailContainer\":\"zrcDh\"};","import React from 'react';\n\nimport styles from './partial-my-shares-table.scss';\n\ninterface PartialHeadingProps {\n isFirst?: boolean;\n}\n\nexport function PartialHeading(props: PartialHeadingProps) {\n return (\n <div className='d-flex'>\n <div className={`col-auto ${styles.thumbnailContainer}`}>\n <div className={`partial-loading-background mb-2`}> </div>\n </div>\n \n <div className={`${props.isFirst ? 'd-flex' : 'd-none'} col align-items-center`}>\n <div className='col-10 col-md-4' />\n\n <div className='d-none d-md-flex col-6'>\n <div className='col-4'>\n <div className={`partial-loading-background mb-2 ${styles.heading}`}> </div>\n </div>\n\n <div className='col-3'>\n <div className={`partial-loading-background mb-2 ${styles.heading}`}> </div>\n </div>\n\n <div className='col-5'>\n <div className={`partial-loading-background mb-2 ${styles.heading}`}> </div>\n </div>\n </div>\n\n <div className='col-2' />\n </div>\n </div>\n );\n}\n\nfunction PartialRow(): JSX.Element {\n return (\n <div className={`p-2 d-flex`}>\n <div className={`col-auto ${styles.thumbnailContainer}`}>\n <div className={`partial-loading-background rounded ratio ratio-16x9`} />\n </div>\n \n <div className='col d-flex align-items-center'>\n <div className='px-3 col-10 col-md-4'>\n <div className={`partial-loading-background w-75`}> </div>\n </div>\n\n <div className='d-none d-md-flex col-6'>\n <div className='col-4'>\n <div className={`partial-loading-background w-50`}> </div>\n </div>\n\n <div className='col-3'>\n <div className={`partial-loading-background w-50`}> </div>\n </div>\n\n <div className='col-5'>\n <div className={`partial-loading-background w-75`}> </div>\n </div>\n </div>\n\n <div className='col-2 d-flex justify-content-end align-items-center'>\n <div className={`partial-loading-background w-25`}> </div>\n </div>\n </div>\n </div>\n );\n}\n\nexport function PartialMySharesTable(): JSX.Element {\n return (\n <>\n <div>\n <PartialHeading isFirst={true} />\n\n <div className='d-flex flex-column rounded-3 mb-4 border'>\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n </div>\n </div>\n\n <div>\n <PartialHeading />\n\n <div className='d-flex flex-column rounded-3 mb-4 border'>\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n </div>\n </div>\n\n <div>\n <PartialHeading />\n\n <div className='d-flex flex-column rounded-3 mb-4 border'>\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n </div>\n </div>\n </>\n );\n}","import { Flight } from 'libs/common/react/index';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { InteractiveResultsRequests } from 'libs/shared/apps/analytics/flight-requests/InteractiveResultsRequests';\nimport { InteractivesPendingReviews } from 'libs/shared/apps/analytics/interfaces/response/InteractivesPendingReviewsResponse';\nimport { ShareRequests as ShareRequestsV1 } from 'libs/shared/apps/share/flight-requests/ShareRequests';\nimport { SharableRecipient } from 'libs/shared/apps/share/views/share/ShareViewHelper';\nimport { GetSentSharesParams, ShareRequests as ShareRequestsV2 } from 'libs/shared/apps/share-v2/flight-requests/ShareRequests';\nimport { Share } from 'libs/shared/apps/share-v2/interfaces/Share';\nimport { ShareHelper } from 'libs/shared/apps/share-v2/utils/ShareHelper';\nimport { SharableEntity } from 'libs/shared/apps/share-v2/utils/ShareViewHelper';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { UseBatchFetchResult, useGrowingBatchFetch } from 'libs/shared/hooks/UseBatchFetch';\nimport { useInfiniteList } from 'libs/shared/hooks/UseInfiniteList';\nimport { BaseObject, Config, CurrentUser, YearGroup } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nexport function getBatchFetchResultAsArray(result: UseBatchFetchResult<BaseObject>): BaseObject[] {\n return result.items ? Object.values(result.items) : [];\n}\n\ninterface UseSharesTableOptions {\n params?: GetSentSharesParams;\n interactiveInsights?: boolean;\n shouldFetch: boolean;\n}\n\nexport function useSharesTable({ params, interactiveInsights, shouldFetch }: UseSharesTableOptions) {\n const fetch = Flight.useGetFetch();\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const yearGroups = Flight.useBasicFetch<YearGroup[]>(\n currentUser.data?.isAuthenticated && CustomerRequests.yearGroups(currentUser.data.customerId)\n );\n\n /**\n * Fetch sent shares\n */\n const getRequest = (cursor?: string) => shouldFetch && ShareRequestsV2.getSentShares({\n cursor,\n ...params\n });\n const fetchNext = (cursor?: string) => fetch(getRequest(cursor));\n const {\n items: sentShares,\n hasMore,\n isFetching: isFetchingSentShares,\n nextCursor,\n hasFirstPageCompleted\n } = useInfiniteList<Share>(getRequest, fetchNext);\n\n /**\n * Fetch shared objects\n */\n const sharedObjects = useGrowingBatchFetch<SharableEntity>(\n sentShares?.map(obj => obj.objectId.toString()),\n ShareRequestsV1.sharedObjectsById\n );\n\n /**\n * Fetch recipients\n */\n const shareRecipients = useGrowingBatchFetch<SharableRecipient>(\n ShareHelper.getFlattenedRecipients(sentShares ?? []).map(obj => obj.recipientId.toString()),\n objs => (ShareRequestsV1.getRecipientsById(objs, currentUser.data.customerId))\n );\n\n /**\n * Fetch which interactives required marking\n */\n const interactivesPendingReview = useGrowingBatchFetch<InteractivesPendingReviews, SharableEntity>(\n interactiveInsights ? ObjectHelper.values(sharedObjects.items || []) : [],\n objs => InteractiveResultsRequests.pendingReviews({\n interactives: objs\n .filter(VideoHelper.isInteractive)\n .map(obj => ({ interactiveId: obj.interactiveId, metadataId: obj.id })),\n filters: {\n currentCustomerId: currentUser.data.customerId,\n currentUserId: currentUser.data.id\n }\n }),\n obj => `${obj.id}:${'interactiveId' in obj ? obj.interactiveId : ''}`\n );\n \n const isFetching = isFetchingSentShares\n || sharedObjects.isFetching\n || shareRecipients.isFetching\n || interactivesPendingReview.isFetching\n || yearGroups.isFetching;\n\n const showPartialLoading = !hasFirstPageCompleted || (sentShares?.length && !sharedObjects.hasFirstRequestCompleted);\n\n return {\n sentShares,\n sharedObjects,\n shareRecipients,\n yearGroups: yearGroups.data,\n interactivesPendingReview,\n isFetching,\n showPartialLoading,\n nextCursor,\n hasMore,\n fetchNext,\n imageCdnUrl: config.data?.imageCdnUrl\n };\n}","var EN_US = ['second', 'minute', 'hour', 'day', 'week', 'month', 'year'];\nexport default function (diff, idx) {\n if (idx === 0)\n return ['just now', 'right now'];\n var unit = EN_US[Math.floor(idx / 2)];\n if (diff > 1)\n unit += 's';\n return [diff + \" \" + unit + \" ago\", \"in \" + diff + \" \" + unit];\n}\n//# sourceMappingURL=en_US.js.map","var ZH_CN = ['秒', '分钟', '小时', '天', '周', '个月', '年'];\nexport default function (diff, idx) {\n if (idx === 0)\n return ['刚刚', '片刻后'];\n var unit = ZH_CN[~~(idx / 2)];\n return [diff + \" \" + unit + \"\\u524D\", diff + \" \" + unit + \"\\u540E\"];\n}\n//# sourceMappingURL=zh_CN.js.map","/**\n * Created by hustcc on 18/5/20.\n * Contract: i@hust.cc\n */\n/**\n * All supported locales\n */\nvar Locales = {};\n/**\n * register a locale\n * @param locale\n * @param func\n */\nexport var register = function (locale, func) {\n Locales[locale] = func;\n};\n/**\n * get a locale, default is en_US\n * @param locale\n * @returns {*}\n */\nexport var getLocale = function (locale) {\n return Locales[locale] || Locales['en_US'];\n};\n//# sourceMappingURL=register.js.map","/**\n * Created by hustcc on 18/5/20.\n * Contract: i@hust.cc\n */\nvar SEC_ARRAY = [\n 60,\n 60,\n 24,\n 7,\n 365 / 7 / 12,\n 12,\n];\n/**\n * format Date / string / timestamp to timestamp\n * @param input\n * @returns {*}\n */\nexport function toDate(input) {\n if (input instanceof Date)\n return input;\n // @ts-ignore\n if (!isNaN(input) || /^\\d+$/.test(input))\n return new Date(parseInt(input));\n input = (input || '')\n // @ts-ignore\n .trim()\n .replace(/\\.\\d+/, '') // remove milliseconds\n .replace(/-/, '/')\n .replace(/-/, '/')\n .replace(/(\\d)T(\\d)/, '$1 $2')\n .replace(/Z/, ' UTC') // 2017-2-5T3:57:52Z -> 2017-2-5 3:57:52UTC\n .replace(/([+-]\\d\\d):?(\\d\\d)/, ' $1$2'); // -04:00 -> -0400\n return new Date(input);\n}\n/**\n * format the diff second to *** time ago, with setting locale\n * @param diff\n * @param localeFunc\n * @returns\n */\nexport function formatDiff(diff, localeFunc) {\n /**\n * if locale is not exist, use defaultLocale.\n * if defaultLocale is not exist, use build-in `en`.\n * be sure of no error when locale is not exist.\n *\n * If `time in`, then 1\n * If `time ago`, then 0\n */\n var agoIn = diff < 0 ? 1 : 0;\n /**\n * Get absolute value of number (|diff| is non-negative) value of x\n * |diff| = diff if diff is positive\n * |diff| = -diff if diff is negative\n * |0| = 0\n */\n diff = Math.abs(diff);\n /**\n * Time in seconds\n */\n var totalSec = diff;\n /**\n * Unit of time\n */\n var idx = 0;\n for (; diff >= SEC_ARRAY[idx] && idx < SEC_ARRAY.length; idx++) {\n diff /= SEC_ARRAY[idx];\n }\n /**\n * Math.floor() is alternative of ~~\n *\n * The differences and bugs:\n * Math.floor(3.7) -> 4 but ~~3.7 -> 3\n * Math.floor(1559125440000.6) -> 1559125440000 but ~~1559125440000.6 -> 52311552\n *\n * More information about the performance of algebraic:\n * https://www.youtube.com/watch?v=65-RbBwZQdU\n */\n diff = Math.floor(diff);\n idx *= 2;\n if (diff > (idx === 0 ? 9 : 1))\n idx += 1;\n return localeFunc(diff, idx, totalSec)[agoIn].replace('%s', diff.toString());\n}\n/**\n * calculate the diff second between date to be formatted an now date.\n * @param date\n * @param relativeDate\n * @returns {number}\n */\nexport function diffSec(date, relativeDate) {\n var relDate = relativeDate ? toDate(relativeDate) : new Date();\n return (+relDate - +toDate(date)) / 1000;\n}\n/**\n * nextInterval: calculate the next interval time.\n * - diff: the diff sec between now and date to be formatted.\n *\n * What's the meaning?\n * diff = 61 then return 59\n * diff = 3601 (an hour + 1 second), then return 3599\n * make the interval with high performance.\n **/\nexport function nextInterval(diff) {\n var rst = 1, i = 0, d = Math.abs(diff);\n for (; diff >= SEC_ARRAY[i] && i < SEC_ARRAY.length; i++) {\n diff /= SEC_ARRAY[i];\n rst *= SEC_ARRAY[i];\n }\n d = d % rst;\n d = d ? rst - d : rst;\n return Math.ceil(d);\n}\n//# sourceMappingURL=date.js.map","import { formatDiff, diffSec } from './utils/date';\nimport { getLocale } from './register';\n/**\n * format a TDate into string\n * @param date\n * @param locale\n * @param opts\n */\nexport var format = function (date, locale, opts) {\n // diff seconds\n var sec = diffSec(date, opts && opts.relativeDate);\n // format it with locale\n return formatDiff(sec, getLocale(locale));\n};\n//# sourceMappingURL=format.js.map","/**\n * Created by hustcc on 18/5/20.\n * Contract: i@hust.cc\n */\nimport en_US from './lang/en_US';\nimport zh_CN from './lang/zh_CN';\nimport { register } from './register';\nregister('en_US', en_US);\nregister('zh_CN', zh_CN);\nexport { format } from './format';\nexport { render, cancel } from './realtime';\nexport { register };\n//# sourceMappingURL=index.js.map"],"names":["getAnalyticsRequestKey","baseKey","filter","extra","key","start","end","userIdKey","Array","isArray","userId","sort","join","groupIdKey","groupId","customerIdKey","customerId","getInteractiveResultFilters","currentUser","currentUserId","id","currentCustomerId","dateRange","undefined","userIds","classroomsAndGroups","InteractiveResultsRequests","interactiveResultSet","interactiveId","interactiveMetadataId","includePublicResults","success","error","always","url","data","type","HttpVerbs","normalize","mark","answerId","resultId","invalidationKeys","pendingReviews","interactiveResultsReport","normalizeOptions","namespace","ShareRequests","createShare","objectId","updateShare","shareId","deleteShare","getShare","bootstrapName","getSentShares","params","Object","values","getShareLink","createShareLink","getPrivacy","getSharesByObjectId","createSharePincode","getPincodeByShareId","getPincodeByCode","code","ShareHelper","groupByDateShared","dateToObjectMapping","keys","reverse","reduce","acc","date","heading","concat","mapActivityStatusToCheckMarkStatus","activityStatus","mapCheckMarkStatusToActivityStatus","checkMarkStatus","CHUNK_SIZE","useBatchFetch","itemIds","getRequest","requests","map","chunk","responses","itemsArr","items","length","item","isFetching","hasCompleted","useGrowingBatchFetch","objs","_getKey","getKey","obj","useGrowingBatchFetchFunc","fetchItems","options","fetchedItems","Set","setRequests","hasFirstRequestCompleted","unfetchedItems","forEach","current","has","push","add","r","SCROLL_TOLERANCE","useInfiniteList","fetchNext","onError","getItems","getCursor","scrollContainer","handleScroll","useState","pagesFetched","setPagesFetched","fetchNextFn","response","cursor","request","fetchNextPage","currentVal","nextCursor","hasMore","getBoundingClientRect","height","scrollTop","scrollHeight","window","innerHeight","document","documentElement","useEffect","onScroll","FunctionHelper","addEventListener","removeEventListener","shouldInitialFetch","statusCode","httpStatusClass","toString","substr","HttpStatus","totalItems","hasFirstPageCompleted","ShareIndicatorStatus","getPhrase","LanguageService","statusIndicatorLabels","Active","Expired","MarkingRequired","statusIndicatorColors","statusIndicatorTooltips","ShareStatusIndicator","props","status","markingRequired","share","determineStatus","tooltip","expireDate","localDate","DateHelper","formattedDate","getTooltip","color","Tooltip","title","spanHack","spanHackClassName","className","label","remainingDays","hint","smartCount","renderDisplayText","MySharesTableHeading","isFirst","Text","phrase","MySharesTableRow","shareData","sharedObject","isCollection","typeId","MasterType","appLink","AppLink","SharedObjectImage","object","showVideoMetadata","locationContext","imageOptions","size","showCollectionMask","showVideoCount","SharedObjectTitle","viewCount","SvgContainer","svgName","S","accessCount","pendingReview","ActionsDropdown","dropdownToggleSvgSize","actions","getObjectActions","dropdownToggleClassName","getDateShared","ShareType","recipients","dateCreated","datesCreated","date1","date2","ArrayHelper","MySharesTable","sentShares","sharedObjects","shareRecipients","groupByDate","interactivesPendingReviews","tableData","interactivesPendingReviewsMap","interactivesPendingReview","s","recipient","recipientId","dateShared","pendingReviewCount","privacy","headingIdx","hasDemoInsights","index","breakpoints","imageCdnUrl","yearGroups","MySharesTableEmptyState","src","application","action","text","PartialHeading","PartialRow","PartialMySharesTable","useSharesTable","interactiveInsights","shouldFetch","fetch","config","isAuthenticated","isFetchingSentShares","I","interactives","metadataId","filters","showPartialLoading","EN_US","ZH_CN","Locales","register","locale","func","SEC_ARRAY","toDate","input","Date","isNaN","test","parseInt","trim","replace","format","opts","sec","relativeDate","diff","localeFunc","agoIn","totalSec","Math","abs","idx","floor","unit"],"sourceRoot":""}
|