@clickview/lite 0.74.0-rc.1 → 0.74.0-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundles.json +1 -1
- package/dist/css/{3816-lite-f459e281d1.chunk.css → 7577-lite-efcdc36bde.chunk.css} +1 -1
- package/dist/languages/en.json +1 -1
- package/dist/scripts/{2126-4a3a267af7-lite.chunk.js → 2126-d77b244321-lite.chunk.js} +2 -2
- package/dist/scripts/{2126-4a3a267af7-lite.chunk.js.map → 2126-d77b244321-lite.chunk.js.map} +1 -1
- package/dist/scripts/2258-6851fce9d7-lite.chunk.js +3 -0
- package/dist/scripts/2258-6851fce9d7-lite.chunk.js.map +1 -0
- package/dist/scripts/{2541-9104968024-lite.chunk.js → 2541-d2d0da16cf-lite.chunk.js} +1 -1
- package/dist/scripts/{2541-9104968024-lite.chunk.js.map → 2541-d2d0da16cf-lite.chunk.js.map} +1 -1
- package/dist/scripts/3677-aadf9fd2cc-lite.chunk.js +2 -0
- package/dist/scripts/3677-aadf9fd2cc-lite.chunk.js.map +1 -0
- package/dist/scripts/3978-0e2106b5aa-lite.chunk.js +2 -0
- package/dist/scripts/3978-0e2106b5aa-lite.chunk.js.map +1 -0
- package/dist/scripts/4400-7381394a2e-lite.chunk.js +2 -0
- package/dist/scripts/4400-7381394a2e-lite.chunk.js.map +1 -0
- package/dist/scripts/5135-9fa172bfc3-lite.chunk.js +2 -0
- package/dist/scripts/5135-9fa172bfc3-lite.chunk.js.map +1 -0
- package/dist/scripts/{5434-671d92b4e3-lite.chunk.js → 5434-20de24cb39-lite.chunk.js} +1 -1
- package/dist/scripts/{5434-671d92b4e3-lite.chunk.js.map → 5434-20de24cb39-lite.chunk.js.map} +1 -1
- package/dist/scripts/{5780-eb7c4d1db7-lite.chunk.js → 5780-3ee0f5d974-lite.chunk.js} +2 -2
- package/dist/scripts/5780-3ee0f5d974-lite.chunk.js.map +1 -0
- package/dist/scripts/5870-057fef9e27-lite.chunk.js +3 -0
- package/dist/scripts/5870-057fef9e27-lite.chunk.js.map +1 -0
- package/dist/scripts/618-33ead82bb3-lite.chunk.js +2 -0
- package/dist/scripts/618-33ead82bb3-lite.chunk.js.map +1 -0
- package/dist/scripts/{6282-62e8305b89-lite.chunk.js → 6282-2e7901a54a-lite.chunk.js} +1 -1
- package/dist/scripts/{6282-62e8305b89-lite.chunk.js.map → 6282-2e7901a54a-lite.chunk.js.map} +1 -1
- package/dist/scripts/6379-1fac9e5c3c-lite.chunk.js +2 -0
- package/dist/scripts/6379-1fac9e5c3c-lite.chunk.js.map +1 -0
- package/dist/scripts/647-cf8ade72c6-lite.chunk.js +2 -0
- package/dist/scripts/647-cf8ade72c6-lite.chunk.js.map +1 -0
- package/dist/scripts/{6741-969accd2bc-lite.chunk.js → 6741-9ccafc6ff5-lite.chunk.js} +3 -3
- package/dist/scripts/{6741-969accd2bc-lite.chunk.js.map → 6741-9ccafc6ff5-lite.chunk.js.map} +1 -1
- package/dist/scripts/{690-aeaed228cb-lite.chunk.js → 690-e3a972ec48-lite.chunk.js} +1 -1
- package/dist/scripts/{690-aeaed228cb-lite.chunk.js.map → 690-e3a972ec48-lite.chunk.js.map} +1 -1
- package/dist/scripts/6909-0cc76e0fcc-lite.chunk.js +2 -0
- package/dist/scripts/6909-0cc76e0fcc-lite.chunk.js.map +1 -0
- package/dist/scripts/{6948-3eab72b8e2-lite.chunk.js → 6948-9121ca4b39-lite.chunk.js} +3 -3
- package/dist/scripts/{6948-3eab72b8e2-lite.chunk.js.map → 6948-9121ca4b39-lite.chunk.js.map} +1 -1
- package/dist/scripts/7234-4fdc8f5ae3-lite.chunk.js +2 -0
- package/dist/scripts/7234-4fdc8f5ae3-lite.chunk.js.map +1 -0
- package/dist/scripts/7577-a930db95e5-lite.chunk.js +2 -0
- package/dist/scripts/7577-a930db95e5-lite.chunk.js.map +1 -0
- package/dist/scripts/7742-8a303defe5-lite.chunk.js +2 -0
- package/dist/scripts/7742-8a303defe5-lite.chunk.js.map +1 -0
- package/dist/scripts/{8-f1d9aa4678-lite.chunk.js → 8-9f5e438ed9-lite.chunk.js} +2 -2
- package/dist/scripts/{8-f1d9aa4678-lite.chunk.js.map → 8-9f5e438ed9-lite.chunk.js.map} +1 -1
- package/dist/scripts/{8280-2e8afc8fa9-lite.chunk.js → 8280-6d9466991b-lite.chunk.js} +1 -1
- package/dist/scripts/{8280-2e8afc8fa9-lite.chunk.js.map → 8280-6d9466991b-lite.chunk.js.map} +1 -1
- package/dist/scripts/8451-9ab30b6e35-lite.chunk.js +2 -0
- package/dist/scripts/8451-9ab30b6e35-lite.chunk.js.map +1 -0
- package/dist/scripts/9241-c523dc7aac-lite.chunk.js +2 -0
- package/dist/scripts/9241-c523dc7aac-lite.chunk.js.map +1 -0
- package/dist/scripts/9345-df0cbb196f-lite.chunk.js +3 -0
- package/dist/scripts/9345-df0cbb196f-lite.chunk.js.map +1 -0
- package/dist/scripts/9630-6bcd453382-lite.chunk.js +2 -0
- package/dist/scripts/9630-6bcd453382-lite.chunk.js.map +1 -0
- package/dist/scripts/{9649-29507ab972-lite.chunk.js → 9649-fc995e7732-lite.chunk.js} +1 -1
- package/dist/scripts/{9649-29507ab972-lite.chunk.js.map → 9649-fc995e7732-lite.chunk.js.map} +1 -1
- package/dist/scripts/9767-a23d603cc5-lite.chunk.js +2 -0
- package/dist/scripts/9767-a23d603cc5-lite.chunk.js.map +1 -0
- package/dist/scripts/{9963-f2ce3a321f-lite.chunk.js → 9963-8c527743bb-lite.chunk.js} +1 -1
- package/dist/scripts/{9963-f2ce3a321f-lite.chunk.js.map → 9963-8c527743bb-lite.chunk.js.map} +1 -1
- package/dist/scripts/{bundle-5b65703152.min.js → bundle-6a0c1aecd5.min.js} +3 -3
- package/dist/scripts/{bundle-5b65703152.min.js.map → bundle-6a0c1aecd5.min.js.map} +1 -1
- package/package.json +1 -1
- package/dist/scripts/1362-56810ef4c8-lite.chunk.js +0 -3
- package/dist/scripts/1362-56810ef4c8-lite.chunk.js.map +0 -1
- package/dist/scripts/3677-4904f30c6a-lite.chunk.js +0 -2
- package/dist/scripts/3677-4904f30c6a-lite.chunk.js.map +0 -1
- package/dist/scripts/3816-15829f9da8-lite.chunk.js +0 -2
- package/dist/scripts/3816-15829f9da8-lite.chunk.js.map +0 -1
- package/dist/scripts/3978-a551dd2648-lite.chunk.js +0 -2
- package/dist/scripts/3978-a551dd2648-lite.chunk.js.map +0 -1
- package/dist/scripts/4400-755a158a52-lite.chunk.js +0 -2
- package/dist/scripts/4400-755a158a52-lite.chunk.js.map +0 -1
- package/dist/scripts/5135-166ec46620-lite.chunk.js +0 -2
- package/dist/scripts/5135-166ec46620-lite.chunk.js.map +0 -1
- package/dist/scripts/5780-eb7c4d1db7-lite.chunk.js.map +0 -1
- package/dist/scripts/5870-eae3bb745c-lite.chunk.js +0 -3
- package/dist/scripts/5870-eae3bb745c-lite.chunk.js.map +0 -1
- package/dist/scripts/618-996d8b560b-lite.chunk.js +0 -2
- package/dist/scripts/618-996d8b560b-lite.chunk.js.map +0 -1
- package/dist/scripts/6379-3414d6c295-lite.chunk.js +0 -2
- package/dist/scripts/6379-3414d6c295-lite.chunk.js.map +0 -1
- package/dist/scripts/647-6a592af19b-lite.chunk.js +0 -2
- package/dist/scripts/647-6a592af19b-lite.chunk.js.map +0 -1
- package/dist/scripts/6909-6805b6a0d9-lite.chunk.js +0 -2
- package/dist/scripts/6909-6805b6a0d9-lite.chunk.js.map +0 -1
- package/dist/scripts/7234-bcddfe2112-lite.chunk.js +0 -2
- package/dist/scripts/7234-bcddfe2112-lite.chunk.js.map +0 -1
- package/dist/scripts/7742-9e79cc452b-lite.chunk.js +0 -2
- package/dist/scripts/7742-9e79cc452b-lite.chunk.js.map +0 -1
- package/dist/scripts/8451-0103210a8f-lite.chunk.js +0 -2
- package/dist/scripts/8451-0103210a8f-lite.chunk.js.map +0 -1
- package/dist/scripts/9241-2386134dd3-lite.chunk.js +0 -2
- package/dist/scripts/9241-2386134dd3-lite.chunk.js.map +0 -1
- package/dist/scripts/9345-0a7f58bb53-lite.chunk.js +0 -3
- package/dist/scripts/9345-0a7f58bb53-lite.chunk.js.map +0 -1
- package/dist/scripts/9630-ca2a850260-lite.chunk.js +0 -2
- package/dist/scripts/9630-ca2a850260-lite.chunk.js.map +0 -1
- package/dist/scripts/9767-1b583ceb6c-lite.chunk.js +0 -2
- package/dist/scripts/9767-1b583ceb6c-lite.chunk.js.map +0 -1
- /package/dist/css/{1362-lite-7aa2f8a851.chunk.css → 2258-lite-7aa2f8a851.chunk.css} +0 -0
- /package/dist/scripts/{1362-56810ef4c8-lite.chunk.js.LICENSE.txt → 2258-6851fce9d7-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{5870-eae3bb745c-lite.chunk.js.LICENSE.txt → 5870-057fef9e27-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{6741-969accd2bc-lite.chunk.js.LICENSE.txt → 6741-9ccafc6ff5-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{6948-3eab72b8e2-lite.chunk.js.LICENSE.txt → 6948-9121ca4b39-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{9345-0a7f58bb53-lite.chunk.js.LICENSE.txt → 9345-df0cbb196f-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{bundle-5b65703152.min.js.LICENSE.txt → bundle-6a0c1aecd5.min.js.LICENSE.txt} +0 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[7742],{39902:(e,t,n)=>{n.d(t,{FN:()=>f,SW:()=>v,fh:()=>p});var r=n(32735),i=n(20354),a=n(75896);function o(e){return function(e){if(Array.isArray(e))return c(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||l(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(e,t){if(e){if("string"==typeof e)return c(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)?c(e,t):void 0}}function c(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 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 s(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 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 i=0;for(r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]])}return n},m=50;function p(e,t){var n=a.m.chunk(e,m).map((function(e){return t(a.m.uniq(e))})),r=i.a.useBasicFetchAll(n),o=a.m.flatten(r.data),l=r.data.length?o.reduce((function(e,t){return Object.assign(Object.assign({},e),s({},t.id,t))}),{}):null;return{itemsArr:o,items:l,isFetching:r.isFetching}}function f(e,t,n){var i=v({getRequest:t,_getKey:n}),a=i.fetchItems,o=d(i,["fetchItems"]);return r.useEffect((function(){e.length&&a(e)}),[null==e?void 0:e.length]),o}function v(e){var t,n,c,d,p,f=null!==(t=e._getKey)&&void 0!==t?t:function(e){return"object"===u(e)?e.id:e},v=r.useRef(new Set),y=(d=r.useState([]),p=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,i,a,o,l=[],c=!0,u=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=a.call(n)).done)&&(l.push(r.value),l.length!==t);c=!0);}catch(e){u=!0,i=e}finally{try{if(!c&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(u)throw i}}return l}}(d,p)||l(d,p)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),h=y[0],g=y[1],b=i.a.useBasicFetchAll(h),E=a.m.flatten(b.data),k=b.data.length?E.reduce((function(e,t){return Object.assign(Object.assign({},e),s({},f(t),t))}),{}):null;return{hasFirstRequestCompleted:!!(null===(c=null===(n=b.responses)||void 0===n?void 0:n[0])||void 0===c?void 0:c.hasCompleted),itemsArr:E,items:k,isFetching:b.isFetching,fetchItems:function(t){if(null==t?void 0:t.length){var n=[];t.forEach((function(e){var t=f(e);v.current.has(t)||(n.push(e),v.current.add(t))})),n.length&&g((function(t){return[].concat(o(t),o(a.m.chunk(n,m).map(e.getRequest)))}))}}}}},37788:(e,t,n)=>{n.r(t),n.d(t,{MyVideosView:()=>X});var r=n(32735),i=n(70680),a=n(23481),o=n(20354),l=n(28400),c=n(65858),u=n(43500),s=n(73518),d=n(39958),m=n(1302),p=n(91693),f=n(37395),v=n(4201),y=n(83345),h=n(1860),g=n(30254),b=n(75100),E=n(51365),k=n(16714),V=n(183),A=n(31949),O=n(299),S=n(91286),w=n(22902),F=n(79612),M=n(35223),C=n(58535),j=n(14070),x=n(97291),L=n(58321),N=n(44110),I=n(97816),P=n(10741),D=n(22490),B=n(98860),R=n(12617),_=n(45967),T=n(65202),U=n(74796),q=n(14305),H=n(61970),Y=n(9218),W=n(18097);const K={uploadingList:"wg7hV"};var Q="default.myVideos";function X(e){var t,n,X,Z,$,J,z,G;(0,F.M)({title:a.T.getPhrase(Q,"pageTitle")});var ee=(0,i.I0)(),te=(0,L.U)({locationContext:c.LZ.VideoThumbnail}).commonVideoProps,ne=(0,w.T)(),re=ne.hasPermissions,ie=ne.hasLocalPermissions,ae=(0,_.q)().handleDragEnd,oe=(0,v.of)().focusSearchBar,le=o.a.useBasicFetch(A.N.currentUser()),ce=o.a.useBasicFetch((null===(t=le.data)||void 0===t?void 0:t.isAuthenticated)&&A.N.workspace()),ue=null===(X=null===(n=ce.data)||void 0===n?void 0:n.categoryTree)||void 0===X?void 0:X.id,se=(0,B.P)(ue),de=(0,H.y)(),me=(0,H.W)(null===(Z=ce.data)||void 0===Z?void 0:Z.id,null===($=ce.data)||void 0===$?void 0:$.categoryTree.id),pe=(0,N.i)(),fe=(0,U.f)(),ve=function(e,t){return ce.data?R.E.videos(ue,e,t):null},ye=!ie(k.E.ViewMyVideosLanding)&&le.hasCompleted,he=o.a.useBasicFetch(ye&&ve(e.cursor,e.typeFilter));(0,S.v)(he);var ge=(0,T.J)({onRemove:function(e,t){return o.a.getFetch(ee)(ve(e,t))}}),be=ge.uploadingVideos,Ee=ge.onClickAlternate,ke=ge.onClickDelete,Ve=ge.processingIds,Ae=(null===(J=he.data)||void 0===J?void 0:J.data.length)&&Ve?he.data.data.filter((function(e){return!Ve[e.id]})):[];(0,I.V)(Ae);var Oe=(0,O.X)(Ae);if(ie(k.E.ViewMyVideosLanding))return r.createElement(q.V,null);function Se(){return{action:j.e.MyVideos.MY_VIDEOS,application:x.O.MY_VIDEOS,params:{cursor:e.cursor,previous:e.previous,type:e.typeFilter}}}return r.createElement(E.M.Provider,{value:de},r.createElement("div",{className:"px-3"},r.createElement("div",{className:"d-flex justify-content-between"},r.createElement("h1",{className:"h2 mb-0"},r.createElement(y.x,{namespace:Q,phrase:"header"})),r.createElement("div",null,r.createElement("div",{className:"d-sm-none"},r.createElement(Y.c,{canUpload:re(k.C.UploadVideo)})),r.createElement("div",{className:"ms-2 d-sm-inline-block d-none"},r.createElement(p.h,{svgName:M.vn.Search,appLink:{application:x.O.SEARCH,action:j.e.Search.HOME,params:{source:u.fi.MyVideos}},className:"btn btn-outline-dark me-2",onClick:oe,analyticsData:{},analyticsOptions:{entity:c.py.SearchResults,location:c.LZ.MyVideos,actionType:c.Vw.Click,descriptor:c.Bk.MyVideos}},r.createElement(y.x,{namespace:Q,phrase:"searchMyVideos"})),r.createElement(p.h,{svgName:M.vn.Plus,appLink:{application:x.O.MY_VIDEOS,action:j.e.MyVideos.ADD_FOLDER,args:[null===(z=ce.data)||void 0===z?void 0:z.id]},className:"btn btn-outline-dark"},r.createElement(y.x,{namespace:Q,phrase:"addFolder"}))))),r.createElement("hr",null),r.createElement(s.p,{handleDragEnd:ae,dragOverlayComponent:C.U,source:ce.data},r.createElement("div",null,!(null==se?void 0:se.hasCompleted)&&r.createElement(m.i,null),!!(null===(G=null==se?void 0:se.items)||void 0===G?void 0:G.length)&&r.createElement("div",{className:"mx-n2"},r.createElement(d.$,{folders:se.items,getAppLink:function(e){return{application:x.O.MY_VIDEOS,action:j.e.MyVideos.MY_VIDEOS_FOLDER,args:[e.id,l.m.slugify(e.name)]}},expandFolders:!1,getFolderActions:function(e){return fe("folder",e)},drag:!0,drop:!0})),r.createElement(g.X,{allowBulkAction:!0,allowFilter:!0,checkboxHelper:Oe,getVideosBulkAction:me,locationContext:c.LZ.MyVideos,typeFilter:e.typeFilter,getAppLink:function(){return Se()}}),!!(null==be?void 0:be.length)&&r.createElement("div",{className:"position-relative ".concat(K.uploadingList)},be.map((function(e){return r.createElement(W.X,{item:e,onClickAlternate:Ee,onClickDelete:ke,key:e.id,allowBulkAction:!0})}))),function(){var t,n;return le.data&&he.data?(null==Ae?void 0:Ae.length)||(null==be?void 0:be.length)?r.createElement(r.Fragment,null,r.createElement(b.E4,{videos:Ae,getVideoAppLink:function(e,t){var n,r;return D.W.getAppLink(e,Object.assign(Object.assign({},t),{context:V.Q.CategoryTree,contextId:null===(n=ce.data)||void 0===n?void 0:n.categoryTree.id,includeContext:null===(r=le.data)||void 0===r?void 0:r.isAuthenticated}))},presentationAudiences:pe.data,canRemovePrivateVideos:!0,allowBulkAction:!0,getVideosBulkAction:me,typeFilter:e.typeFilter,checkboxHelper:Oe,hasPermissions:re,drag:!0,getPreviewQuestionsAppLink:function(e){return P.j.getPreviewQuestionsAppLink(e)},commonVideoProps:te}),!!(null===(n=null===(t=he.data)||void 0===t?void 0:t.pagination)||void 0===n?void 0:n.cursors)&&r.createElement(f.t,{appLink:Se(),cursors:{next:he.data.pagination.cursors.next,previous:e.cursor},buttonVariant:"outline-dark",className:"py-2 float-end",prevHack:!0})):r.createElement(q.K,{canUpload:re(k.C.UploadVideo)}):r.createElement("div",{className:"mx-n2"},r.createElement(h.S,{allowBulkActions:!0}))}()))))}},97816:(e,t,n)=>{n.d(t,{V:()=>l,l:()=>c});var r=n(1575),i=n(39902),a=n(31908);function o(e){return e?Array.isArray(e)?e.filter((function(e){return!!e&&(a.M.isVideo(e)||a.M.isClip(e))})):"data"in e?e.data.filter((function(e){return!!e&&(a.M.isVideo(e)||a.M.isClip(e))})):[]:[]}function l(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=o(e).map((function(e){return e.id}));(0,i.FN)(n,(function(e){return r.R.videoMixinAssocs(e,t.flightNamespace)}),null)}function c(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=(0,i.SW)({getRequest:function(t){return r.R.videoMixinAssocs(t,e.flightNamespace)}}).fetchItems;return{fetchObjects:function(e){return t(o(e).map((function(e){return e.id})))}}}}}]);
|
|
2
|
+
//# sourceMappingURL=7742-8a303defe5-lite.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/7742-8a303defe5-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/hooks/UseBatchFetch.ts","file:///app/packages/projects/lite/src/apps/my-videos/views/my-videos/my-videos.scss","file:///app/packages/projects/lite/src/apps/my-videos/views/my-videos/MyVideosView.tsx","file:///app/packages/projects/lite/src/shared/hooks/useVideoMixin.ts"],"sourcesContent":["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}\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 };\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<T>(\n objs: T[],\n getRequest: (items: T[]) => Flight.Request,\n _getKey?: (obj: T) => string\n) {\n const { fetchItems, ...data } = useGrowingBatchFetchFunc({ getRequest, _getKey });\n\n React.useEffect(() => {\n if (!objs.length)\n return;\n\n fetchItems(objs);\n }, [objs?.length]);\n\n return data;\n}\n\ninterface UseGrowingBatchFetchFuncOptions<T> {\n getRequest: (items: T[]) => Flight.Request;\n _getKey?: (obj: T) => 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<T>(options: UseGrowingBatchFetchFuncOptions<T>) {\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: T[]) {\n if (!objs?.length)\n return;\n\n const unfetchedItems: T[] = [];\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<T>(unfetchedItems, CHUNK_SIZE).map(options.getRequest) ]));\n }\n\n const responses = Flight.useBasicFetchAll<T[]>(requests);\n const itemsArr = ArrayHelper.flatten(responses.data);\n const items = responses.data.length\n ? itemsArr.reduce((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}","// extracted by mini-css-extract-plugin\nexport default {\"uploadingList\":\"wg7hV\"};","import * as React from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { Cursors } from 'libs/common/backbone/interfaces';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { EntityType, LocationContext, SearchSourceDescriptor, UserAction } from 'libs/analytics/interfaces';\n\nimport { SearchIndices, SourceFilterOptions } from 'libs/shared/apps/search/interfaces';\nimport { DragDropMoveContext } from 'libs/shared/components/drag-drop-move/DragDropMoveContext';\nimport { FolderList } from 'libs/shared/components/folder-list/FolderList';\nimport { PartialFolderList } from 'libs/shared/components/folder-list/partial-loading/PartialFolderList';\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\nimport { Pagination } from 'libs/shared/components/pagination/Pagination';\nimport { useFocusSearchBar } from 'libs/shared/components/search-bar/SearchUtils';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { PartialVideoList } from 'libs/shared/components/video-list/partial-loading/PartialVideoList';\nimport { VideoListActions } from 'libs/shared/components/video-list/video-list-actions/VideoListActions';\nimport { VideoList } from 'libs/shared/components/video-list/VideoList';\nimport { VideoActionsContext } from 'libs/shared/context/VideoActionsContext';\nimport { LocalPermissionName, PermissionName } from 'libs/shared/enums/PermissionName';\nimport { RelatedVideosContext } from 'libs/shared/enums/RelatedVideosContext';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { BulkCheckboxManager, useBulkCheckboxManager } from 'libs/shared/hooks/useBulkCheckboxManager';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { BasePaginatedCollection, CurrentUser, Folder, Library, VideoTypes } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { DragDropOverlay } from 'shared/components/drag-drop-overlay/DragDropOverlay';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { useCommonVideoProps } from 'shared/hooks/useCommonVideoProps';\nimport { usePresentationAudiences } from 'shared/hooks/usePresentationAudiences';\nimport { useVideoMixin } from 'shared/hooks/useVideoMixin';\nimport { InteractiveHelpers } from 'shared/utils/InteractiveHelper';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\n\nimport { useFetchAllChildFolders } from 'apps/libraries/hooks/UseFetchAllChildFolders';\nimport { MyVideosRequests } from 'apps/my-videos/flight-requests/MyVideosRequests';\nimport { useDragDropMove } from 'apps/my-videos/hooks/useDragDropMove';\nimport { useUploadItems } from 'apps/my-videos/hooks/useUploadItems';\nimport { useGetFolderActions } from 'apps/my-videos/utils/getFolderActions';\nimport { MyVideosEmptyState, MyVideosPublicEmptyState } from 'apps/my-videos/views/my-videos/empty-state/MyVideosEmptyState';\nimport { useMyVideosViewActions, useMyVideosViewBulkActions } from 'apps/my-videos/views/my-videos/MyVideosViewUtils';\nimport { UploadFileSelect } from 'apps/upload/components/upload-file-select/UploadFileSelect';\nimport { UploadingItem } from 'apps/upload/components/uploading-item/UploadingItem';\n\nimport styles from './my-videos.scss';\n\nconst namespace = 'default.myVideos';\n\ninterface MyVideosViewProps {\n cursor?: string;\n previous?: string;\n typeFilter?: SearchIndices[];\n}\n\nexport function MyVideosView(props: MyVideosViewProps): JSX.Element {\n useSetPageMetadata({ title: LanguageService.getPhrase(namespace, 'pageTitle') });\n\n const dispatch = useDispatch();\n\n const { commonVideoProps } = useCommonVideoProps({ locationContext: LocationContext.VideoThumbnail });\n const { hasPermissions, hasLocalPermissions } = usePermissions();\n const { handleDragEnd } = useDragDropMove();\n\n const { focusSearchBar } = useFocusSearchBar();\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n\n const workspace = Flight.useBasicFetch<Library>(\n currentUser.data?.isAuthenticated && UserRequests.workspace()\n );\n const folderId = workspace.data?.categoryTree?.id;\n const folders = useFetchAllChildFolders(folderId);\n \n const videoActions = useMyVideosViewActions();\n const getVideosAction = useMyVideosViewBulkActions(workspace.data?.id, workspace.data?.categoryTree.id);\n\n const audiences = usePresentationAudiences();\n const getFolderActions = useGetFolderActions();\n\n const getMyVideosRequest = (cursor?: string, typeFilter?: SearchIndices | SearchIndices[]) => {\n if (!workspace.data)\n return null;\n\n // Delete the above when master supports the new assoc types.\n return MyVideosRequests.videos(folderId, cursor, typeFilter);\n };\n\n const fetchNext = (cursor?: string, typeFilter?: SearchIndices | SearchIndices[]) => {\n return Flight.getFetch(dispatch)(getMyVideosRequest(cursor, typeFilter));\n };\n\n const shouldFetch = !hasLocalPermissions(LocalPermissionName.ViewMyVideosLanding) && currentUser.hasCompleted;\n\n const videos = Flight.useBasicFetch<BasePaginatedCollection<VideoTypes>>(\n shouldFetch && getMyVideosRequest(props.cursor, props.typeFilter)\n );\n\n useHandleObjectError(videos);\n\n const {\n uploadingVideos,\n onClickAlternate,\n onClickDelete,\n processingIds\n } = useUploadItems({ onRemove: fetchNext });\n\n const omittedVideos = videos.data?.data.length && processingIds\n ? videos.data.data.filter(v => !processingIds[v.id])\n : [];\n \n useVideoMixin(omittedVideos);\n\n const CheckboxHelper: BulkCheckboxManager = useBulkCheckboxManager(omittedVideos);\n\n if (hasLocalPermissions(LocalPermissionName.ViewMyVideosLanding))\n return <MyVideosPublicEmptyState />;\n\n function getMyVideosAppLink(): Core.AppLink {\n return {\n action: Actions.MyVideos.MY_VIDEOS,\n application: AppChannels.MY_VIDEOS,\n params: { cursor: props.cursor, previous: props.previous, type: props.typeFilter }\n };\n }\n\n function getCursors(): Cursors {\n return { next: videos.data.pagination.cursors.next, previous: props.cursor };\n }\n \n return (\n <VideoActionsContext.Provider value={videoActions}>\n <div className='px-3'>\n <div className='d-flex justify-content-between'>\n <h1 className='h2 mb-0'><Text namespace={namespace} phrase='header' /></h1>\n <div>\n <div className='d-sm-none'>\n <UploadFileSelect canUpload={hasPermissions(PermissionName.UploadVideo)} />\n </div>\n <div className='ms-2 d-sm-inline-block d-none'>\n <IconButton\n svgName={cvSvgLibrary.Search}\n appLink={{\n application: AppChannels.SEARCH,\n action: Actions.Search.HOME,\n params: {\n source: SourceFilterOptions.MyVideos\n }\n }}\n className='btn btn-outline-dark me-2'\n onClick={focusSearchBar}\n analyticsData={{}}\n analyticsOptions={{\n entity: EntityType.SearchResults,\n location: LocationContext.MyVideos,\n actionType: UserAction.Click,\n descriptor: SearchSourceDescriptor.MyVideos\n }}\n >\n <Text namespace={namespace} phrase='searchMyVideos' />\n </IconButton>\n <IconButton\n svgName={cvSvgLibrary.Plus}\n appLink={{\n application: AppChannels.MY_VIDEOS,\n action: Actions.MyVideos.ADD_FOLDER,\n args: [workspace.data?.id]\n }}\n className='btn btn-outline-dark'\n >\n <Text namespace={namespace} phrase='addFolder' />\n </IconButton>\n </div>\n </div>\n </div>\n <hr />\n <DragDropMoveContext\n handleDragEnd={handleDragEnd}\n dragOverlayComponent={DragDropOverlay}\n source={workspace.data}>\n <div>\n {!folders?.hasCompleted && <PartialFolderList />}\n {!!folders?.items?.length &&\n <div className='mx-n2'>\n <FolderList\n folders={folders.items}\n getAppLink={(f: Folder) => ({\n application: AppChannels.MY_VIDEOS,\n action: Actions.MyVideos.MY_VIDEOS_FOLDER,\n args: [ f.id, TextHelper.slugify(f.name) ]\n })}\n expandFolders={false}\n getFolderActions={f => getFolderActions('folder', f)}\n drag\n drop\n />\n </div>\n }\n <VideoListActions\n allowBulkAction\n allowFilter\n checkboxHelper={CheckboxHelper}\n getVideosBulkAction={getVideosAction}\n locationContext={LocationContext.MyVideos}\n typeFilter={props.typeFilter}\n getAppLink={() => getMyVideosAppLink()}\n />\n {!!uploadingVideos?.length && (\n <div className={`position-relative ${styles.uploadingList}`}>\n {uploadingVideos.map(uploadingVideo => (\n <UploadingItem\n item={uploadingVideo}\n onClickAlternate={onClickAlternate}\n onClickDelete={onClickDelete}\n key={uploadingVideo.id}\n allowBulkAction\n />\n ))}\n </div>\n )}\n {(() => {\n if (!currentUser.data || !videos.data)\n return <div className='mx-n2'><PartialVideoList allowBulkActions /></div>;\n\n if (!omittedVideos?.length && !uploadingVideos?.length)\n return <MyVideosEmptyState canUpload={hasPermissions(PermissionName.UploadVideo)} />;\n\n return (\n <>\n <VideoList\n videos={omittedVideos}\n getVideoAppLink={(v, opts) => VideoAppLinkHelper.getAppLink(v, {\n ...opts,\n context: RelatedVideosContext.CategoryTree,\n contextId: workspace.data?.categoryTree.id,\n includeContext: currentUser.data?.isAuthenticated\n })}\n presentationAudiences={audiences.data}\n canRemovePrivateVideos\n allowBulkAction\n getVideosBulkAction={getVideosAction}\n typeFilter={props.typeFilter}\n checkboxHelper={CheckboxHelper}\n hasPermissions={hasPermissions}\n drag\n getPreviewQuestionsAppLink={interactive =>\n InteractiveHelpers.getPreviewQuestionsAppLink(interactive)}\n commonVideoProps={commonVideoProps}\n />\n {!!videos.data?.pagination?.cursors && (\n <Pagination\n appLink={getMyVideosAppLink()}\n cursors={getCursors()}\n buttonVariant='outline-dark'\n className='py-2 float-end'\n prevHack\n />\n )}\n </>\n );\n })()}\n </div>\n </DragDropMoveContext>\n </div>\n </VideoActionsContext.Provider>\n );\n}\n","import { Flight } from 'libs/common/react/index';\n\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { useGrowingBatchFetch, useGrowingBatchFetchFunc } from 'libs/shared/hooks/UseBatchFetch';\nimport { Clip, ClipCollection, Video, VideoCollection } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\ntype Types = Video[] | VideoCollection | Clip[] | ClipCollection;\n\nfunction getValidObjects(objects: Types): (Video | Clip)[] {\n if (!objects)\n return [];\n\n if (Array.isArray(objects))\n return objects.filter(o => !!o && (VideoHelper.isVideo(o) || VideoHelper.isClip(o)));\n\n if ('data' in objects)\n return objects.data.filter(o => !!o && (VideoHelper.isVideo(o) || VideoHelper.isClip(o)));\n\n return [];\n}\n\ninterface VideoMixinOptions {\n /**\n * If the videos that are having new data mixed into are sitting on an explicit Flight namespace,\n * providing that namespace here is required\n */\n flightNamespace?: string;\n}\n\nexport function useVideoMixin(objects: Types, options: VideoMixinOptions = {}) {\n const videoIds = getValidObjects(objects).map(v => v.id);\n\n useGrowingBatchFetch(\n videoIds,\n ids => VideoRequests.videoMixinAssocs(ids, options.flightNamespace),\n null\n );\n}\n\nexport function useVideoMixinFunc(options: VideoMixinOptions = {}) {\n function getRequest(ids: string[]): Flight.Request {\n return VideoRequests.videoMixinAssocs(ids, options.flightNamespace);\n }\n \n function fetchObjects(items: Types) {\n return fetchItems(getValidObjects(items).map(v => v.id));\n }\n\n const { fetchItems } = useGrowingBatchFetchFunc({ getRequest });\n\n return { fetchObjects };\n}"],"names":["CHUNK_SIZE","useBatchFetch","itemIds","getRequest","requests","map","chunk","responses","itemsArr","data","items","length","reduce","acc","item","id","isFetching","useGrowingBatchFetch","objs","_getKey","useGrowingBatchFetchFunc","fetchItems","options","getKey","obj","fetchedItems","Set","setRequests","hasFirstRequestCompleted","hasCompleted","unfetchedItems","forEach","key","current","has","push","add","r","namespace","MyVideosView","props","useSetPageMetadata","title","LanguageService","dispatch","commonVideoProps","useCommonVideoProps","locationContext","usePermissions","hasPermissions","hasLocalPermissions","handleDragEnd","useDragDropMove","focusSearchBar","currentUser","UserRequests","workspace","isAuthenticated","folderId","categoryTree","folders","videoActions","getVideosAction","audiences","usePresentationAudiences","getMyVideosRequest","cursor","typeFilter","MyVideosRequests","shouldFetch","videos","useUploadItems","onRemove","uploadingVideos","onClickAlternate","onClickDelete","processingIds","omittedVideos","filter","v","useVideoMixin","CheckboxHelper","useBulkCheckboxManager","getMyVideosAppLink","action","application","params","previous","type","VideoActionsContext","value","className","Text","phrase","UploadFileSelect","canUpload","PermissionName","IconButton","svgName","appLink","source","onClick","analyticsData","analyticsOptions","entity","location","actionType","descriptor","args","DragDropMoveContext","dragOverlayComponent","DragDropOverlay","PartialFolderList","FolderList","getAppLink","f","TextHelper","name","expandFolders","getFolderActions","drag","drop","VideoListActions","allowBulkAction","allowFilter","checkboxHelper","getVideosBulkAction","uploadingVideo","UploadingItem","VideoList","getVideoAppLink","opts","VideoAppLinkHelper","context","RelatedVideosContext","contextId","includeContext","presentationAudiences","canRemovePrivateVideos","getPreviewQuestionsAppLink","interactive","InteractiveHelper","pagination","cursors","Pagination","next","buttonVariant","prevHack","MyVideosEmptyState","PartialVideoList","allowBulkActions","getValidObjects","objects","Array","isArray","o","videoIds","ids","flightNamespace","useVideoMixinFunc","fetchObjects"],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[8],{65042:(e,t,a)=>{a.d(t,{a:()=>h});var n=a(32735),r=a(23481),o=a(75902),i=a(35223);function l(e){return l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},l(e)}function s(e,t,a){return(t=function(e){var t=function(e){if("object"!=l(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var a=t.call(e,"string");if("object"!=l(a))return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==l(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}var c=s(s(s({},o.GL.Archived,{svgName:i.vn.Archive,svgColorClassName:"text-secondary",actionName:"Archive",statusName:"Archived"}),o.GL.Draft,{svgName:i.vn.Edit,svgColorClassName:"",actionName:"Draft",statusName:"Draft"}),o.GL.Published,{svgName:i.vn.VisibleOn,svgColorClassName:"text-success",actionName:"Publish",statusName:"Published"}),d=a(83914),u=a(38129);const m={badge:"ciO47",draftLight:"A6Yi7",draftDark:"fkXBX",published:"Ovzwy",archived:"r_dco"};function p(e){var t="rounded-pill d-flex align-items-center ps-2 py-1 fw-semibold ms-2 ".concat(m.badge);switch(e.status){case u.GL.Published:t+=" ".concat(m.published);break;case u.GL.Archived:t+=" ".concat(m.archived);break;case u.GL.Draft:t+=" ".concat(e.darkMode?m.draftDark:m.draftLight)}return e.wrapperClassName&&(t+=" ".concat(e.wrapperClassName)),t}function g(e){var t=c[e.status],a=t.statusName,r=t.svgName;return n.createElement("div",{className:p(e)},n.createElement(d.x,{svgName:r}),n.createElement("div",null,a))}var v=a(85219);const f={stickyWrapper:"zhw6K",badgeWrapper:"NOvn1",badge:"pxQSR"};var b=r.T.encloseNamespace("shared.classificationPreviewBanner");function h(e){return n.createElement("div",{className:"".concat(f.stickyWrapper," py-2 d-flex justify-content-space-between bg-dark text-white mx-2 rounded")},n.createElement("div",{className:"position-absolute d-flex ".concat(f.badgeWrapper)},n.createElement(g,{status:e.status,wrapperClassName:"".concat(f.badge),darkMode:!0})),n.createElement("div",{className:"flex-grow-1"},n.createElement("h1",{className:"text-center my-3 h5"},n.createElement(v.V,{emoji:"👀"}),b("topic"===e.type?"topicTitle":"companyTitle"))))}},67814:(e,t,a)=>{a.d(t,{p:()=>D,v:()=>T});var n=a(32735),r=a(110),o=a(50690),i=a(22406),l=a(78408),s=a(83657),c=a(23481),d=a(15611),u=a(83914),m=a(35223),p="shared.backButton";function g(e){var t=Object.assign({textShadow:!0},e),a=t.backToName,r=t.appLink,o=t.color,i=t.extraClasses,l=t.textShadow,s=a?c.T.getPhrase(p,"backTo",{backToName:a}):c.T.getPhrase(p,"back"),g="black"===o?"":"text-white",v=l?"text-shadow":"";return n.createElement(d.F,{appLink:r,className:"d-inline-flex align-items-center h5 mb-0 ".concat(i," ").concat(g," ").concat(v)},n.createElement(u.x,{svgName:m.vn.ChevronLeft,size:u.S.Medium}),n.createElement("span",{className:"ms-1"},s))}g.defaultProps={color:"black",extraClasses:""};var v=a(4527),f=a(83345),b=a(7733),h=a(10587),y=a(94232),C=a(54610),E=a(79967),k=a(9085),w=a(67453);const N={bannerContent:"sSCTB",actionsContainer:"Z5WI2",bannerContentWithLogo:"rgs7Q",container:"M51HJ",logoContainer:"vkeJk",logoContainerLeft:"M3U9B",logoHeading:"EtRwC",specialEventContainer:"rOxDc",headingLarge:"_8pnV",heading:"JXVBH"};var L="".concat(h.y[C.__.Banners].width,":").concat(h.y[C.__.Banners].height);function x(e){return e.length<160?"h1":N.headingLarge}var D=n.memo((function(e){var t,a,c,d,u=e.heading,m=e.banner,p=e.imageCdnUrl,h=e.actions,D=e.sortComponent,T=e.blockColourClass,P=e.specialEvent,A=n.useContext(y.n),S=(0,E.k)().xxl?1920:1200,O=n.useMemo((function(){if(!P||e.showComingSoon)return!1;var t=r.O.format(new Date,"YYYY-MM-DD");return P.endDate?P.startDate<=t&&P.endDate>=t:P.startDate===t}),[P]),M=e.imageOptions||{width:S,ratio:L,resizeType:C.Nq.Cover},I=!!m&&!!p&&w.j.createBannerUrl(m,{fallbackBaseUrl:p,fallbackCategoryName:u,type:C.__.Banners},M),B={className:"banner banner-header ".concat(e.bannerClassName),style:I?{backgroundImage:"url('".concat(I,"')")}:{}};!m&&T&&(delete B.style,B.className+=" ".concat(T));var j=e.detailsComponent,W=(0,k.x)(e.heading,b.o);return o.b.renderInPortalIfExists(n.createElement("header",Object.assign({},B),n.createElement("div",{className:"container ".concat(N.container," position-relative inner-banner")},e.backButtonAppLink&&n.createElement("div",{className:"pt-3"},n.createElement(g,{appLink:e.backButtonAppLink,backToName:e.backButtonText,extraClasses:e.backButtonClasses,color:"white"})),n.createElement("div",{className:"".concat(e.alignLogoLeft?"position-absolute top-50 start-0 translate-middle-y w-100 ps-4":"".concat(N.bannerContent," px-2 ").concat((null===(t=e.logo)||void 0===t?void 0:t.url)?N.bannerContentWithLogo:""))},!!P&&n.createElement("div",{className:"position-relative ".concat(N.specialEventContainer)},n.createElement(l.s,{body:{type:P.endDate?"range":"day",text:P.endDate?"".concat(r.O.format(P.startDate,"DD"),"-").concat(r.O.format(P.endDate,"DD")):r.O.format(P.startDate,"DD")},month:function(e){return e.endDate?r.O.isSame(e.startDate,e.endDate,"month")?r.O.format(e.startDate,"MMMM"):"".concat(r.O.format(e.startDate,"MMM")," - ").concat(r.O.format(e.endDate,"MMM")):r.O.format(e.startDate,"MMMM")}(P),theme:e.calendarTheme})),n.createElement("div",null,O&&n.createElement("div",{className:"rounded-pill py-1 px-2 my-1 me-1 fw-semibold bg-light-blue lh-1 d-inline-block"},n.createElement(f.x,{namespace:"shared.bannerHeader",phrase:"onToday"})),e.showComingSoon&&n.createElement(i.r,{className:"pe-2 fw-semibold mb-1 rounded-pill justify-content-start text-nowrap"}),n.createElement("div",{className:"d-flex align-items-center"},e.alignLogoLeft&&(null===(a=e.logo)||void 0===a?void 0:a.url)&&n.createElement("div",{className:"".concat(N.logoContainerLeft," d-none d-md-block rounded-circle overflow-hidden me-3 ").concat(W)},n.createElement(v.w,{src:w.j.createUrl(null===(c=e.logo)||void 0===c?void 0:c.url,{size:C.h2.Medium}),style:{backgroundColor:e.logoBgColour}})),n.createElement("h1",{className:"text-white text-shadow pe-3 position-static ".concat(N.heading," ").concat(x(u)," ").concat(e.alignLogoLeft?"w-50":"")},u,j&&n.createElement(j,null)))),!!h&&n.createElement("div",{className:N.actionsContainer},n.createElement(s.e,{actions:h,sortComponent:D,actionsDropdownClassName:e.actionsDropdownClassName}))),!e.alignLogoLeft&&!!(null===(d=e.logo)||void 0===d?void 0:d.url)&&n.createElement("div",{className:N.logoContainer},n.createElement("img",{src:w.j.createUrl(e.logo.url,{size:C.h2.Medium}),className:"rounded-circle"})))),null==A?void 0:A.container)}),(function(e,t){var a,n;return e.actions===t.actions&&e.heading===t.heading&&(null===(a=e.logo)||void 0===a?void 0:a.url)===(null===(n=t.logo)||void 0===n?void 0:n.url)}));function T(){var e=n.useContext(y.n);return o.b.renderInPortalIfExists(n.createElement("div",{className:"partial-banner partial-loading-background ".concat(N.banner)}),null==e?void 0:e.container)}},63719:(e,t,a)=>{a.d(t,{h:()=>l});var n=a(32735),r=a(77316);function o(e,t){if(e){if("string"==typeof e)return i(e,t);var a={}.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?i(e,t):void 0}}function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=Array(t);a<t;a++)n[a]=e[a];return n}function l(e){var t,a,l=(t=n.useMemo((function(){return r.p.getBuilder()}),[]),a=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var n,r,o,i,l=[],s=!0,c=!1;try{if(o=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;s=!1}else for(;!(s=(n=o.call(a)).done)&&(l.push(n.value),l.length!==t);s=!0);}catch(e){c=!0,r=e}finally{try{if(!s&&null!=a.return&&(i=a.return(),Object(i)!==i))return}finally{if(c)throw r}}return l}}(t,a)||o(t,a)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),s=l[0],c=(0,l[1])(s);return c&&e?[].concat(function(e){return function(e){if(Array.isArray(e))return i(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.")}()}(c),[Object.assign(Object.assign({},e),{active:!0})]):c}},60008:(e,t,a)=>{a.r(t),a.d(t,{CompanyDashboardView:()=>Q});var n=a(32735),r=a(23481),o=a(81886),i=a(20354),l=a(28400),s=a(65858),c=a(75896),d=a(97958),u=a(83345),m=a(36532),p=a(38129),g=a(35223),v="moviesAndTv.companyDashboardEmptyState",f=r.T.encloseNamespace(v);function b(e){var t,a,o=(null===(t=e.dashboard)||void 0===t?void 0:t.status)===p.GL.Archived;return n.createElement(d.u,null,n.createElement(d.u.Image,{src:e.imageUrl,altText:f("info")}),n.createElement(d.u.Heading,null,n.createElement(u.x,{namespace:v,phrase:"heading"})),n.createElement(d.u.Info,null,n.createElement(u.x,{namespace:v,phrase:"info"})),n.createElement(m.u,{title:o?r.T.getPhrase(v,"archivedCtaTooltip"):"",spanHack:!0},n.createElement(d.u.Cta,{text:r.T.getPhrase(v,"add"),appLink:null===(a=e.addWidgetApplink)||void 0===a?void 0:a.call(e),className:"btn btn-dark",icon:g.vn.Plus,disabled:o})))}var h=a(67814),y=a(49935),C=a(42712),E=a(7733),k=a(21366),w=a(9085);function N(e){var t,a,r,o=c.m.sortBy(null===(t=e.dashboard)||void 0===t?void 0:t.widgets,"index");function i(t,a,n){var r=k.S.getWidgetParams(a,n,k.S.getDashboardTargetType(e.dashboard));return e.getWidgetContentRequest(t,r,n)}var l=e.isReadonly&&!(null==o?void 0:o.length);return n.createElement(n.Fragment,null,!!o.length&&n.createElement(n.Fragment,null,e.company?n.createElement(h.p,{heading:e.company.name,banner:e.company.banner,imageCdnUrl:e.commonVideoProps.imageCdnUrl,blockColourClass:(0,w.x)(e.company.name,E.o),actions:null===(a=e.getBannerActions)||void 0===a?void 0:a.call(e),actionsDropdownClassName:"btn btn-outline-dark"}):n.createElement(h.v,null),n.createElement("div",{className:"py-3 mb-3 border-bottom"},n.createElement(y.Oo,{breadcrumbs:null===(r=e.getBreadcrumbs)||void 0===r?void 0:r.call(e)})),n.createElement("div",{className:"mt-3"},o.map((function(t){return n.createElement(C.L,{widgetCollection:p.ku.Company,dashboardTarget:p.ku.Company,key:t.id,id:t.id,getContentRequest:i,audiences:e.audiences,name:t.name,description:t.description,templateId:t.templateId,metadata:t.metadata,appLinks:e.widgetAppLinks,isScrollToTargetWidget:(null==e?void 0:e.scrollToWidgetId)===t.id,widgetTypeId:t.widgetId,hasPermissions:e.hasPermissions,hasLocalPermissions:e.hasLocalPermissions,isPreviewing:e.isReadonly,settings:e.settings,imageCdnUrl:e.commonVideoProps.imageCdnUrl,commonVideoProps:e.commonVideoProps,classification:null,contentType:null,hasTableOfContents:!1,seeMoreLink:null,onClickRemoveItem:null,badgeComponent:null})})))),l&&n.createElement(b,{dashboard:e.dashboard,isReadonly:e.isReadonly,imageUrl:e.emptyImageUrl,addWidgetApplink:e.widgetAppLinks.widgetWizard}))}var L=a(65042),x=a(16714),D=a(183),T=a(67058),P=a(80889),A=a(31949),S=a(63719),O=a(56520),M=a(22902),I=a(79612),B=a(37802),j=a(76753),W=a(14070),U=a(97291),V=a(68317),_=a(58321),R=a(7179),H=a(23737),z=a(33192),G=a(22490),Y=a(82431),q=r.T.encloseNamespace("moviesAndTv.companyDashboard");function F(e){return{videoType:function(t,a){return G.W.getAppLink(t,Object.assign(Object.assign({},a),{moviesAndTv:!0,context:D.Q.Widget,includeContext:null==e?void 0:e.isAuthenticated}))},series:Y.j.getSeriesAppLink,playlist:function(e){return{application:U.O.PLAYLISTS,action:W.e.Playlists.PLAYLIST,args:[e.id,l.m.slugify(e.name)]}},classification:function(){return null},allTopics:function(){return null},calendar:function(){return null},calendarMonth:function(){return null},classificationDirectory:function(){return null},classificationLatestReleases:function(){return null},company:function(){return null},discover:function(){return null},livestream:function(){return null},watchHistory:function(){return null},widgetVideoList:function(){return null},widgetWizard:function(){return null},searchSettings:function(){return null},searchHome:function(){return null}}}function Q(e){var t,a,r,c,d=i.a.useBasicFetch(V.h.company(e.companyId)),u=i.a.useBasicFetch(A.N.currentUser()),m=(0,O.R0)(),g=m.openInCurationStudioLabel,v=m.isUserCurator,f=m.getOpenInCurationStudioLink,b=(0,_.U)({locationContext:s.LZ.VideoThumbnail,mtv:!0}).commonVideoProps,h=(0,M.T)(),y=h.hasPermissions,C=h.hasLocalPermissions,E=(0,B.r)(null),k=y(x.C.ViewMoviesTv),w=(0,H.y)({targetType:p.ku.Company,queryParams:e.queryParams,presentationSlug:e.presentationSlug,companyId:e.companyId}),D=w.dashboard,G=w.isPreviewing;(0,I.M)(j.CG.getDefaultMetadata({title:null===(t=d.data)||void 0===t?void 0:t.name,phraseContext:{phraseHandler:q,titlePhrase:"pageTitle",descriptionPhrase:"pageDescription"},canonicalLink:z.f.getCanonicalLink({stripPresentationSlug:!0,customAppLink:{application:U.O.MOVIES_AND_TV,action:W.e.MoviesAndTv.COMPANY_DASHBOARD,args:[null===(a=d.data)||void 0===a?void 0:a.id,l.m.slugify(null===(r=d.data)||void 0===r?void 0:r.name)]}}),allowIndexing:!1})),(0,R.P)({id:e.companyId,app:"studios"}),n.useEffect((function(){D.hasCompleted&&(k&&D.data||o.Q.C$.trigger({application:U.O.DASHBOARD,action:W.e.Dashboard.HOME},{replace:!0}))}),[k,D.data,D.hasCompleted]);var Y=(0,S.h)({name:null===(c=d.data)||void 0===c?void 0:c.name});return n.useEffect((function(){D.hasCompleted&&!D.data&&o.Q.Ry.throw(new T.d)}),[D.data,D.hasCompleted]),n.createElement("div",{className:"position-relative px-4"},!(!G||!D.data)&&n.createElement(L.a,{status:D.data.status,type:"company"}),n.createElement(N,{company:d.data,dashboard:D.data,getWidgetContentRequest:P._.dashboardWidgetContent,getBannerActions:function(){var e,t;return v?[{label:g,href:f(null===(e=d.data)||void 0===e?void 0:e.typeId,null===(t=d.data)||void 0===t?void 0:t.id),openInNewTab:!0}]:[]},widgetAppLinks:F(u.data),getBreadcrumbs:function(){return d.hasCompleted?Y:[]},hasPermissions:y,hasLocalPermissions:C,settings:E,commonVideoProps:b}))}}}]);
|
|
2
|
-
//# sourceMappingURL=8-
|
|
1
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[8],{65042:(e,t,a)=>{a.d(t,{a:()=>h});var n=a(32735),r=a(23481),o=a(75902),i=a(35223);function l(e){return l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},l(e)}function s(e,t,a){return(t=function(e){var t=function(e){if("object"!=l(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var a=t.call(e,"string");if("object"!=l(a))return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==l(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}var c=s(s(s({},o.GL.Archived,{svgName:i.vn.Archive,svgColorClassName:"text-secondary",actionName:"Archive",statusName:"Archived"}),o.GL.Draft,{svgName:i.vn.Edit,svgColorClassName:"",actionName:"Draft",statusName:"Draft"}),o.GL.Published,{svgName:i.vn.VisibleOn,svgColorClassName:"text-success",actionName:"Publish",statusName:"Published"}),d=a(83914),u=a(38129);const m={badge:"ciO47",draftLight:"A6Yi7",draftDark:"fkXBX",published:"Ovzwy",archived:"r_dco"};function p(e){var t="rounded-pill d-flex align-items-center ps-2 py-1 fw-semibold ms-2 ".concat(m.badge);switch(e.status){case u.GL.Published:t+=" ".concat(m.published);break;case u.GL.Archived:t+=" ".concat(m.archived);break;case u.GL.Draft:t+=" ".concat(e.darkMode?m.draftDark:m.draftLight)}return e.wrapperClassName&&(t+=" ".concat(e.wrapperClassName)),t}function g(e){var t=c[e.status],a=t.statusName,r=t.svgName;return n.createElement("div",{className:p(e)},n.createElement(d.x,{svgName:r}),n.createElement("div",null,a))}var v=a(85219);const f={stickyWrapper:"zhw6K",badgeWrapper:"NOvn1",badge:"pxQSR"};var b=r.T.encloseNamespace("shared.classificationPreviewBanner");function h(e){return n.createElement("div",{className:"".concat(f.stickyWrapper," py-2 d-flex justify-content-space-between bg-dark text-white mx-2 rounded")},n.createElement("div",{className:"position-absolute d-flex ".concat(f.badgeWrapper)},n.createElement(g,{status:e.status,wrapperClassName:"".concat(f.badge),darkMode:!0})),n.createElement("div",{className:"flex-grow-1"},n.createElement("h1",{className:"text-center my-3 h5"},n.createElement(v.V,{emoji:"👀"}),b("topic"===e.type?"topicTitle":"companyTitle"))))}},67814:(e,t,a)=>{a.d(t,{p:()=>D,v:()=>T});var n=a(32735),r=a(110),o=a(50690),i=a(22406),l=a(78408),s=a(83657),c=a(23481),d=a(15611),u=a(83914),m=a(35223),p="shared.backButton";function g(e){var t=Object.assign({textShadow:!0},e),a=t.backToName,r=t.appLink,o=t.color,i=t.extraClasses,l=t.textShadow,s=a?c.T.getPhrase(p,"backTo",{backToName:a}):c.T.getPhrase(p,"back"),g="black"===o?"":"text-white",v=l?"text-shadow":"";return n.createElement(d.F,{appLink:r,className:"d-inline-flex align-items-center h5 mb-0 ".concat(i," ").concat(g," ").concat(v)},n.createElement(u.x,{svgName:m.vn.ChevronLeft,size:u.S.Medium}),n.createElement("span",{className:"ms-1"},s))}g.defaultProps={color:"black",extraClasses:""};var v=a(4527),f=a(83345),b=a(7733),h=a(10587),y=a(94232),C=a(54610),E=a(79967),k=a(9085),w=a(67453);const N={bannerContent:"sSCTB",actionsContainer:"Z5WI2",bannerContentWithLogo:"rgs7Q",container:"M51HJ",logoContainer:"vkeJk",logoContainerLeft:"M3U9B",logoHeading:"EtRwC",specialEventContainer:"rOxDc",headingLarge:"_8pnV",heading:"JXVBH"};var L="".concat(h.y[C.__.Banners].width,":").concat(h.y[C.__.Banners].height);function x(e){return e.length<160?"h1":N.headingLarge}var D=n.memo((function(e){var t,a,c,d,u=e.heading,m=e.banner,p=e.imageCdnUrl,h=e.actions,D=e.sortComponent,T=e.blockColourClass,P=e.specialEvent,A=n.useContext(y.n),S=(0,E.k)().xxl?1920:1200,O=n.useMemo((function(){if(!P||e.showComingSoon)return!1;var t=r.O.format(new Date,"YYYY-MM-DD");return P.endDate?P.startDate<=t&&P.endDate>=t:P.startDate===t}),[P]),M=e.imageOptions||{width:S,ratio:L,resizeType:C.Nq.Cover},I=!!m&&!!p&&w.j.createBannerUrl(m,{fallbackBaseUrl:p,fallbackCategoryName:u,type:C.__.Banners},M),B={className:"banner banner-header ".concat(e.bannerClassName),style:I?{backgroundImage:"url('".concat(I,"')")}:{}};!m&&T&&(delete B.style,B.className+=" ".concat(T));var j=e.detailsComponent,W=(0,k.x)(e.heading,b.o);return o.b.renderInPortalIfExists(n.createElement("header",Object.assign({},B),n.createElement("div",{className:"container ".concat(N.container," position-relative inner-banner")},e.backButtonAppLink&&n.createElement("div",{className:"pt-3"},n.createElement(g,{appLink:e.backButtonAppLink,backToName:e.backButtonText,extraClasses:e.backButtonClasses,color:"white"})),n.createElement("div",{className:"".concat(e.alignLogoLeft?"position-absolute top-50 start-0 translate-middle-y w-100 ps-4":"".concat(N.bannerContent," px-2 ").concat((null===(t=e.logo)||void 0===t?void 0:t.url)?N.bannerContentWithLogo:""))},!!P&&n.createElement("div",{className:"position-relative ".concat(N.specialEventContainer)},n.createElement(l.s,{body:{type:P.endDate?"range":"day",text:P.endDate?"".concat(r.O.format(P.startDate,"DD"),"-").concat(r.O.format(P.endDate,"DD")):r.O.format(P.startDate,"DD")},month:function(e){return e.endDate?r.O.isSame(e.startDate,e.endDate,"month")?r.O.format(e.startDate,"MMMM"):"".concat(r.O.format(e.startDate,"MMM")," - ").concat(r.O.format(e.endDate,"MMM")):r.O.format(e.startDate,"MMMM")}(P),theme:e.calendarTheme})),n.createElement("div",null,O&&n.createElement("div",{className:"rounded-pill py-1 px-2 my-1 me-1 fw-semibold bg-light-blue lh-1 d-inline-block"},n.createElement(f.x,{namespace:"shared.bannerHeader",phrase:"onToday"})),e.showComingSoon&&n.createElement(i.r,{className:"pe-2 fw-semibold mb-1 rounded-pill justify-content-start text-nowrap"}),n.createElement("div",{className:"d-flex align-items-center"},e.alignLogoLeft&&(null===(a=e.logo)||void 0===a?void 0:a.url)&&n.createElement("div",{className:"".concat(N.logoContainerLeft," d-none d-md-block rounded-circle overflow-hidden me-3 ").concat(W)},n.createElement(v.w,{src:w.j.createUrl(null===(c=e.logo)||void 0===c?void 0:c.url,{size:C.h2.Medium}),style:{backgroundColor:e.logoBgColour}})),n.createElement("h1",{className:"text-white text-shadow pe-3 position-static ".concat(N.heading," ").concat(x(u)," ").concat(e.alignLogoLeft?"w-50":"")},u,j&&n.createElement(j,null)))),!!h&&n.createElement("div",{className:N.actionsContainer},n.createElement(s.e,{actions:h,sortComponent:D,actionsDropdownClassName:e.actionsDropdownClassName}))),!e.alignLogoLeft&&!!(null===(d=e.logo)||void 0===d?void 0:d.url)&&n.createElement("div",{className:N.logoContainer},n.createElement("img",{src:w.j.createUrl(e.logo.url,{size:C.h2.Medium}),className:"rounded-circle"})))),null==A?void 0:A.container)}),(function(e,t){var a,n;return e.actions===t.actions&&e.heading===t.heading&&(null===(a=e.logo)||void 0===a?void 0:a.url)===(null===(n=t.logo)||void 0===n?void 0:n.url)}));function T(){var e=n.useContext(y.n);return o.b.renderInPortalIfExists(n.createElement("div",{className:"partial-banner partial-loading-background ".concat(N.banner)}),null==e?void 0:e.container)}},63719:(e,t,a)=>{a.d(t,{h:()=>l});var n=a(32735),r=a(77316);function o(e,t){if(e){if("string"==typeof e)return i(e,t);var a={}.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?i(e,t):void 0}}function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=Array(t);a<t;a++)n[a]=e[a];return n}function l(e){var t,a,l=(t=n.useMemo((function(){return r.p.getBuilder()}),[]),a=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var n,r,o,i,l=[],s=!0,c=!1;try{if(o=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;s=!1}else for(;!(s=(n=o.call(a)).done)&&(l.push(n.value),l.length!==t);s=!0);}catch(e){c=!0,r=e}finally{try{if(!s&&null!=a.return&&(i=a.return(),Object(i)!==i))return}finally{if(c)throw r}}return l}}(t,a)||o(t,a)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),s=l[0],c=(0,l[1])(s);return c&&e?[].concat(function(e){return function(e){if(Array.isArray(e))return i(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.")}()}(c),[Object.assign(Object.assign({},e),{active:!0})]):c}},60008:(e,t,a)=>{a.r(t),a.d(t,{CompanyDashboardView:()=>Q});var n=a(32735),r=a(23481),o=a(81886),i=a(20354),l=a(28400),s=a(65858),c=a(75896),d=a(97958),u=a(83345),m=a(36532),p=a(38129),g=a(35223),v="moviesAndTv.companyDashboardEmptyState",f=r.T.encloseNamespace(v);function b(e){var t,a,o=(null===(t=e.dashboard)||void 0===t?void 0:t.status)===p.GL.Archived;return n.createElement(d.u,null,n.createElement(d.u.Image,{src:e.imageUrl,altText:f("info")}),n.createElement(d.u.Heading,null,n.createElement(u.x,{namespace:v,phrase:"heading"})),n.createElement(d.u.Info,null,n.createElement(u.x,{namespace:v,phrase:"info"})),n.createElement(m.u,{title:o?r.T.getPhrase(v,"archivedCtaTooltip"):"",spanHack:!0},n.createElement(d.u.Cta,{text:r.T.getPhrase(v,"add"),appLink:null===(a=e.addWidgetApplink)||void 0===a?void 0:a.call(e),className:"btn btn-dark",icon:g.vn.Plus,disabled:o})))}var h=a(67814),y=a(49935),C=a(62333),E=a(7733),k=a(21366),w=a(9085);function N(e){var t,a,r,o=c.m.sortBy(null===(t=e.dashboard)||void 0===t?void 0:t.widgets,"index");function i(t,a,n){var r=k.S.getWidgetParams(a,n,k.S.getDashboardTargetType(e.dashboard));return e.getWidgetContentRequest(t,r,n)}var l=e.isReadonly&&!(null==o?void 0:o.length);return n.createElement(n.Fragment,null,!!o.length&&n.createElement(n.Fragment,null,e.company?n.createElement(h.p,{heading:e.company.name,banner:e.company.banner,imageCdnUrl:e.commonVideoProps.imageCdnUrl,blockColourClass:(0,w.x)(e.company.name,E.o),actions:null===(a=e.getBannerActions)||void 0===a?void 0:a.call(e),actionsDropdownClassName:"btn btn-outline-dark"}):n.createElement(h.v,null),n.createElement("div",{className:"py-3 mb-3 border-bottom"},n.createElement(y.Oo,{breadcrumbs:null===(r=e.getBreadcrumbs)||void 0===r?void 0:r.call(e)})),n.createElement("div",{className:"mt-3"},o.map((function(t){return n.createElement(C.L,{widgetCollection:p.ku.Company,dashboardTarget:p.ku.Company,key:t.id,id:t.id,getContentRequest:i,audiences:e.audiences,name:t.name,description:t.description,templateId:t.templateId,metadata:t.metadata,appLinks:e.widgetAppLinks,isScrollToTargetWidget:(null==e?void 0:e.scrollToWidgetId)===t.id,widgetTypeId:t.widgetId,hasPermissions:e.hasPermissions,hasLocalPermissions:e.hasLocalPermissions,isPreviewing:e.isReadonly,settings:e.settings,imageCdnUrl:e.commonVideoProps.imageCdnUrl,commonVideoProps:e.commonVideoProps,classification:null,contentType:null,hasTableOfContents:!1,seeMoreLink:null,onClickRemoveItem:null,badgeComponent:null})})))),l&&n.createElement(b,{dashboard:e.dashboard,isReadonly:e.isReadonly,imageUrl:e.emptyImageUrl,addWidgetApplink:e.widgetAppLinks.widgetWizard}))}var L=a(65042),x=a(16714),D=a(183),T=a(67058),P=a(80889),A=a(31949),S=a(63719),O=a(56520),M=a(22902),I=a(79612),B=a(37802),j=a(76753),W=a(14070),U=a(97291),V=a(68317),_=a(58321),R=a(7179),H=a(23737),z=a(33192),G=a(22490),Y=a(82431),q=r.T.encloseNamespace("moviesAndTv.companyDashboard");function F(e){return{videoType:function(t,a){return G.W.getAppLink(t,Object.assign(Object.assign({},a),{moviesAndTv:!0,context:D.Q.Widget,includeContext:null==e?void 0:e.isAuthenticated}))},series:Y.j.getSeriesAppLink,playlist:function(e){return{application:U.O.PLAYLISTS,action:W.e.Playlists.PLAYLIST,args:[e.id,l.m.slugify(e.name)]}},classification:function(){return null},allTopics:function(){return null},calendar:function(){return null},calendarMonth:function(){return null},classificationDirectory:function(){return null},classificationLatestReleases:function(){return null},company:function(){return null},discover:function(){return null},livestream:function(){return null},watchHistory:function(){return null},widgetVideoList:function(){return null},widgetWizard:function(){return null},searchSettings:function(){return null},searchHome:function(){return null}}}function Q(e){var t,a,r,c,d=i.a.useBasicFetch(V.h.company(e.companyId)),u=i.a.useBasicFetch(A.N.currentUser()),m=(0,O.R0)(),g=m.openInCurationStudioLabel,v=m.isUserCurator,f=m.getOpenInCurationStudioLink,b=(0,_.U)({locationContext:s.LZ.VideoThumbnail,mtv:!0}).commonVideoProps,h=(0,M.T)(),y=h.hasPermissions,C=h.hasLocalPermissions,E=(0,B.r)(null),k=y(x.C.ViewMoviesTv),w=(0,H.y)({targetType:p.ku.Company,queryParams:e.queryParams,presentationSlug:e.presentationSlug,companyId:e.companyId}),D=w.dashboard,G=w.isPreviewing;(0,I.M)(j.CG.getDefaultMetadata({title:null===(t=d.data)||void 0===t?void 0:t.name,phraseContext:{phraseHandler:q,titlePhrase:"pageTitle",descriptionPhrase:"pageDescription"},canonicalLink:z.f.getCanonicalLink({stripPresentationSlug:!0,customAppLink:{application:U.O.MOVIES_AND_TV,action:W.e.MoviesAndTv.COMPANY_DASHBOARD,args:[null===(a=d.data)||void 0===a?void 0:a.id,l.m.slugify(null===(r=d.data)||void 0===r?void 0:r.name)]}}),allowIndexing:!1})),(0,R.P)({id:e.companyId,app:"studios"}),n.useEffect((function(){D.hasCompleted&&(k&&D.data||o.Q.C$.trigger({application:U.O.DASHBOARD,action:W.e.Dashboard.HOME},{replace:!0}))}),[k,D.data,D.hasCompleted]);var Y=(0,S.h)({name:null===(c=d.data)||void 0===c?void 0:c.name});return n.useEffect((function(){D.hasCompleted&&!D.data&&o.Q.Ry.throw(new T.d)}),[D.data,D.hasCompleted]),n.createElement("div",{className:"position-relative px-4"},!(!G||!D.data)&&n.createElement(L.a,{status:D.data.status,type:"company"}),n.createElement(N,{company:d.data,dashboard:D.data,getWidgetContentRequest:P._.dashboardWidgetContent,getBannerActions:function(){var e,t;return v?[{label:g,href:f(null===(e=d.data)||void 0===e?void 0:e.typeId,null===(t=d.data)||void 0===t?void 0:t.id),openInNewTab:!0}]:[]},widgetAppLinks:F(u.data),getBreadcrumbs:function(){return d.hasCompleted?Y:[]},hasPermissions:y,hasLocalPermissions:C,settings:E,commonVideoProps:b}))}}}]);
|
|
2
|
+
//# sourceMappingURL=8-9f5e438ed9-lite.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scripts/8-f1d9aa4678-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/apps/subjects/constants/DashboardStatusConfig.ts","file:///app/packages/libs/shared/src/apps/subjects/components/classification-dashboard/dashboard-status-badge/dashboard-status-badge.scss","file:///app/packages/libs/shared/src/apps/subjects/components/classification-dashboard/dashboard-status-badge/DashboardStatusBadge.tsx","file:///app/packages/libs/shared/src/apps/subjects/components/preview-banner/preview-banner.scss","file:///app/packages/libs/shared/src/apps/subjects/components/preview-banner/PreviewBanner.tsx","file:///app/packages/libs/shared/src/components/back-button/BackButton.tsx","file:///app/packages/libs/shared/src/components/banner-header/banner-header.scss","file:///app/packages/libs/shared/src/components/banner-header/BannerHeader.tsx","file:///app/packages/libs/shared/src/hooks/useBreadcrumbs.ts","file:///app/packages/libs/shared/src/apps/movies-and-tv/components/company-dashboard/empty-state/CompanyDashboardEmptyState.tsx","file:///app/packages/libs/shared/src/apps/movies-and-tv/components/company-dashboard/CompanyDashboard.tsx","file:///app/packages/projects/lite/src/apps/movies-and-tv/views/company-dashboard/CompanyDashboardView.tsx"],"sourcesContent":["import { localSvgs } from 'libs/shared/images/svg';\nimport { DashboardStatus } from 'libs/shared/interfaces/models/Dashboard';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\ninterface DashboardStatusConfigType {\n statusName: string;\n actionName: string;\n svgName: localSvgs;\n svgColorClassName: string;\n}\n\nexport const DashboardStatusConfig: Record<DashboardStatus, DashboardStatusConfigType> = {\n [DashboardStatus.Archived]: {\n svgName: cvSvgLibrary.Archive,\n svgColorClassName: 'text-secondary',\n actionName: 'Archive',\n statusName: 'Archived'\n },\n [DashboardStatus.Draft]: {\n svgName: cvSvgLibrary.Edit,\n svgColorClassName: '',\n actionName: 'Draft',\n statusName: 'Draft'\n },\n [DashboardStatus.Published]: {\n svgName: cvSvgLibrary.VisibleOn,\n svgColorClassName: 'text-success',\n actionName: 'Publish',\n statusName: 'Published'\n }\n};","// extracted by mini-css-extract-plugin\nexport default {\"badge\":\"ciO47\",\"draftLight\":\"A6Yi7\",\"draftDark\":\"fkXBX\",\"published\":\"Ovzwy\",\"archived\":\"r_dco\"};","import React from 'react';\n\nimport { DashboardStatusConfig } from 'libs/shared/apps/subjects/constants/DashboardStatusConfig';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { DashboardStatus } from 'libs/shared/interfaces';\n\nimport styles from './dashboard-status-badge.scss';\n\nfunction getClassName(props: DashboardStatusBadgeProps): string {\n let className = `rounded-pill d-flex align-items-center ps-2 py-1 fw-semibold ms-2 ${styles.badge}`;\n\n switch (props.status) {\n case DashboardStatus.Published:\n className += ` ${styles.published}`;\n break;\n case DashboardStatus.Archived:\n className += ` ${styles.archived}`;\n break;\n case DashboardStatus.Draft:\n className += ` ${props.darkMode ? styles.draftDark : styles.draftLight}`;\n break;\n }\n\n if (props.wrapperClassName)\n className += ` ${props.wrapperClassName}`;\n\n return className;\n}\n\ninterface DashboardStatusBadgeProps {\n status: DashboardStatus;\n darkMode?: boolean;\n wrapperClassName?: string;\n}\n\nexport function DashboardStatusBadge(props: DashboardStatusBadgeProps): JSX.Element {\n const { statusName, svgName } = DashboardStatusConfig[props.status];\n\n return (\n <div className={getClassName(props)}>\n <SvgContainer svgName={svgName} />\n <div>{statusName}</div>\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"stickyWrapper\":\"zhw6K\",\"badgeWrapper\":\"NOvn1\",\"badge\":\"pxQSR\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { DashboardStatusBadge } from 'libs/shared/apps/subjects/components/classification-dashboard/dashboard-status-badge/DashboardStatusBadge';\nimport { EmojiText } from 'libs/shared/components/emoji-text/EmojiText';\nimport { DashboardStatus } from 'libs/shared/interfaces';\n\nimport styles from './preview-banner.scss';\n\nconst namespace = 'shared.classificationPreviewBanner';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface PreviewBannerProps {\n status: DashboardStatus;\n type: 'company' | 'topic';\n}\n\nexport function PreviewBanner(props: PreviewBannerProps): JSX.Element {\n return (\n <div className={`${styles.stickyWrapper} py-2 d-flex justify-content-space-between bg-dark text-white mx-2 rounded`}>\n <div className={`position-absolute d-flex ${styles.badgeWrapper}`}>\n <DashboardStatusBadge status={props.status} wrapperClassName={`${styles.badge}`} darkMode />\n </div>\n <div className='flex-grow-1'>\n <h1 className='text-center my-3 h5'>\n <EmojiText emoji='👀' />\n {getPhrase(props.type === 'topic' ? 'topicTitle' : 'companyTitle')}\n </h1>\n </div>\n </div>\n );\n}\n","import * as React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nconst namespace = 'shared.backButton';\n\ninterface BackButtonProps {\n appLink: Core.AppLink;\n backToName?: string;\n color?: 'black' | 'white';\n extraClasses?: string;\n /**\n * Whether or not the button text has a text shadow. Defaults to true\n */\n textShadow?: boolean;\n}\n\nBackButton.defaultProps = {\n color: 'black',\n extraClasses: ''\n};\n\nexport function BackButton(props: BackButtonProps): React.ReactElement {\n const { backToName, appLink, color, extraClasses, textShadow } = {\n textShadow: true,\n ...props\n };\n\n const backPhrase = backToName\n ? LanguageService.getPhrase(namespace, 'backTo', { backToName })\n : LanguageService.getPhrase(namespace, 'back');\n\n const colorClass = color === 'black' ? '' : 'text-white';\n const textShadowClass = textShadow ? 'text-shadow' : '';\n\n return (\n <AppLink\n appLink={appLink}\n className={`d-inline-flex align-items-center h5 mb-0 ${extraClasses} ${colorClass} ${textShadowClass}`}\n >\n <SvgContainer svgName={cvSvgLibrary.ChevronLeft} size={SvgContainerSize.Medium} />\n <span className='ms-1'>{backPhrase}</span>\n </AppLink>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"bannerContent\":\"sSCTB\",\"actionsContainer\":\"Z5WI2\",\"bannerContentWithLogo\":\"rgs7Q\",\"container\":\"M51HJ\",\"logoContainer\":\"vkeJk\",\"logoContainerLeft\":\"M3U9B\",\"logoHeading\":\"EtRwC\",\"specialEventContainer\":\"rOxDc\",\"headingLarge\":\"_8pnV\",\"heading\":\"JXVBH\"};","import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\nimport { PortalHelper } from 'libs/common/react/utils/PortalHelper';\n\nimport { ComingSoonTag } from 'libs/shared/apps/calendar/components/coming-soon-tag/ComingSoonTag';\nimport { GenericCalendarDate } from 'libs/shared/apps/calendar/components/generic-calendar-date/GenericCalendarDate';\nimport { CalendarTheme } from 'libs/shared/apps/calendar/interfaces/CalendarTheme';\nimport { ActionOptions, Actions } from 'libs/shared/components/actions/Actions';\nimport { BackButton } from 'libs/shared/components/back-button/BackButton';\nimport { LazyImage } from 'libs/shared/components/lazy-image/LazyImage';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { BG_COLOUR_CLASS_NAMES } from 'libs/shared/constants/ColourClassNames';\nimport { ImageMinDimensions } from 'libs/shared/constants/ImageSizes';\nimport { BannerPortalContext } from 'libs/shared/context/BannerPortalContext';\nimport { ImageSize, ImageType, ResizeType } from 'libs/shared/enums/Images';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { Banner, CalendarEvent, Logo } from 'libs/shared/interfaces';\nimport { getBgColorClass } from 'libs/shared/utils/getBgColorClass';\nimport { ImageHelper, ImageOptions } from 'libs/shared/utils/ImageHelper';\n\nimport styles from './banner-header.scss';\n\nconst RATIO = `${ImageMinDimensions[ImageType.Banners].width}:${ImageMinDimensions[ImageType.Banners].height}`;\nconst DEFAULT_WIDTH = 1200; // This is ImageSize.Large for a Banner.\nconst LARGE_SCREEN_WIDTH = 1920;\n\nfunction useGetImageWidth(): number {\n const breakpoints = useBreakpoints();\n\n if (breakpoints.xxl)\n return LARGE_SCREEN_WIDTH;\n\n return DEFAULT_WIDTH;\n}\n\nfunction getSizeClass(heading: string): string {\n if (heading.length < 160)\n return 'h1';\n\n return styles.headingLarge;\n}\n\ninterface BannerHeaderProps {\n heading: string;\n banner?: Banner;\n bannerClassName?: string;\n imageCdnUrl?: string;\n logo?: Logo;\n logoBgColour?: string;\n actions?: ActionOptions[];\n specialEvent?: CalendarEvent;\n backButtonAppLink?: Core.AppLink;\n backButtonText?: string;\n backButtonClasses?: string;\n sortComponent?: JSX.Element;\n blockColourClass?: string;\n actionsDropdownClassName?: string;\n detailsComponent?: () => React.ReactElement;\n imageOptions?: ImageOptions;\n showComingSoon?: boolean;\n alignLogoLeft?: boolean;\n calendarTheme?: CalendarTheme;\n}\n\nconst namespace = 'shared.bannerHeader';\n\nexport const BannerHeader = React.memo(function(props: React.PropsWithChildren<BannerHeaderProps>): React.ReactElement {\n const { heading, banner, imageCdnUrl, actions, sortComponent, blockColourClass, specialEvent } = props;\n\n const portalContainerContext = React.useContext(BannerPortalContext);\n\n const imageWidth = useGetImageWidth();\n\n const specialEventIsToday = React.useMemo(() => {\n if (!specialEvent || props.showComingSoon)\n return false;\n\n const today = DateHelper.format(new Date(), 'YYYY-MM-DD');\n\n if (!specialEvent.endDate)\n return specialEvent.startDate === today;\n\n return specialEvent.startDate <= today && specialEvent.endDate >= today;\n }, [specialEvent]);\n\n function getSpecialEventMonthText(specialEvent: CalendarEvent): string {\n if (!specialEvent.endDate)\n return DateHelper.format(specialEvent.startDate, 'MMMM');\n\n if (DateHelper.isSame(specialEvent.startDate, specialEvent.endDate, 'month'))\n return DateHelper.format(specialEvent.startDate, 'MMMM');\n\n return `${DateHelper.format(specialEvent.startDate, 'MMM')} - ${DateHelper.format(specialEvent.endDate, 'MMM')}`;\n }\n\n const imageOptions = props.imageOptions || {\n width: imageWidth,\n ratio: RATIO,\n resizeType: ResizeType.Cover\n };\n\n const url = !!banner && !!imageCdnUrl && ImageHelper.createBannerUrl(banner, {\n fallbackBaseUrl: imageCdnUrl,\n fallbackCategoryName: heading,\n type: ImageType.Banners\n }, imageOptions);\n\n const containerProps: React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement> = {\n className: `banner banner-header ${props.bannerClassName}`,\n style: url ? { backgroundImage: `url('${url}')` } : {}\n };\n\n if (!banner && blockColourClass) {\n delete containerProps.style;\n containerProps.className += ` ${blockColourClass}`;\n }\n\n const DetailsComponent = props.detailsComponent;\n\n const logoFallbackBgClassName = getBgColorClass(props.heading, BG_COLOUR_CLASS_NAMES);\n\n return PortalHelper.renderInPortalIfExists(\n // \"banner\" is used in playlists in Online. banner-header is used by all other projects\n <header {...containerProps}>\n <div className={`container ${styles.container} position-relative inner-banner`}>\n {props.backButtonAppLink && (\n <div className='pt-3'>\n <BackButton\n appLink={props.backButtonAppLink}\n backToName={props.backButtonText}\n extraClasses={props.backButtonClasses}\n color='white'\n />\n </div>\n )}\n \n <div className={`${props.alignLogoLeft ? 'position-absolute top-50 start-0 translate-middle-y w-100 ps-4' : `${styles.bannerContent} px-2 ${props.logo?.url ? styles.bannerContentWithLogo : ''}`}`}>\n {!!specialEvent && (\n <div className={`position-relative ${styles.specialEventContainer}`}>\n <GenericCalendarDate\n body={{\n type: specialEvent.endDate ? 'range' : 'day',\n text: specialEvent.endDate\n ? `${DateHelper.format(specialEvent.startDate, 'DD')}-${DateHelper.format(specialEvent.endDate, 'DD')}`\n : DateHelper.format(specialEvent.startDate, 'DD')\n }}\n month={getSpecialEventMonthText(specialEvent)}\n theme={props.calendarTheme}\n />\n </div>\n )}\n <div>\n {specialEventIsToday && (\n <div className='rounded-pill py-1 px-2 my-1 me-1 fw-semibold bg-light-blue lh-1 d-inline-block'>\n <Text namespace={namespace} phrase='onToday' />\n </div>\n )}\n {props.showComingSoon && (\n <ComingSoonTag className='pe-2 fw-semibold mb-1 rounded-pill justify-content-start text-nowrap' />\n )}\n <div className='d-flex align-items-center'>\n {props.alignLogoLeft && props.logo?.url &&\n <div className={`${styles.logoContainerLeft} d-none d-md-block rounded-circle overflow-hidden me-3 ${logoFallbackBgClassName}`}>\n <LazyImage\n src={ImageHelper.createUrl(props.logo?.url, { size: ImageSize.Medium })}\n style={{ backgroundColor: props.logoBgColour }}\n />\n </div>\n }\n <h1 className={`text-white text-shadow pe-3 position-static ${styles.heading} ${getSizeClass(heading)} ${props.alignLogoLeft ? 'w-50' : ''}`}>\n {heading}\n {DetailsComponent && <DetailsComponent />}\n </h1>\n </div>\n </div>\n {!!actions && (\n <div className={styles.actionsContainer}>\n <Actions\n actions={actions}\n sortComponent={sortComponent}\n actionsDropdownClassName={props.actionsDropdownClassName}\n />\n </div>\n )}\n </div>\n {!props.alignLogoLeft && !!props.logo?.url &&\n <div className={styles.logoContainer}>\n <img\n src={ImageHelper.createUrl(props.logo.url, { size: ImageSize.Medium })}\n className='rounded-circle'\n />\n </div>\n }\n </div>\n </header>,\n portalContainerContext?.container\n );\n}, (prevProps, nextProps): boolean => (\n prevProps.actions === nextProps.actions\n && prevProps.heading === nextProps.heading\n && prevProps.logo?.url === nextProps.logo?.url\n));\n\nexport function PartialBannerHeader(): JSX.Element {\n const portalContainerContext = React.useContext(BannerPortalContext);\n\n return PortalHelper.renderInPortalIfExists(\n <div className={`partial-banner partial-loading-background ${styles.banner}`} />,\n portalContainerContext?.container\n );\n}","import React from 'react';\n\nimport { Breadcrumb } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { BreadcrumbService } from 'libs/shared/services/BreadcrumbService';\n\nexport function useBreadcrumbs(current: Breadcrumb): Breadcrumb[] {\n const [ match, useBuilder ] = React.useMemo(() => BreadcrumbService.getBuilder(), []);\n\n const breadcrumbs = useBuilder(match);\n\n if (!breadcrumbs || !current)\n return breadcrumbs;\n\n return [ ...breadcrumbs, { ...current, active: true }];\n}\n\n","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { CuratedDashboard, DashboardStatus } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nconst namespace = 'moviesAndTv.companyDashboardEmptyState';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface CompanyDashboardEmptyStateProps {\n dashboard: CuratedDashboard;\n imageUrl: string;\n isReadonly: boolean;\n addWidgetApplink?: () => Core.AppLink;\n}\n\nexport function CompanyDashboardEmptyState(props: CompanyDashboardEmptyStateProps): JSX.Element {\n const isArchived = props.dashboard?.status === DashboardStatus.Archived;\n\n return (\n <EmptyState>\n <EmptyState.Image src={props.imageUrl} altText={getPhrase('info')} />\n <EmptyState.Heading>\n <Text namespace={namespace} phrase='heading' />\n </EmptyState.Heading>\n <EmptyState.Info>\n <Text namespace={namespace} phrase='info' />\n </EmptyState.Info>\n <Tooltip title={isArchived ? LanguageService.getPhrase(namespace, 'archivedCtaTooltip') : ''} spanHack>\n <EmptyState.Cta\n text={LanguageService.getPhrase(namespace, 'add')}\n appLink={props.addWidgetApplink?.()}\n className='btn btn-dark'\n icon={cvSvgLibrary.Plus}\n disabled={isArchived}\n />\n </Tooltip>\n </EmptyState>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { Flight } from 'libs/common/flight';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { CompanyDashboardEmptyState } from 'libs/shared/apps/movies-and-tv/components/company-dashboard/empty-state/CompanyDashboardEmptyState';\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { BannerHeader, PartialBannerHeader } from 'libs/shared/components/banner-header/BannerHeader';\nimport { Breadcrumb, Breadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { WidgetContainerView } from 'libs/shared/components/widgets/curated-widgets/WidgetContainerView';\nimport { AllCompanyWidgetTemplates } from 'libs/shared/components/widgets/curated-widgets/WidgetProps';\nimport { BG_COLOUR_CLASS_NAMES } from 'libs/shared/constants/ColourClassNames';\nimport { WidgetTemplate } from 'libs/shared/enums/WidgetTemplate';\nimport { WidgetTypeId } from 'libs/shared/enums/WidgetTypeId';\nimport { HasLocalPermissionsFunc, HasPermissionsFunc } from 'libs/shared/hooks/usePermissions';\nimport { Company, CuratedDashboard, CuratedWidgetQueryParams, DashboardTargetType, PresentationAudience } from 'libs/shared/interfaces';\nimport { CommonVideoProps } from 'libs/shared/interfaces/CommonVideoProps';\nimport { CuratedDashboardHelper } from 'libs/shared/utils/DashboardHelper';\nimport { getBgColorClass } from 'libs/shared/utils/getBgColorClass';\n\nexport interface CompanyDashboardProps {\n dashboard: CuratedDashboard;\n company: Company;\n getWidgetContentRequest: (\n id: string,\n params: CuratedWidgetQueryParams,\n widgetTemplate: WidgetTemplate\n ) => Flight.Request;\n hasPermissions: HasPermissionsFunc;\n hasLocalPermissions: HasLocalPermissionsFunc;\n audiences?: PresentationAudience[];\n emptyImageUrl?: string;\n widgetAppLinks?: AllCompanyWidgetTemplates['appLinks'] & {\n widgetWizard: () => Core.AppLink;\n };\n scrollToWidgetId?: string;\n isReadonly?: boolean;\n getBreadcrumbs?: () => Breadcrumb[];\n getBannerActions?: () => ActionOptions[];\n commonVideoProps: CommonVideoProps;\n\n settings?: AllCompanyWidgetTemplates['settings'];\n}\n\nexport function CompanyDashboard(props: CompanyDashboardProps): JSX.Element {\n const widgets = ArrayHelper.sortBy(props.dashboard?.widgets, 'index');\n\n function getWidgetContentRequest(id: string, widgetTypeId: WidgetTypeId, template: WidgetTemplate): Flight.Request {\n const params = CuratedDashboardHelper.getWidgetParams(\n widgetTypeId,\n template,\n CuratedDashboardHelper.getDashboardTargetType(props.dashboard)\n );\n\n return props.getWidgetContentRequest(id, params, template);\n }\n\n const showEmptyState = props.isReadonly && !widgets?.length;\n\n return (\n <>\n {!!widgets.length &&\n <>\n {props.company\n ? (\n <BannerHeader\n heading={props.company.name}\n banner={props.company.banner}\n imageCdnUrl={props.commonVideoProps.imageCdnUrl}\n blockColourClass={getBgColorClass(props.company.name, BG_COLOUR_CLASS_NAMES)}\n actions={props.getBannerActions?.()}\n actionsDropdownClassName='btn btn-outline-dark'\n />\n ) : <PartialBannerHeader />\n }\n\n <div className='py-3 mb-3 border-bottom'>\n <Breadcrumbs breadcrumbs={props.getBreadcrumbs?.()} />\n </div>\n\n <div className='mt-3'>\n {widgets.map(widget => {\n return (\n <WidgetContainerView\n widgetCollection={DashboardTargetType.Company}\n dashboardTarget={DashboardTargetType.Company}\n key={widget.id}\n id={widget.id}\n getContentRequest={getWidgetContentRequest}\n audiences={props.audiences}\n name={widget.name}\n description={widget.description}\n templateId={widget.templateId}\n metadata={widget.metadata}\n appLinks={props.widgetAppLinks}\n isScrollToTargetWidget={props?.scrollToWidgetId === widget.id}\n widgetTypeId={widget.widgetId}\n hasPermissions={props.hasPermissions}\n hasLocalPermissions={props.hasLocalPermissions}\n isPreviewing={props.isReadonly}\n settings={props.settings}\n imageCdnUrl={props.commonVideoProps.imageCdnUrl}\n commonVideoProps={props.commonVideoProps}\n\n // TODO: Ideally we don't have to do this\n classification={null}\n contentType={null}\n hasTableOfContents={false}\n seeMoreLink={null}\n onClickRemoveItem={null}\n badgeComponent={null}\n />\n );\n })}\n </div>\n </>\n }\n\n {showEmptyState && (\n <CompanyDashboardEmptyState\n dashboard={props.dashboard}\n isReadonly={props.isReadonly}\n imageUrl={props.emptyImageUrl}\n addWidgetApplink={props.widgetAppLinks.widgetWizard}\n />\n )}\n </>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/flight';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { CompanyDashboard, CompanyDashboardProps } from 'libs/shared/apps/movies-and-tv/components/company-dashboard/CompanyDashboard';\nimport { PreviewBanner } from 'libs/shared/apps/subjects/components/preview-banner/PreviewBanner';\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { Breadcrumb } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { RelatedVideosContext } from 'libs/shared/enums/RelatedVideosContext';\nimport { NotFoundError } from 'libs/shared/errors/general/not-found/NotFoundError';\nimport { DashboardRequests } from 'libs/shared/flight-requests/DashboardRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useBreadcrumbs } from 'libs/shared/hooks/useBreadcrumbs';\nimport { useCurationStudio } from 'libs/shared/hooks/useCurationStudio';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { Company, CurrentUser, DashboardTargetType, Playlist, VideoTypes } from 'libs/shared/interfaces';\nimport { GetVideoAppLinkOptions } from 'libs/shared/interfaces/VideoAppLinkOptions';\nimport { PageMetadataHelper } from 'libs/shared/utils/PageMetadataHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { CompanyRequests } from 'shared/flight-requests/CompanyRequests';\nimport { useCommonVideoProps } from 'shared/hooks/useCommonVideoProps';\nimport { useDeepLinks } from 'shared/hooks/useDeepLinks';\nimport { DashboardViewQueryParams } from 'shared/interfaces/query-params/DashboardViewQueryParams';\nimport { useFetchCuratedDashboard } from 'shared/utils/DashboardHelper';\nimport { SeoHelper } from 'shared/utils/SeoHelper';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\n\nimport { SeriesAppLinkHelper } from 'apps/series/SeriesAppLinkHelper';\n\nconst namespace = 'moviesAndTv.companyDashboard';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction getCompanyAppLinks(currentUser: CurrentUser): CompanyDashboardProps['widgetAppLinks'] {\n return {\n videoType: (video: VideoTypes, opts: GetVideoAppLinkOptions) => (\n VideoAppLinkHelper.getAppLink(video, {\n ...opts,\n moviesAndTv: true,\n context: RelatedVideosContext.Widget,\n includeContext: currentUser?.isAuthenticated\n })\n ),\n \n series: SeriesAppLinkHelper.getSeriesAppLink,\n \n playlist: (playlist: Playlist) => ({\n application: AppChannels.PLAYLISTS,\n action: Actions.Playlists.PLAYLIST,\n args: [ playlist.id, TextHelper.slugify(playlist.name) ]\n }),\n \n // TODO: Find a nice way around having to pass these in\n classification: () => null,\n allTopics: () => null,\n calendar: () => null,\n calendarMonth: () => null,\n classificationDirectory: () => null,\n classificationLatestReleases: () => null,\n company: () => null,\n discover: () => null,\n livestream: () => null,\n watchHistory: () => null,\n widgetVideoList: () => null,\n widgetWizard: () => null,\n searchSettings: () => null,\n searchHome: () => null\n };\n}\n\ninterface CompanyDashboardViewProps {\n presentationSlug: string;\n companyId: string;\n queryParams?: DashboardViewQueryParams;\n}\n\nexport function CompanyDashboardView(props: CompanyDashboardViewProps): JSX.Element {\n const company = Flight.useBasicFetch<Company>(CompanyRequests.company(props.companyId));\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const { openInCurationStudioLabel, isUserCurator, getOpenInCurationStudioLink } = useCurationStudio();\n\n const { commonVideoProps } = useCommonVideoProps({\n locationContext: LocationContext.VideoThumbnail,\n mtv: true\n });\n const { hasPermissions, hasLocalPermissions } = usePermissions();\n const settings = useSettings(null);\n const hasMoviesAndTv = hasPermissions(PermissionName.ViewMoviesTv);\n\n const {\n dashboard,\n isPreviewing\n } = useFetchCuratedDashboard({\n targetType: DashboardTargetType.Company,\n queryParams: props.queryParams,\n presentationSlug: props.presentationSlug,\n companyId: props.companyId\n });\n\n useSetPageMetadata(PageMetadataHelper.getDefaultMetadata({\n title: company.data?.name,\n phraseContext: {\n phraseHandler: getPhrase,\n titlePhrase: 'pageTitle',\n descriptionPhrase: 'pageDescription'\n },\n canonicalLink: SeoHelper.getCanonicalLink({\n stripPresentationSlug: true,\n customAppLink: {\n application: AppChannels.MOVIES_AND_TV,\n action: Actions.MoviesAndTv.COMPANY_DASHBOARD,\n args: [ company.data?.id, TextHelper.slugify(company.data?.name) ]\n }\n }),\n allowIndexing: false\n }));\n\n useDeepLinks({ id: props.companyId, app: 'studios' });\n\n React.useEffect(() => {\n if (!dashboard.hasCompleted)\n return;\n\n if (hasMoviesAndTv && dashboard.data)\n return;\n\n Core.AppLinkHelper.trigger(\n { application: AppChannels.DASHBOARD, action: Actions.Dashboard.HOME },\n { replace: true }\n );\n }, [ hasMoviesAndTv, dashboard.data, dashboard.hasCompleted ]);\n\n const breadcrumbs = useBreadcrumbs({ name: company.data?.name });\n function getBreadcrumbs(): Breadcrumb[] {\n if (!company.hasCompleted)\n return [];\n\n return breadcrumbs;\n }\n\n function getBannerActions(): ActionOptions[] {\n if (!isUserCurator)\n return [];\n\n return [{\n label: openInCurationStudioLabel,\n href: getOpenInCurationStudioLink(company.data?.typeId, company.data?.id),\n openInNewTab: true\n }];\n }\n\n React.useEffect(() => {\n if (!dashboard.hasCompleted || dashboard.data)\n return;\n\n Core.ErrorHelper.throw(new NotFoundError());\n }, [ dashboard.data, dashboard.hasCompleted ]);\n\n return (\n <div className='position-relative px-4'>\n {!!(isPreviewing && dashboard.data) && <PreviewBanner status={dashboard.data.status} type='company' />}\n <CompanyDashboard\n company={company.data}\n dashboard={dashboard.data}\n getWidgetContentRequest={DashboardRequests.dashboardWidgetContent}\n getBannerActions={getBannerActions}\n widgetAppLinks={getCompanyAppLinks(currentUser.data)}\n getBreadcrumbs={getBreadcrumbs}\n hasPermissions={hasPermissions}\n hasLocalPermissions={hasLocalPermissions}\n settings={settings}\n commonVideoProps={commonVideoProps}\n />\n </div>\n );\n}"],"names":["DashboardStatusConfig","Dashboard","svgName","svgColorClassName","actionName","statusName","getClassName","props","className","status","darkMode","wrapperClassName","DashboardStatusBadge","SvgContainer","getPhrase","LanguageService","PreviewBanner","EmojiText","emoji","type","namespace","BackButton","textShadow","backToName","appLink","color","extraClasses","backPhrase","colorClass","textShadowClass","AppLink","size","S","defaultProps","RATIO","width","height","getSizeClass","heading","length","BannerHeader","banner","imageCdnUrl","actions","sortComponent","blockColourClass","specialEvent","portalContainerContext","BannerPortalContext","imageWidth","useBreakpoints","xxl","specialEventIsToday","showComingSoon","today","DateHelper","Date","endDate","startDate","imageOptions","ratio","resizeType","url","ImageHelper","fallbackBaseUrl","fallbackCategoryName","containerProps","bannerClassName","style","backgroundImage","DetailsComponent","detailsComponent","logoFallbackBgClassName","getBgColorClass","PortalHelper","backButtonAppLink","backButtonText","backButtonClasses","alignLogoLeft","logo","GenericCalendarDate","body","text","month","getSpecialEventMonthText","theme","calendarTheme","Text","phrase","ComingSoonTag","LazyImage","src","backgroundColor","logoBgColour","Actions","actionsDropdownClassName","container","prevProps","nextProps","PartialBannerHeader","useBreadcrumbs","current","match","breadcrumbs","useBuilder","active","CompanyDashboardEmptyState","isArchived","dashboard","EmptyState","imageUrl","altText","Tooltip","title","spanHack","addWidgetApplink","icon","disabled","CompanyDashboard","widgets","ArrayHelper","getWidgetContentRequest","id","widgetTypeId","template","params","showEmptyState","isReadonly","company","name","commonVideoProps","getBannerActions","Breadcrumbs","getBreadcrumbs","map","widget","WidgetContainerView","widgetCollection","dashboardTarget","key","getContentRequest","audiences","description","templateId","metadata","appLinks","widgetAppLinks","isScrollToTargetWidget","scrollToWidgetId","widgetId","hasPermissions","hasLocalPermissions","isPreviewing","settings","classification","contentType","hasTableOfContents","seeMoreLink","onClickRemoveItem","badgeComponent","emptyImageUrl","widgetWizard","getCompanyAppLinks","currentUser","videoType","video","opts","VideoAppLinkHelper","moviesAndTv","context","RelatedVideosContext","includeContext","isAuthenticated","series","SeriesAppLinkHelper","playlist","application","action","args","TextHelper","allTopics","calendar","calendarMonth","classificationDirectory","classificationLatestReleases","discover","livestream","watchHistory","widgetVideoList","searchSettings","searchHome","CompanyDashboardView","CompanyRequests","companyId","UserRequests","useCurationStudio","openInCurationStudioLabel","isUserCurator","getOpenInCurationStudioLink","useCommonVideoProps","locationContext","mtv","usePermissions","useSettings","hasMoviesAndTv","PermissionName","targetType","queryParams","presentationSlug","useSetPageMetadata","PageMetadataHelper","data","phraseContext","phraseHandler","titlePhrase","descriptionPhrase","canonicalLink","SeoHelper","stripPresentationSlug","customAppLink","allowIndexing","useDeepLinks","app","hasCompleted","replace","NotFoundError","DashboardRequests","label","href","typeId","openInNewTab"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"scripts/8-9f5e438ed9-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/apps/subjects/constants/DashboardStatusConfig.ts","file:///app/packages/libs/shared/src/apps/subjects/components/classification-dashboard/dashboard-status-badge/dashboard-status-badge.scss","file:///app/packages/libs/shared/src/apps/subjects/components/classification-dashboard/dashboard-status-badge/DashboardStatusBadge.tsx","file:///app/packages/libs/shared/src/apps/subjects/components/preview-banner/preview-banner.scss","file:///app/packages/libs/shared/src/apps/subjects/components/preview-banner/PreviewBanner.tsx","file:///app/packages/libs/shared/src/components/back-button/BackButton.tsx","file:///app/packages/libs/shared/src/components/banner-header/banner-header.scss","file:///app/packages/libs/shared/src/components/banner-header/BannerHeader.tsx","file:///app/packages/libs/shared/src/hooks/useBreadcrumbs.ts","file:///app/packages/libs/shared/src/apps/movies-and-tv/components/company-dashboard/empty-state/CompanyDashboardEmptyState.tsx","file:///app/packages/libs/shared/src/apps/movies-and-tv/components/company-dashboard/CompanyDashboard.tsx","file:///app/packages/projects/lite/src/apps/movies-and-tv/views/company-dashboard/CompanyDashboardView.tsx"],"sourcesContent":["import { localSvgs } from 'libs/shared/images/svg';\nimport { DashboardStatus } from 'libs/shared/interfaces/models/Dashboard';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\ninterface DashboardStatusConfigType {\n statusName: string;\n actionName: string;\n svgName: localSvgs;\n svgColorClassName: string;\n}\n\nexport const DashboardStatusConfig: Record<DashboardStatus, DashboardStatusConfigType> = {\n [DashboardStatus.Archived]: {\n svgName: cvSvgLibrary.Archive,\n svgColorClassName: 'text-secondary',\n actionName: 'Archive',\n statusName: 'Archived'\n },\n [DashboardStatus.Draft]: {\n svgName: cvSvgLibrary.Edit,\n svgColorClassName: '',\n actionName: 'Draft',\n statusName: 'Draft'\n },\n [DashboardStatus.Published]: {\n svgName: cvSvgLibrary.VisibleOn,\n svgColorClassName: 'text-success',\n actionName: 'Publish',\n statusName: 'Published'\n }\n};","// extracted by mini-css-extract-plugin\nexport default {\"badge\":\"ciO47\",\"draftLight\":\"A6Yi7\",\"draftDark\":\"fkXBX\",\"published\":\"Ovzwy\",\"archived\":\"r_dco\"};","import React from 'react';\n\nimport { DashboardStatusConfig } from 'libs/shared/apps/subjects/constants/DashboardStatusConfig';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { DashboardStatus } from 'libs/shared/interfaces';\n\nimport styles from './dashboard-status-badge.scss';\n\nfunction getClassName(props: DashboardStatusBadgeProps): string {\n let className = `rounded-pill d-flex align-items-center ps-2 py-1 fw-semibold ms-2 ${styles.badge}`;\n\n switch (props.status) {\n case DashboardStatus.Published:\n className += ` ${styles.published}`;\n break;\n case DashboardStatus.Archived:\n className += ` ${styles.archived}`;\n break;\n case DashboardStatus.Draft:\n className += ` ${props.darkMode ? styles.draftDark : styles.draftLight}`;\n break;\n }\n\n if (props.wrapperClassName)\n className += ` ${props.wrapperClassName}`;\n\n return className;\n}\n\ninterface DashboardStatusBadgeProps {\n status: DashboardStatus;\n darkMode?: boolean;\n wrapperClassName?: string;\n}\n\nexport function DashboardStatusBadge(props: DashboardStatusBadgeProps): JSX.Element {\n const { statusName, svgName } = DashboardStatusConfig[props.status];\n\n return (\n <div className={getClassName(props)}>\n <SvgContainer svgName={svgName} />\n <div>{statusName}</div>\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"stickyWrapper\":\"zhw6K\",\"badgeWrapper\":\"NOvn1\",\"badge\":\"pxQSR\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { DashboardStatusBadge } from 'libs/shared/apps/subjects/components/classification-dashboard/dashboard-status-badge/DashboardStatusBadge';\nimport { EmojiText } from 'libs/shared/components/emoji-text/EmojiText';\nimport { DashboardStatus } from 'libs/shared/interfaces';\n\nimport styles from './preview-banner.scss';\n\nconst namespace = 'shared.classificationPreviewBanner';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface PreviewBannerProps {\n status: DashboardStatus;\n type: 'company' | 'topic';\n}\n\nexport function PreviewBanner(props: PreviewBannerProps): JSX.Element {\n return (\n <div className={`${styles.stickyWrapper} py-2 d-flex justify-content-space-between bg-dark text-white mx-2 rounded`}>\n <div className={`position-absolute d-flex ${styles.badgeWrapper}`}>\n <DashboardStatusBadge status={props.status} wrapperClassName={`${styles.badge}`} darkMode />\n </div>\n <div className='flex-grow-1'>\n <h1 className='text-center my-3 h5'>\n <EmojiText emoji='👀' />\n {getPhrase(props.type === 'topic' ? 'topicTitle' : 'companyTitle')}\n </h1>\n </div>\n </div>\n );\n}\n","import * as React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nconst namespace = 'shared.backButton';\n\ninterface BackButtonProps {\n appLink: Core.AppLink;\n backToName?: string;\n color?: 'black' | 'white';\n extraClasses?: string;\n /**\n * Whether or not the button text has a text shadow. Defaults to true\n */\n textShadow?: boolean;\n}\n\nBackButton.defaultProps = {\n color: 'black',\n extraClasses: ''\n};\n\nexport function BackButton(props: BackButtonProps): React.ReactElement {\n const { backToName, appLink, color, extraClasses, textShadow } = {\n textShadow: true,\n ...props\n };\n\n const backPhrase = backToName\n ? LanguageService.getPhrase(namespace, 'backTo', { backToName })\n : LanguageService.getPhrase(namespace, 'back');\n\n const colorClass = color === 'black' ? '' : 'text-white';\n const textShadowClass = textShadow ? 'text-shadow' : '';\n\n return (\n <AppLink\n appLink={appLink}\n className={`d-inline-flex align-items-center h5 mb-0 ${extraClasses} ${colorClass} ${textShadowClass}`}\n >\n <SvgContainer svgName={cvSvgLibrary.ChevronLeft} size={SvgContainerSize.Medium} />\n <span className='ms-1'>{backPhrase}</span>\n </AppLink>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"bannerContent\":\"sSCTB\",\"actionsContainer\":\"Z5WI2\",\"bannerContentWithLogo\":\"rgs7Q\",\"container\":\"M51HJ\",\"logoContainer\":\"vkeJk\",\"logoContainerLeft\":\"M3U9B\",\"logoHeading\":\"EtRwC\",\"specialEventContainer\":\"rOxDc\",\"headingLarge\":\"_8pnV\",\"heading\":\"JXVBH\"};","import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\nimport { PortalHelper } from 'libs/common/react/utils/PortalHelper';\n\nimport { ComingSoonTag } from 'libs/shared/apps/calendar/components/coming-soon-tag/ComingSoonTag';\nimport { GenericCalendarDate } from 'libs/shared/apps/calendar/components/generic-calendar-date/GenericCalendarDate';\nimport { CalendarTheme } from 'libs/shared/apps/calendar/interfaces/CalendarTheme';\nimport { ActionOptions, Actions } from 'libs/shared/components/actions/Actions';\nimport { BackButton } from 'libs/shared/components/back-button/BackButton';\nimport { LazyImage } from 'libs/shared/components/lazy-image/LazyImage';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { BG_COLOUR_CLASS_NAMES } from 'libs/shared/constants/ColourClassNames';\nimport { ImageMinDimensions } from 'libs/shared/constants/ImageSizes';\nimport { BannerPortalContext } from 'libs/shared/context/BannerPortalContext';\nimport { ImageSize, ImageType, ResizeType } from 'libs/shared/enums/Images';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { Banner, CalendarEvent, Logo } from 'libs/shared/interfaces';\nimport { getBgColorClass } from 'libs/shared/utils/getBgColorClass';\nimport { ImageHelper, ImageOptions } from 'libs/shared/utils/ImageHelper';\n\nimport styles from './banner-header.scss';\n\nconst RATIO = `${ImageMinDimensions[ImageType.Banners].width}:${ImageMinDimensions[ImageType.Banners].height}`;\nconst DEFAULT_WIDTH = 1200; // This is ImageSize.Large for a Banner.\nconst LARGE_SCREEN_WIDTH = 1920;\n\nfunction useGetImageWidth(): number {\n const breakpoints = useBreakpoints();\n\n if (breakpoints.xxl)\n return LARGE_SCREEN_WIDTH;\n\n return DEFAULT_WIDTH;\n}\n\nfunction getSizeClass(heading: string): string {\n if (heading.length < 160)\n return 'h1';\n\n return styles.headingLarge;\n}\n\ninterface BannerHeaderProps {\n heading: string;\n banner?: Banner;\n bannerClassName?: string;\n imageCdnUrl?: string;\n logo?: Logo;\n logoBgColour?: string;\n actions?: ActionOptions[];\n specialEvent?: CalendarEvent;\n backButtonAppLink?: Core.AppLink;\n backButtonText?: string;\n backButtonClasses?: string;\n sortComponent?: JSX.Element;\n blockColourClass?: string;\n actionsDropdownClassName?: string;\n detailsComponent?: () => React.ReactElement;\n imageOptions?: ImageOptions;\n showComingSoon?: boolean;\n alignLogoLeft?: boolean;\n calendarTheme?: CalendarTheme;\n}\n\nconst namespace = 'shared.bannerHeader';\n\nexport const BannerHeader = React.memo(function(props: React.PropsWithChildren<BannerHeaderProps>): React.ReactElement {\n const { heading, banner, imageCdnUrl, actions, sortComponent, blockColourClass, specialEvent } = props;\n\n const portalContainerContext = React.useContext(BannerPortalContext);\n\n const imageWidth = useGetImageWidth();\n\n const specialEventIsToday = React.useMemo(() => {\n if (!specialEvent || props.showComingSoon)\n return false;\n\n const today = DateHelper.format(new Date(), 'YYYY-MM-DD');\n\n if (!specialEvent.endDate)\n return specialEvent.startDate === today;\n\n return specialEvent.startDate <= today && specialEvent.endDate >= today;\n }, [specialEvent]);\n\n function getSpecialEventMonthText(specialEvent: CalendarEvent): string {\n if (!specialEvent.endDate)\n return DateHelper.format(specialEvent.startDate, 'MMMM');\n\n if (DateHelper.isSame(specialEvent.startDate, specialEvent.endDate, 'month'))\n return DateHelper.format(specialEvent.startDate, 'MMMM');\n\n return `${DateHelper.format(specialEvent.startDate, 'MMM')} - ${DateHelper.format(specialEvent.endDate, 'MMM')}`;\n }\n\n const imageOptions = props.imageOptions || {\n width: imageWidth,\n ratio: RATIO,\n resizeType: ResizeType.Cover\n };\n\n const url = !!banner && !!imageCdnUrl && ImageHelper.createBannerUrl(banner, {\n fallbackBaseUrl: imageCdnUrl,\n fallbackCategoryName: heading,\n type: ImageType.Banners\n }, imageOptions);\n\n const containerProps: React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement> = {\n className: `banner banner-header ${props.bannerClassName}`,\n style: url ? { backgroundImage: `url('${url}')` } : {}\n };\n\n if (!banner && blockColourClass) {\n delete containerProps.style;\n containerProps.className += ` ${blockColourClass}`;\n }\n\n const DetailsComponent = props.detailsComponent;\n\n const logoFallbackBgClassName = getBgColorClass(props.heading, BG_COLOUR_CLASS_NAMES);\n\n return PortalHelper.renderInPortalIfExists(\n // \"banner\" is used in playlists in Online. banner-header is used by all other projects\n <header {...containerProps}>\n <div className={`container ${styles.container} position-relative inner-banner`}>\n {props.backButtonAppLink && (\n <div className='pt-3'>\n <BackButton\n appLink={props.backButtonAppLink}\n backToName={props.backButtonText}\n extraClasses={props.backButtonClasses}\n color='white'\n />\n </div>\n )}\n \n <div className={`${props.alignLogoLeft ? 'position-absolute top-50 start-0 translate-middle-y w-100 ps-4' : `${styles.bannerContent} px-2 ${props.logo?.url ? styles.bannerContentWithLogo : ''}`}`}>\n {!!specialEvent && (\n <div className={`position-relative ${styles.specialEventContainer}`}>\n <GenericCalendarDate\n body={{\n type: specialEvent.endDate ? 'range' : 'day',\n text: specialEvent.endDate\n ? `${DateHelper.format(specialEvent.startDate, 'DD')}-${DateHelper.format(specialEvent.endDate, 'DD')}`\n : DateHelper.format(specialEvent.startDate, 'DD')\n }}\n month={getSpecialEventMonthText(specialEvent)}\n theme={props.calendarTheme}\n />\n </div>\n )}\n <div>\n {specialEventIsToday && (\n <div className='rounded-pill py-1 px-2 my-1 me-1 fw-semibold bg-light-blue lh-1 d-inline-block'>\n <Text namespace={namespace} phrase='onToday' />\n </div>\n )}\n {props.showComingSoon && (\n <ComingSoonTag className='pe-2 fw-semibold mb-1 rounded-pill justify-content-start text-nowrap' />\n )}\n <div className='d-flex align-items-center'>\n {props.alignLogoLeft && props.logo?.url &&\n <div className={`${styles.logoContainerLeft} d-none d-md-block rounded-circle overflow-hidden me-3 ${logoFallbackBgClassName}`}>\n <LazyImage\n src={ImageHelper.createUrl(props.logo?.url, { size: ImageSize.Medium })}\n style={{ backgroundColor: props.logoBgColour }}\n />\n </div>\n }\n <h1 className={`text-white text-shadow pe-3 position-static ${styles.heading} ${getSizeClass(heading)} ${props.alignLogoLeft ? 'w-50' : ''}`}>\n {heading}\n {DetailsComponent && <DetailsComponent />}\n </h1>\n </div>\n </div>\n {!!actions && (\n <div className={styles.actionsContainer}>\n <Actions\n actions={actions}\n sortComponent={sortComponent}\n actionsDropdownClassName={props.actionsDropdownClassName}\n />\n </div>\n )}\n </div>\n {!props.alignLogoLeft && !!props.logo?.url &&\n <div className={styles.logoContainer}>\n <img\n src={ImageHelper.createUrl(props.logo.url, { size: ImageSize.Medium })}\n className='rounded-circle'\n />\n </div>\n }\n </div>\n </header>,\n portalContainerContext?.container\n );\n}, (prevProps, nextProps): boolean => (\n prevProps.actions === nextProps.actions\n && prevProps.heading === nextProps.heading\n && prevProps.logo?.url === nextProps.logo?.url\n));\n\nexport function PartialBannerHeader(): JSX.Element {\n const portalContainerContext = React.useContext(BannerPortalContext);\n\n return PortalHelper.renderInPortalIfExists(\n <div className={`partial-banner partial-loading-background ${styles.banner}`} />,\n portalContainerContext?.container\n );\n}","import React from 'react';\n\nimport { Breadcrumb } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { BreadcrumbService } from 'libs/shared/services/BreadcrumbService';\n\nexport function useBreadcrumbs(current: Breadcrumb): Breadcrumb[] {\n const [ match, useBuilder ] = React.useMemo(() => BreadcrumbService.getBuilder(), []);\n\n const breadcrumbs = useBuilder(match);\n\n if (!breadcrumbs || !current)\n return breadcrumbs;\n\n return [ ...breadcrumbs, { ...current, active: true }];\n}\n\n","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { CuratedDashboard, DashboardStatus } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nconst namespace = 'moviesAndTv.companyDashboardEmptyState';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface CompanyDashboardEmptyStateProps {\n dashboard: CuratedDashboard;\n imageUrl: string;\n isReadonly: boolean;\n addWidgetApplink?: () => Core.AppLink;\n}\n\nexport function CompanyDashboardEmptyState(props: CompanyDashboardEmptyStateProps): JSX.Element {\n const isArchived = props.dashboard?.status === DashboardStatus.Archived;\n\n return (\n <EmptyState>\n <EmptyState.Image src={props.imageUrl} altText={getPhrase('info')} />\n <EmptyState.Heading>\n <Text namespace={namespace} phrase='heading' />\n </EmptyState.Heading>\n <EmptyState.Info>\n <Text namespace={namespace} phrase='info' />\n </EmptyState.Info>\n <Tooltip title={isArchived ? LanguageService.getPhrase(namespace, 'archivedCtaTooltip') : ''} spanHack>\n <EmptyState.Cta\n text={LanguageService.getPhrase(namespace, 'add')}\n appLink={props.addWidgetApplink?.()}\n className='btn btn-dark'\n icon={cvSvgLibrary.Plus}\n disabled={isArchived}\n />\n </Tooltip>\n </EmptyState>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { Flight } from 'libs/common/flight';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { CompanyDashboardEmptyState } from 'libs/shared/apps/movies-and-tv/components/company-dashboard/empty-state/CompanyDashboardEmptyState';\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { BannerHeader, PartialBannerHeader } from 'libs/shared/components/banner-header/BannerHeader';\nimport { Breadcrumb, Breadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { WidgetContainerView } from 'libs/shared/components/widgets/curated-widgets/WidgetContainerView';\nimport { AllCompanyWidgetTemplates } from 'libs/shared/components/widgets/curated-widgets/WidgetProps';\nimport { BG_COLOUR_CLASS_NAMES } from 'libs/shared/constants/ColourClassNames';\nimport { WidgetTemplate } from 'libs/shared/enums/WidgetTemplate';\nimport { WidgetTypeId } from 'libs/shared/enums/WidgetTypeId';\nimport { HasLocalPermissionsFunc, HasPermissionsFunc } from 'libs/shared/hooks/usePermissions';\nimport { Company, CuratedDashboard, CuratedWidgetQueryParams, DashboardTargetType, PresentationAudience } from 'libs/shared/interfaces';\nimport { CommonVideoProps } from 'libs/shared/interfaces/CommonVideoProps';\nimport { CuratedDashboardHelper } from 'libs/shared/utils/DashboardHelper';\nimport { getBgColorClass } from 'libs/shared/utils/getBgColorClass';\n\nexport interface CompanyDashboardProps {\n dashboard: CuratedDashboard;\n company: Company;\n getWidgetContentRequest: (\n id: string,\n params: CuratedWidgetQueryParams,\n widgetTemplate: WidgetTemplate\n ) => Flight.Request;\n hasPermissions: HasPermissionsFunc;\n hasLocalPermissions: HasLocalPermissionsFunc;\n audiences?: PresentationAudience[];\n emptyImageUrl?: string;\n widgetAppLinks?: AllCompanyWidgetTemplates['appLinks'] & {\n widgetWizard: () => Core.AppLink;\n };\n scrollToWidgetId?: string;\n isReadonly?: boolean;\n getBreadcrumbs?: () => Breadcrumb[];\n getBannerActions?: () => ActionOptions[];\n commonVideoProps: CommonVideoProps;\n\n settings?: AllCompanyWidgetTemplates['settings'];\n}\n\nexport function CompanyDashboard(props: CompanyDashboardProps): JSX.Element {\n const widgets = ArrayHelper.sortBy(props.dashboard?.widgets, 'index');\n\n function getWidgetContentRequest(id: string, widgetTypeId: WidgetTypeId, template: WidgetTemplate): Flight.Request {\n const params = CuratedDashboardHelper.getWidgetParams(\n widgetTypeId,\n template,\n CuratedDashboardHelper.getDashboardTargetType(props.dashboard)\n );\n\n return props.getWidgetContentRequest(id, params, template);\n }\n\n const showEmptyState = props.isReadonly && !widgets?.length;\n\n return (\n <>\n {!!widgets.length &&\n <>\n {props.company\n ? (\n <BannerHeader\n heading={props.company.name}\n banner={props.company.banner}\n imageCdnUrl={props.commonVideoProps.imageCdnUrl}\n blockColourClass={getBgColorClass(props.company.name, BG_COLOUR_CLASS_NAMES)}\n actions={props.getBannerActions?.()}\n actionsDropdownClassName='btn btn-outline-dark'\n />\n ) : <PartialBannerHeader />\n }\n\n <div className='py-3 mb-3 border-bottom'>\n <Breadcrumbs breadcrumbs={props.getBreadcrumbs?.()} />\n </div>\n\n <div className='mt-3'>\n {widgets.map(widget => {\n return (\n <WidgetContainerView\n widgetCollection={DashboardTargetType.Company}\n dashboardTarget={DashboardTargetType.Company}\n key={widget.id}\n id={widget.id}\n getContentRequest={getWidgetContentRequest}\n audiences={props.audiences}\n name={widget.name}\n description={widget.description}\n templateId={widget.templateId}\n metadata={widget.metadata}\n appLinks={props.widgetAppLinks}\n isScrollToTargetWidget={props?.scrollToWidgetId === widget.id}\n widgetTypeId={widget.widgetId}\n hasPermissions={props.hasPermissions}\n hasLocalPermissions={props.hasLocalPermissions}\n isPreviewing={props.isReadonly}\n settings={props.settings}\n imageCdnUrl={props.commonVideoProps.imageCdnUrl}\n commonVideoProps={props.commonVideoProps}\n\n // TODO: Ideally we don't have to do this\n classification={null}\n contentType={null}\n hasTableOfContents={false}\n seeMoreLink={null}\n onClickRemoveItem={null}\n badgeComponent={null}\n />\n );\n })}\n </div>\n </>\n }\n\n {showEmptyState && (\n <CompanyDashboardEmptyState\n dashboard={props.dashboard}\n isReadonly={props.isReadonly}\n imageUrl={props.emptyImageUrl}\n addWidgetApplink={props.widgetAppLinks.widgetWizard}\n />\n )}\n </>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/flight';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { CompanyDashboard, CompanyDashboardProps } from 'libs/shared/apps/movies-and-tv/components/company-dashboard/CompanyDashboard';\nimport { PreviewBanner } from 'libs/shared/apps/subjects/components/preview-banner/PreviewBanner';\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { Breadcrumb } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { RelatedVideosContext } from 'libs/shared/enums/RelatedVideosContext';\nimport { NotFoundError } from 'libs/shared/errors/general/not-found/NotFoundError';\nimport { DashboardRequests } from 'libs/shared/flight-requests/DashboardRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useBreadcrumbs } from 'libs/shared/hooks/useBreadcrumbs';\nimport { useCurationStudio } from 'libs/shared/hooks/useCurationStudio';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { Company, CurrentUser, DashboardTargetType, Playlist, VideoTypes } from 'libs/shared/interfaces';\nimport { GetVideoAppLinkOptions } from 'libs/shared/interfaces/VideoAppLinkOptions';\nimport { PageMetadataHelper } from 'libs/shared/utils/PageMetadataHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { CompanyRequests } from 'shared/flight-requests/CompanyRequests';\nimport { useCommonVideoProps } from 'shared/hooks/useCommonVideoProps';\nimport { useDeepLinks } from 'shared/hooks/useDeepLinks';\nimport { DashboardViewQueryParams } from 'shared/interfaces/query-params/DashboardViewQueryParams';\nimport { useFetchCuratedDashboard } from 'shared/utils/DashboardHelper';\nimport { SeoHelper } from 'shared/utils/SeoHelper';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\n\nimport { SeriesAppLinkHelper } from 'apps/series/SeriesAppLinkHelper';\n\nconst namespace = 'moviesAndTv.companyDashboard';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction getCompanyAppLinks(currentUser: CurrentUser): CompanyDashboardProps['widgetAppLinks'] {\n return {\n videoType: (video: VideoTypes, opts: GetVideoAppLinkOptions) => (\n VideoAppLinkHelper.getAppLink(video, {\n ...opts,\n moviesAndTv: true,\n context: RelatedVideosContext.Widget,\n includeContext: currentUser?.isAuthenticated\n })\n ),\n \n series: SeriesAppLinkHelper.getSeriesAppLink,\n \n playlist: (playlist: Playlist) => ({\n application: AppChannels.PLAYLISTS,\n action: Actions.Playlists.PLAYLIST,\n args: [ playlist.id, TextHelper.slugify(playlist.name) ]\n }),\n \n // TODO: Find a nice way around having to pass these in\n classification: () => null,\n allTopics: () => null,\n calendar: () => null,\n calendarMonth: () => null,\n classificationDirectory: () => null,\n classificationLatestReleases: () => null,\n company: () => null,\n discover: () => null,\n livestream: () => null,\n watchHistory: () => null,\n widgetVideoList: () => null,\n widgetWizard: () => null,\n searchSettings: () => null,\n searchHome: () => null\n };\n}\n\ninterface CompanyDashboardViewProps {\n presentationSlug: string;\n companyId: string;\n queryParams?: DashboardViewQueryParams;\n}\n\nexport function CompanyDashboardView(props: CompanyDashboardViewProps): JSX.Element {\n const company = Flight.useBasicFetch<Company>(CompanyRequests.company(props.companyId));\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const { openInCurationStudioLabel, isUserCurator, getOpenInCurationStudioLink } = useCurationStudio();\n\n const { commonVideoProps } = useCommonVideoProps({\n locationContext: LocationContext.VideoThumbnail,\n mtv: true\n });\n const { hasPermissions, hasLocalPermissions } = usePermissions();\n const settings = useSettings(null);\n const hasMoviesAndTv = hasPermissions(PermissionName.ViewMoviesTv);\n\n const {\n dashboard,\n isPreviewing\n } = useFetchCuratedDashboard({\n targetType: DashboardTargetType.Company,\n queryParams: props.queryParams,\n presentationSlug: props.presentationSlug,\n companyId: props.companyId\n });\n\n useSetPageMetadata(PageMetadataHelper.getDefaultMetadata({\n title: company.data?.name,\n phraseContext: {\n phraseHandler: getPhrase,\n titlePhrase: 'pageTitle',\n descriptionPhrase: 'pageDescription'\n },\n canonicalLink: SeoHelper.getCanonicalLink({\n stripPresentationSlug: true,\n customAppLink: {\n application: AppChannels.MOVIES_AND_TV,\n action: Actions.MoviesAndTv.COMPANY_DASHBOARD,\n args: [ company.data?.id, TextHelper.slugify(company.data?.name) ]\n }\n }),\n allowIndexing: false\n }));\n\n useDeepLinks({ id: props.companyId, app: 'studios' });\n\n React.useEffect(() => {\n if (!dashboard.hasCompleted)\n return;\n\n if (hasMoviesAndTv && dashboard.data)\n return;\n\n Core.AppLinkHelper.trigger(\n { application: AppChannels.DASHBOARD, action: Actions.Dashboard.HOME },\n { replace: true }\n );\n }, [ hasMoviesAndTv, dashboard.data, dashboard.hasCompleted ]);\n\n const breadcrumbs = useBreadcrumbs({ name: company.data?.name });\n function getBreadcrumbs(): Breadcrumb[] {\n if (!company.hasCompleted)\n return [];\n\n return breadcrumbs;\n }\n\n function getBannerActions(): ActionOptions[] {\n if (!isUserCurator)\n return [];\n\n return [{\n label: openInCurationStudioLabel,\n href: getOpenInCurationStudioLink(company.data?.typeId, company.data?.id),\n openInNewTab: true\n }];\n }\n\n React.useEffect(() => {\n if (!dashboard.hasCompleted || dashboard.data)\n return;\n\n Core.ErrorHelper.throw(new NotFoundError());\n }, [ dashboard.data, dashboard.hasCompleted ]);\n\n return (\n <div className='position-relative px-4'>\n {!!(isPreviewing && dashboard.data) && <PreviewBanner status={dashboard.data.status} type='company' />}\n <CompanyDashboard\n company={company.data}\n dashboard={dashboard.data}\n getWidgetContentRequest={DashboardRequests.dashboardWidgetContent}\n getBannerActions={getBannerActions}\n widgetAppLinks={getCompanyAppLinks(currentUser.data)}\n getBreadcrumbs={getBreadcrumbs}\n hasPermissions={hasPermissions}\n hasLocalPermissions={hasLocalPermissions}\n settings={settings}\n commonVideoProps={commonVideoProps}\n />\n </div>\n );\n}"],"names":["DashboardStatusConfig","Dashboard","svgName","svgColorClassName","actionName","statusName","getClassName","props","className","status","darkMode","wrapperClassName","DashboardStatusBadge","SvgContainer","getPhrase","LanguageService","PreviewBanner","EmojiText","emoji","type","namespace","BackButton","textShadow","backToName","appLink","color","extraClasses","backPhrase","colorClass","textShadowClass","AppLink","size","S","defaultProps","RATIO","width","height","getSizeClass","heading","length","BannerHeader","banner","imageCdnUrl","actions","sortComponent","blockColourClass","specialEvent","portalContainerContext","BannerPortalContext","imageWidth","useBreakpoints","xxl","specialEventIsToday","showComingSoon","today","DateHelper","Date","endDate","startDate","imageOptions","ratio","resizeType","url","ImageHelper","fallbackBaseUrl","fallbackCategoryName","containerProps","bannerClassName","style","backgroundImage","DetailsComponent","detailsComponent","logoFallbackBgClassName","getBgColorClass","PortalHelper","backButtonAppLink","backButtonText","backButtonClasses","alignLogoLeft","logo","GenericCalendarDate","body","text","month","getSpecialEventMonthText","theme","calendarTheme","Text","phrase","ComingSoonTag","LazyImage","src","backgroundColor","logoBgColour","Actions","actionsDropdownClassName","container","prevProps","nextProps","PartialBannerHeader","useBreadcrumbs","current","match","breadcrumbs","useBuilder","active","CompanyDashboardEmptyState","isArchived","dashboard","EmptyState","imageUrl","altText","Tooltip","title","spanHack","addWidgetApplink","icon","disabled","CompanyDashboard","widgets","ArrayHelper","getWidgetContentRequest","id","widgetTypeId","template","params","showEmptyState","isReadonly","company","name","commonVideoProps","getBannerActions","Breadcrumbs","getBreadcrumbs","map","widget","WidgetContainerView","widgetCollection","dashboardTarget","key","getContentRequest","audiences","description","templateId","metadata","appLinks","widgetAppLinks","isScrollToTargetWidget","scrollToWidgetId","widgetId","hasPermissions","hasLocalPermissions","isPreviewing","settings","classification","contentType","hasTableOfContents","seeMoreLink","onClickRemoveItem","badgeComponent","emptyImageUrl","widgetWizard","getCompanyAppLinks","currentUser","videoType","video","opts","VideoAppLinkHelper","moviesAndTv","context","RelatedVideosContext","includeContext","isAuthenticated","series","SeriesAppLinkHelper","playlist","application","action","args","TextHelper","allTopics","calendar","calendarMonth","classificationDirectory","classificationLatestReleases","discover","livestream","watchHistory","widgetVideoList","searchSettings","searchHome","CompanyDashboardView","CompanyRequests","companyId","UserRequests","useCurationStudio","openInCurationStudioLabel","isUserCurator","getOpenInCurationStudioLink","useCommonVideoProps","locationContext","mtv","usePermissions","useSettings","hasMoviesAndTv","PermissionName","targetType","queryParams","presentationSlug","useSetPageMetadata","PageMetadataHelper","data","phraseContext","phraseHandler","titlePhrase","descriptionPhrase","canonicalLink","SeoHelper","stripPresentationSlug","customAppLink","allowIndexing","useDeepLinks","app","hasCompleted","replace","NotFoundError","DashboardRequests","label","href","typeId","openInNewTab"],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[8280],{24804:(e,a,t)=>{t.d(a,{X:()=>r});var i=t(32735);const d={video:"ekpg6",notice:"lQs4F",heading:"Gt6uV",interaction:"LEfYX",button:"caHP7",edit:"de4DP",questions:"XelbS"};function r(){return i.createElement("div",{className:"px-3 w-100"},i.createElement("div",{className:"partial-loading-background ".concat(d.notice)}),i.createElement("div",{className:"partial-loading-background mb-3 ".concat(d.video)},i.createElement("div",{className:"partial-loading-background ".concat(d.questions)})),i.createElement("div",{className:"partial-loading-background mb-3 ".concat(d.heading)}),i.createElement("div",null,Array(5).fill(null).map((function(e,a){return i.createElement("div",{key:a,className:"partial-loading-background my-2 ".concat(d.interaction)})}))))}},38280:(e,a,t)=>{t.r(a),t.d(a,{SharedInteractiveView:()=>_});var i=t(32735),d=t(20354),r=t(65858),n=t(2208),c=t(30439),o=t(4594),s=t(60051),l=t(16714),u=t(39151),v=t(1666),m=t(20768),h=t(47812),p=t(31949),b=t(26304),g=t(91286),I=t(22902),P=t(79612),k=t(76753),y=t(58321),f=t(7179),C=t(36873),V=t(44110),E=t(53073),F=t(97816),w=t(24804),q=t(84062),B=t(25758),N=t(57426),S=t(16857),x=t(71214),A={notFound:N.k,forbidden:{privacy:S.m}};function M(e){return(null==e?void 0:e._parentClip)||(null==e?void 0:e._parentVideo)}function _(e){var a,t,N,_,j,U,L,G=(0,I.T)().hasPermissions,T=d.a.useBasicFetch(u.L.config()),X=d.a.useBasicFetch(p.N.token()),K=d.a.useBasicFetch(p.N.currentUser()),D=d.a.useBasicFetch(m.b.sharedInteractiveMetadata(e.objectId,e.shareId)),O=d.a.useBasicFetch(c.o.getShareObject(e.shareId)),Y=O.data&&(O.data.objectTypeId===o.E.Interactive?h.k.createViewKey(e.shareId,s.f.Share):h.k.createViewKey(e.objectId,s.f.MasterObject,e.shareId)),Z=d.a.useBasicFetch(Y),H=(0,V.i)(),Q=d.a.useBasicFetch((null===(a=K.data)||void 0===a?void 0:a.isAuthenticated)&&v.h.yearGroups(K.data.customerId)),z=(0,E.f)(),J=d.a.useBasicFetch(z&&D.data&&m.b.interactive(D.data.interactiveId)),R=d.a.useBasicFetch(z&&D.data&&m.b.videoInteractives(M(D.data).id)),W=z?r.LZ.PreviewSharedInteractive:r.LZ.PlaySharedInteractive,$=(0,y.U)({locationContext:W}),ee=$.commonVideoProps,ae=$.hasCommonVideoPropsCompleted,te=(0,C.k)({video:D.data,context:e.queryParams.context,contextId:e.queryParams.contextId,moviesAndTv:e.queryParams.mtv,currentUser:K.data}),ie=M(D.data);(0,g.v)(D,A),(0,b.b)(D,{private:S.m}),(0,f.P)({id:e.objectId,app:"interactives",shareId:e.shareId}),(0,F.V)(null!==(t=te.videos)&&void 0!==t?t:[]),(0,P.M)(k.CG.getInteractiveMetadata({content:D.data}));var de=D.data&&T.hasCompleted&&K.hasCompleted&&(!z||J.hasCompleted)&&O.hasCompleted&&Z.hasCompleted&&X.hasCompleted&&ae;return z?de?i.createElement(B.x,{sourceVideo:ie,currentUser:K.data,queryParams:e.queryParams,interactive:D.data,interactives:null===(N=R.data)||void 0===N?void 0:N.data,isPreviewPreventScrubbingEnabled:J.data.preventScrubbing,audiences:H.data,relatedVideos:te,canManageVideoAccess:G(l.C.ManageVideoAccess),commonVideoProps:ee}):i.createElement(w.X,null):de?i.createElement(q.M,{interactive:D.data,currentUser:K.data,config:T.data,audiences:H.data,yearGroups:Q.data,queryParams:e.queryParams,viewKey:Z.data,relatedVideos:te,shareLink:O.data,startTime:null===(_=e.queryParams)||void 0===_?void 0:_.t,token:X.data,publicName:(null===(j=K.data)||void 0===j?void 0:j.isAuthenticated)?void 0:x.h.getPublicUser(),profileId:(null===(U=K.data)||void 0===U?void 0:U.isAuthenticated)?void 0:"s_".concat(null===(L=n.Y.getClientSessionData())||void 0===L?void 0:L.id),commonVideoProps:ee}):i.createElement(i.Fragment,null)}}}]);
|
|
2
|
-
//# sourceMappingURL=8280-
|
|
2
|
+
//# sourceMappingURL=8280-6d9466991b-lite.chunk.js.map
|
package/dist/scripts/{8280-2e8afc8fa9-lite.chunk.js.map → 8280-6d9466991b-lite.chunk.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scripts/8280-2e8afc8fa9-lite.chunk.js","mappings":"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","sources":["file:///app/packages/projects/lite/src/apps/interactives/components/interactive-partial-loading/interactive-partial-loading.scss","file:///app/packages/projects/lite/src/apps/interactives/components/interactive-partial-loading/InteractivePartialLoading.tsx","file:///app/packages/projects/lite/src/apps/share/views/shared-interactive/SharedInteractiveView.tsx"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport default {\"video\":\"ekpg6\",\"notice\":\"lQs4F\",\"heading\":\"Gt6uV\",\"interaction\":\"LEfYX\",\"button\":\"caHP7\",\"edit\":\"de4DP\",\"questions\":\"XelbS\"};","import React from 'react';\n\nimport styles from './interactive-partial-loading.scss';\n\nexport function InteractivePartialLoading(): React.ReactElement {\n return (\n <div className='px-3 w-100'>\n <div className={`partial-loading-background ${styles.notice}`} />\n <div className={`partial-loading-background mb-3 ${styles.video}`}>\n <div className={`partial-loading-background ${styles.questions}`}></div>\n </div>\n <div className={`partial-loading-background mb-3 ${styles.heading}`}></div>\n <div>\n {Array(5).fill(null).map((_, i) => (\n <div key={i} className={`partial-loading-background my-2 ${styles.interaction}`}></div>\n ))}\n </div>\n </div>\n );\n}","import React from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\nimport { SessionHelper } from 'libs/analytics/utils/SessionHelper';\n\nimport { ShareRequests } from 'libs/shared/apps/share/flight-requests/ShareRequests';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { MediaIdType } from 'libs/shared/enums/MediaIdType';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\nimport { InteractiveRequests } from 'libs/shared/flight-requests/InteractiveRequests';\nimport { PlayerRequests } from 'libs/shared/flight-requests/PlayerRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useCannotConsumeError } from 'libs/shared/hooks/useCannotConsumeError';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { Clip, Config, CurrentUser, Interactive, InteractiveCollection, InteractiveMetadata, PlayerViewKey, UnionShareObject, Video, YearGroup } from 'libs/shared/interfaces';\nimport { AuthToken } from 'libs/shared/interfaces/models/AuthToken';\nimport { PageMetadataHelper } from 'libs/shared/utils/PageMetadataHelper';\n\nimport { useCommonVideoProps } from 'shared/hooks/useCommonVideoProps';\nimport { useDeepLinks } from 'shared/hooks/useDeepLinks';\nimport { useGetRelatedVideos } from 'shared/hooks/useGetRelatedVideos';\nimport { usePresentationAudiences } from 'shared/hooks/usePresentationAudiences';\nimport { useShouldPreviewInteractive } from 'shared/hooks/useShouldPreviewInteractive';\nimport { useVideoMixin } from 'shared/hooks/useVideoMixin';\n\nimport { InteractivePartialLoading } from 'apps/interactives/components/interactive-partial-loading/InteractivePartialLoading';\nimport { PlayInteractive } from 'apps/interactives/components/play-interactive/PlayInteractive';\nimport { PreviewInteractive } from 'apps/interactives/components/preview-interactive/PreviewInteractive';\nimport { ShareLinkNotFoundError } from 'apps/share/errors/share-link-not-found/ShareLinkNotFoundError';\nimport { ShareLinkPrivateError } from 'apps/share/errors/share-link-private/ShareLinkPrivateError';\nimport { ShareLinkFilterHelpers } from 'apps/share/filters/share-link-filter/ShareLinkFilterHelpers';\nimport { ShareLinkViewProps } from 'apps/share/interfaces/ShareLinkViewProps';\n\nconst videoErrors = {\n notFound: ShareLinkNotFoundError,\n forbidden: {\n privacy: ShareLinkPrivateError\n }\n};\n\nfunction getSourceVideo(interactive: InteractiveMetadata): Clip | Video {\n return interactive?._parentClip || interactive?._parentVideo;\n}\n\nexport function SharedInteractiveView(props: ShareLinkViewProps): JSX.Element {\n const { hasPermissions } = usePermissions();\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const token = Flight.useBasicFetch<AuthToken>(UserRequests.token());\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const interactiveMetadata = Flight.useBasicFetch<InteractiveMetadata>(\n InteractiveRequests.sharedInteractiveMetadata(props.objectId, props.shareId)\n );\n\n const shareLink = Flight.useBasicFetch<UnionShareObject>(\n ShareRequests.getShareObject(props.shareId)\n );\n\n /**\n * If the shareLink type isn't an interactive, then it's a playlist and needs to be\n * used as context for fetching\n */\n const viewKeyRequest = shareLink.data && (shareLink.data.objectTypeId === MasterType.Interactive\n ? PlayerRequests.createViewKey(props.shareId, MediaIdType.Share)\n : PlayerRequests.createViewKey(props.objectId, MediaIdType.MasterObject, props.shareId));\n const viewKey = Flight.useBasicFetch<PlayerViewKey>(viewKeyRequest);\n const audiences = usePresentationAudiences();\n const yearGroups = Flight.useBasicFetch<YearGroup[]>(\n currentUser.data?.isAuthenticated && CustomerRequests.yearGroups(currentUser.data.customerId)\n );\n\n /**\n * Authenticated staff with Lite product access get the interactive \"Preview\" view instead\n * of the usual play view.\n */\n const shouldPreviewInteractive = useShouldPreviewInteractive();\n const interactive = Flight.useBasicFetch<Interactive>(\n shouldPreviewInteractive && interactiveMetadata.data &&\n InteractiveRequests.interactive(interactiveMetadata.data.interactiveId)\n );\n const interactives = Flight.useBasicFetch<InteractiveCollection>(\n shouldPreviewInteractive && interactiveMetadata.data &&\n InteractiveRequests.videoInteractives(getSourceVideo(interactiveMetadata.data).id)\n );\n\n const locationContext = shouldPreviewInteractive\n ? LocationContext.PreviewSharedInteractive\n : LocationContext.PlaySharedInteractive;\n const {\n commonVideoProps,\n hasCommonVideoPropsCompleted\n } = useCommonVideoProps({ locationContext });\n\n\n const relatedVideos = useGetRelatedVideos({\n video: interactiveMetadata.data,\n context: props.queryParams.context,\n contextId: props.queryParams.contextId,\n moviesAndTv: props.queryParams.mtv,\n currentUser: currentUser.data\n });\n const sourceVideo = getSourceVideo(interactiveMetadata.data);\n\n useHandleObjectError(interactiveMetadata, videoErrors);\n useCannotConsumeError(interactiveMetadata, { private: ShareLinkPrivateError });\n useDeepLinks({ id: props.objectId, app: 'interactives', shareId: props.shareId });\n useVideoMixin(relatedVideos.videos ?? []);\n useSetPageMetadata(PageMetadataHelper.getInteractiveMetadata({ content: interactiveMetadata.data }));\n\n const hasLoaded = (\n interactiveMetadata.data &&\n config.hasCompleted &&\n currentUser.hasCompleted &&\n (!shouldPreviewInteractive || interactive.hasCompleted) &&\n shareLink.hasCompleted &&\n viewKey.hasCompleted &&\n token.hasCompleted &&\n hasCommonVideoPropsCompleted\n );\n\n if (shouldPreviewInteractive) {\n // For staff, the interactive is previewed\n if (!hasLoaded)\n return <InteractivePartialLoading />;\n\n return (\n <PreviewInteractive\n sourceVideo={sourceVideo}\n currentUser={currentUser.data}\n queryParams={props.queryParams}\n interactive={interactiveMetadata.data}\n interactives={interactives.data?.data}\n isPreviewPreventScrubbingEnabled={interactive.data.preventScrubbing}\n audiences={audiences.data}\n relatedVideos={relatedVideos}\n canManageVideoAccess={hasPermissions(PermissionName.ManageVideoAccess)}\n commonVideoProps={commonVideoProps}\n />\n );\n }\n\n if (!hasLoaded)\n return <></>;\n\n return (\n <PlayInteractive\n interactive={interactiveMetadata.data}\n currentUser={currentUser.data}\n config={config.data}\n audiences={audiences.data}\n yearGroups={yearGroups.data}\n queryParams={props.queryParams}\n viewKey={viewKey.data}\n relatedVideos={relatedVideos}\n shareLink={shareLink.data}\n startTime={props.queryParams?.t}\n token={token.data}\n publicName={currentUser.data?.isAuthenticated ? undefined : ShareLinkFilterHelpers.getPublicUser()}\n // s_ prefix while we're using the session id instead of the profile id\n profileId={currentUser.data?.isAuthenticated ? undefined : `s_${SessionHelper.getClientSessionData()?.id}`}\n commonVideoProps={commonVideoProps}\n />\n );\n}"],"names":["InteractivePartialLoading","className","Array","fill","map","_","i","key","videoErrors","notFound","forbidden","privacy","getSourceVideo","interactive","_parentClip","_parentVideo","SharedInteractiveView","props","hasPermissions","config","token","currentUser","interactiveMetadata","objectId","shareId","shareLink","viewKeyRequest","data","objectTypeId","viewKey","audiences","yearGroups","isAuthenticated","customerId","shouldPreviewInteractive","interactiveId","interactives","id","locationContext","commonVideoProps","hasCommonVideoPropsCompleted","relatedVideos","video","context","queryParams","contextId","moviesAndTv","mtv","sourceVideo","private","app","videos","content","hasLoaded","hasCompleted","isPreviewPreventScrubbingEnabled","preventScrubbing","canManageVideoAccess","startTime","t","publicName","undefined","profileId"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"scripts/8280-6d9466991b-lite.chunk.js","mappings":"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","sources":["file:///app/packages/projects/lite/src/apps/interactives/components/interactive-partial-loading/interactive-partial-loading.scss","file:///app/packages/projects/lite/src/apps/interactives/components/interactive-partial-loading/InteractivePartialLoading.tsx","file:///app/packages/projects/lite/src/apps/share/views/shared-interactive/SharedInteractiveView.tsx"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport default {\"video\":\"ekpg6\",\"notice\":\"lQs4F\",\"heading\":\"Gt6uV\",\"interaction\":\"LEfYX\",\"button\":\"caHP7\",\"edit\":\"de4DP\",\"questions\":\"XelbS\"};","import React from 'react';\n\nimport styles from './interactive-partial-loading.scss';\n\nexport function InteractivePartialLoading(): React.ReactElement {\n return (\n <div className='px-3 w-100'>\n <div className={`partial-loading-background ${styles.notice}`} />\n <div className={`partial-loading-background mb-3 ${styles.video}`}>\n <div className={`partial-loading-background ${styles.questions}`}></div>\n </div>\n <div className={`partial-loading-background mb-3 ${styles.heading}`}></div>\n <div>\n {Array(5).fill(null).map((_, i) => (\n <div key={i} className={`partial-loading-background my-2 ${styles.interaction}`}></div>\n ))}\n </div>\n </div>\n );\n}","import React from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\nimport { SessionHelper } from 'libs/analytics/utils/SessionHelper';\n\nimport { ShareRequests } from 'libs/shared/apps/share/flight-requests/ShareRequests';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { MediaIdType } from 'libs/shared/enums/MediaIdType';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\nimport { InteractiveRequests } from 'libs/shared/flight-requests/InteractiveRequests';\nimport { PlayerRequests } from 'libs/shared/flight-requests/PlayerRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useCannotConsumeError } from 'libs/shared/hooks/useCannotConsumeError';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { Clip, Config, CurrentUser, Interactive, InteractiveCollection, InteractiveMetadata, PlayerViewKey, UnionShareObject, Video, YearGroup } from 'libs/shared/interfaces';\nimport { AuthToken } from 'libs/shared/interfaces/models/AuthToken';\nimport { PageMetadataHelper } from 'libs/shared/utils/PageMetadataHelper';\n\nimport { useCommonVideoProps } from 'shared/hooks/useCommonVideoProps';\nimport { useDeepLinks } from 'shared/hooks/useDeepLinks';\nimport { useGetRelatedVideos } from 'shared/hooks/useGetRelatedVideos';\nimport { usePresentationAudiences } from 'shared/hooks/usePresentationAudiences';\nimport { useShouldPreviewInteractive } from 'shared/hooks/useShouldPreviewInteractive';\nimport { useVideoMixin } from 'shared/hooks/useVideoMixin';\n\nimport { InteractivePartialLoading } from 'apps/interactives/components/interactive-partial-loading/InteractivePartialLoading';\nimport { PlayInteractive } from 'apps/interactives/components/play-interactive/PlayInteractive';\nimport { PreviewInteractive } from 'apps/interactives/components/preview-interactive/PreviewInteractive';\nimport { ShareLinkNotFoundError } from 'apps/share/errors/share-link-not-found/ShareLinkNotFoundError';\nimport { ShareLinkPrivateError } from 'apps/share/errors/share-link-private/ShareLinkPrivateError';\nimport { ShareLinkFilterHelpers } from 'apps/share/filters/share-link-filter/ShareLinkFilterHelpers';\nimport { ShareLinkViewProps } from 'apps/share/interfaces/ShareLinkViewProps';\n\nconst videoErrors = {\n notFound: ShareLinkNotFoundError,\n forbidden: {\n privacy: ShareLinkPrivateError\n }\n};\n\nfunction getSourceVideo(interactive: InteractiveMetadata): Clip | Video {\n return interactive?._parentClip || interactive?._parentVideo;\n}\n\nexport function SharedInteractiveView(props: ShareLinkViewProps): JSX.Element {\n const { hasPermissions } = usePermissions();\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const token = Flight.useBasicFetch<AuthToken>(UserRequests.token());\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const interactiveMetadata = Flight.useBasicFetch<InteractiveMetadata>(\n InteractiveRequests.sharedInteractiveMetadata(props.objectId, props.shareId)\n );\n\n const shareLink = Flight.useBasicFetch<UnionShareObject>(\n ShareRequests.getShareObject(props.shareId)\n );\n\n /**\n * If the shareLink type isn't an interactive, then it's a playlist and needs to be\n * used as context for fetching\n */\n const viewKeyRequest = shareLink.data && (shareLink.data.objectTypeId === MasterType.Interactive\n ? PlayerRequests.createViewKey(props.shareId, MediaIdType.Share)\n : PlayerRequests.createViewKey(props.objectId, MediaIdType.MasterObject, props.shareId));\n const viewKey = Flight.useBasicFetch<PlayerViewKey>(viewKeyRequest);\n const audiences = usePresentationAudiences();\n const yearGroups = Flight.useBasicFetch<YearGroup[]>(\n currentUser.data?.isAuthenticated && CustomerRequests.yearGroups(currentUser.data.customerId)\n );\n\n /**\n * Authenticated staff with Lite product access get the interactive \"Preview\" view instead\n * of the usual play view.\n */\n const shouldPreviewInteractive = useShouldPreviewInteractive();\n const interactive = Flight.useBasicFetch<Interactive>(\n shouldPreviewInteractive && interactiveMetadata.data &&\n InteractiveRequests.interactive(interactiveMetadata.data.interactiveId)\n );\n const interactives = Flight.useBasicFetch<InteractiveCollection>(\n shouldPreviewInteractive && interactiveMetadata.data &&\n InteractiveRequests.videoInteractives(getSourceVideo(interactiveMetadata.data).id)\n );\n\n const locationContext = shouldPreviewInteractive\n ? LocationContext.PreviewSharedInteractive\n : LocationContext.PlaySharedInteractive;\n const {\n commonVideoProps,\n hasCommonVideoPropsCompleted\n } = useCommonVideoProps({ locationContext });\n\n\n const relatedVideos = useGetRelatedVideos({\n video: interactiveMetadata.data,\n context: props.queryParams.context,\n contextId: props.queryParams.contextId,\n moviesAndTv: props.queryParams.mtv,\n currentUser: currentUser.data\n });\n const sourceVideo = getSourceVideo(interactiveMetadata.data);\n\n useHandleObjectError(interactiveMetadata, videoErrors);\n useCannotConsumeError(interactiveMetadata, { private: ShareLinkPrivateError });\n useDeepLinks({ id: props.objectId, app: 'interactives', shareId: props.shareId });\n useVideoMixin(relatedVideos.videos ?? []);\n useSetPageMetadata(PageMetadataHelper.getInteractiveMetadata({ content: interactiveMetadata.data }));\n\n const hasLoaded = (\n interactiveMetadata.data &&\n config.hasCompleted &&\n currentUser.hasCompleted &&\n (!shouldPreviewInteractive || interactive.hasCompleted) &&\n shareLink.hasCompleted &&\n viewKey.hasCompleted &&\n token.hasCompleted &&\n hasCommonVideoPropsCompleted\n );\n\n if (shouldPreviewInteractive) {\n // For staff, the interactive is previewed\n if (!hasLoaded)\n return <InteractivePartialLoading />;\n\n return (\n <PreviewInteractive\n sourceVideo={sourceVideo}\n currentUser={currentUser.data}\n queryParams={props.queryParams}\n interactive={interactiveMetadata.data}\n interactives={interactives.data?.data}\n isPreviewPreventScrubbingEnabled={interactive.data.preventScrubbing}\n audiences={audiences.data}\n relatedVideos={relatedVideos}\n canManageVideoAccess={hasPermissions(PermissionName.ManageVideoAccess)}\n commonVideoProps={commonVideoProps}\n />\n );\n }\n\n if (!hasLoaded)\n return <></>;\n\n return (\n <PlayInteractive\n interactive={interactiveMetadata.data}\n currentUser={currentUser.data}\n config={config.data}\n audiences={audiences.data}\n yearGroups={yearGroups.data}\n queryParams={props.queryParams}\n viewKey={viewKey.data}\n relatedVideos={relatedVideos}\n shareLink={shareLink.data}\n startTime={props.queryParams?.t}\n token={token.data}\n publicName={currentUser.data?.isAuthenticated ? undefined : ShareLinkFilterHelpers.getPublicUser()}\n // s_ prefix while we're using the session id instead of the profile id\n profileId={currentUser.data?.isAuthenticated ? undefined : `s_${SessionHelper.getClientSessionData()?.id}`}\n commonVideoProps={commonVideoProps}\n />\n );\n}"],"names":["InteractivePartialLoading","className","Array","fill","map","_","i","key","videoErrors","notFound","forbidden","privacy","getSourceVideo","interactive","_parentClip","_parentVideo","SharedInteractiveView","props","hasPermissions","config","token","currentUser","interactiveMetadata","objectId","shareId","shareLink","viewKeyRequest","data","objectTypeId","viewKey","audiences","yearGroups","isAuthenticated","customerId","shouldPreviewInteractive","interactiveId","interactives","id","locationContext","commonVideoProps","hasCommonVideoPropsCompleted","relatedVideos","video","context","queryParams","contextId","moviesAndTv","mtv","sourceVideo","private","app","videos","content","hasLoaded","hasCompleted","isPreviewPreventScrubbingEnabled","preventScrubbing","canManageVideoAccess","startTime","t","publicName","undefined","profileId"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[8451],{39902:(e,t,n)=>{n.d(t,{FN:()=>m,SW:()=>v,fh:()=>p});var r=n(32735),a=n(20354),i=n(75896);function o(e){return function(e){if(Array.isArray(e))return u(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||l(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(e,t){if(e){if("string"==typeof e)return u(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)?u(e,t):void 0}}function u(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 c(e){return c="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},c(e)}function s(e,t,n){return(t=function(e){var t=function(e){if("object"!=c(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=c(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==c(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},f=50;function p(e,t){var n=i.m.chunk(e,f).map((function(e){return t(i.m.uniq(e))})),r=a.a.useBasicFetchAll(n),o=i.m.flatten(r.data),l=r.data.length?o.reduce((function(e,t){return Object.assign(Object.assign({},e),s({},t.id,t))}),{}):null;return{itemsArr:o,items:l,isFetching:r.isFetching}}function m(e,t,n){var a=v({getRequest:t,_getKey:n}),i=a.fetchItems,o=d(a,["fetchItems"]);return r.useEffect((function(){e.length&&i(e)}),[null==e?void 0:e.length]),o}function v(e){var t,n,u,d,p,m=null!==(t=e._getKey)&&void 0!==t?t:function(e){return"object"===c(e)?e.id:e},v=r.useRef(new Set),h=(d=r.useState([]),p=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,o,l=[],u=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=i.call(n)).done)&&(l.push(r.value),l.length!==t);u=!0);}catch(e){c=!0,a=e}finally{try{if(!u&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw a}}return l}}(d,p)||l(d,p)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),y=h[0],b=h[1],g=a.a.useBasicFetchAll(y),w=i.m.flatten(g.data),A=g.data.length?w.reduce((function(e,t){return Object.assign(Object.assign({},e),s({},m(t),t))}),{}):null;return{hasFirstRequestCompleted:!!(null===(u=null===(n=g.responses)||void 0===n?void 0:n[0])||void 0===u?void 0:u.hasCompleted),itemsArr:w,items:A,isFetching:g.isFetching,fetchItems:function(t){if(null==t?void 0:t.length){var n=[];t.forEach((function(e){var t=m(e);v.current.has(t)||(n.push(e),v.current.add(t))})),n.length&&b((function(t){return[].concat(o(t),o(i.m.chunk(n,f).map(e.getRequest)))}))}}}}},63719:(e,t,n)=>{n.d(t,{h:()=>l});var r=n(32735),a=n(77316);function i(e,t){if(e){if("string"==typeof e)return o(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?o(e,t):void 0}}function o(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 l(e){var t,n,l=(t=r.useMemo((function(){return a.p.getBuilder()}),[]),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,o,l=[],u=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=i.call(n)).done)&&(l.push(r.value),l.length!==t);u=!0);}catch(e){c=!0,a=e}finally{try{if(!u&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw a}}return l}}(t,n)||i(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),u=l[0],c=(0,l[1])(u);return c&&e?[].concat(function(e){return function(e){if(Array.isArray(e))return o(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||i(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.")}()}(c),[Object.assign(Object.assign({},e),{active:!0})]):c}},30709:(e,t,n)=>{n.d(t,{a:()=>v});var r=n(32735),a=n(15611),i=n(83345),o=n(80247),l=n(57900),u=n(2948),c=n(91693),s=n(38143),d=n(35223);const f={banner:"B7jhq"};function p(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var m="contentUpdates.classificationBanner";function v(e){var t,n,v=e.classification,h=e.backgroundUrl,y=e.followed,b=e.follow,g=e.showFollowSpinner,w=(t=(0,u.D)(s.g.AUDIENCE_FILTER,void 0,{storage:l.Z1.SessionStorage}),n=1,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,o,l=[],u=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=i.call(n)).done)&&(l.push(r.value),l.length!==t);u=!0);}catch(e){c=!0,a=e}finally{try{if(!u&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw a}}return l}}(t,n)||function(e,t){if(e){if("string"==typeof e)return p(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?p(e,t):void 0}}(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())[0];return r.createElement("div",{className:"banner mb-2 d-flex justify-content-between align-items-center rounded ".concat(f.banner),style:{backgroundImage:"url('".concat(h,"')")}},r.createElement(a.F,{className:"text-white text-shadow",appLink:e.getClassificationAppLink(v,w)},r.createElement("h2",{className:"h3 mb-0"},v.name)),e.canFollow&&r.createElement(c.h,{className:"btn follow-btn ".concat(y?"btn-outline-dark":"btn-dark"),svgName:y?d.vn.BellFilled:d.vn.Bell,onClick:function(){return b(v.id,v.name,!y)}},g?r.createElement(o.Z,{as:"span",animation:"border",role:"status",size:"sm"}):r.createElement(i.x,{namespace:m,phrase:y?"following":"follow"})))}},98451:(e,t,n)=>{n.r(t),n.d(t,{ClassificationUpdateView:()=>B});var r=n(32735),a=n(70680),i=n(23481),o=n(20354),l=n(110),u=n(65858),c=n(54644),s=n(49935),d=n(75100),f=n(51365),p=n(16714),m=n(61699),v=n(31949),h=n(69883),y=n(63719),b=n(22902),g=n(79612),w=n(76753),A=n(10671),S=n(58321),k=n(44110),j=n(97816),O=n(10741),C=n(33192),F=n(30709),E=n(1860);const I={partialBanner:"DKukI"};function L(){return r.createElement("div",{className:"bg-white px-3"},r.createElement("div",{className:"partial-loading-background mb-2 ".concat(I.partialBanner," rounded")}),r.createElement("div",{className:"mb-1"},r.createElement(s.b2,null)),r.createElement(E.S,null))}var P=n(49985),U="contentUpdates.classificationUpdate",x=i.T.encloseNamespace(U);function T(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var N=i.T.encloseNamespace("contentUpdates.classificationUpdate");function B(e){var t,n,E,I,B,M,V,D,G,R,Y,_=e.classificationId,q=(0,a.I0)(),W=(0,h.Z)(),Z=(0,S.U)({locationContext:u.LZ.VideoThumbnail}).commonVideoProps,$=o.a.useBasicFetch(v.N.currentUser()),K=(R=r.useState(!1),Y=2,function(e){if(Array.isArray(e))return e}(R)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,o,l=[],u=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=i.call(n)).done)&&(l.push(r.value),l.length!==t);u=!0);}catch(e){c=!0,a=e}finally{try{if(!u&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw a}}return l}}(R,Y)||function(e,t){if(e){if("string"==typeof e)return T(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)?T(e,t):void 0}}(R,Y)||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.")}()),Q=K[0],z=function(e){var t=e.dispatch,n=e.alerts,r=e.setShowFollowSpinner;return{onFollow:function(e,a,l){r(!0);var c=function(){r(!1),P.k.logUserAction({id:e,name:a},{location:u.LZ.ContentUpdatesClassificationBanner,workflowPhase:u.eu.Complete,descriptor:l?u.DL.On:u.DL.Off,actionType:u.Vw.Follow,entity:u.py.Classification}),n.success(x(l?"followed":"unfollowed",{name:a,escapeText:!0}))},s=function(){r(!1),n.error(i.T.getPhrase(U,"error"))},d=l?m.o.followSubjects([e],c,s):m.o.unfollowSubjects([e],c,s);o.a.fetch(t,d)}}}({dispatch:q,alerts:W,setShowFollowSpinner:K[1],currentUser:null==$?void 0:$.data}),H=new Date,J=l.O.format(l.O.endOf(l.O.subtract(H,1,"year"),"day"),"YYYY-MM-DD"),X=l.O.format(l.O.endOf(H,"day"),"YYYY-MM-DD"),ee=(0,b.T)().hasPermissions,te=ee(p.C.FollowSubjects),ne=o.a.useBasicFetch(c.v.getClassification(_)),re=o.a.useBasicFetch($.data&&c.v.getClassificationUpdates(_,J,X)),ae=o.a.useBasicFetch(te&&m.o.mySubjectPreferences()),ie=(0,k.i)(),oe=(0,y.h)({name:null===(t=ne.data)||void 0===t?void 0:t.name});(0,g.M)(w.CG.getDefaultMetadata({title:null===(n=ne.data)||void 0===n?void 0:n.name,phraseContext:{phraseHandler:N,titlePhrase:"pageTitle",descriptionPhrase:"pageDescription"},canonicalLink:C.f.getCanonicalLink({customAppLink:null===(E=e.appLinks)||void 0===E?void 0:E.getClassificationUpdateAppLink(ne.data)}),allowIndexing:C.f.allowIndexing()}));var le=(0,A._)({location:A.i.VideoItem});(0,j.V)(null!==(B=null===(I=re.data)||void 0===I?void 0:I.videos)&&void 0!==B?B:[]);var ue=ae.hasCompleted||!te;if(!(re.data&&ne.data&&ue&&$.data))return r.createElement(L,null);var ce=null!==(V=null===(M=ae.data)||void 0===M?void 0:M.map((function(e){return e.id})))&&void 0!==V?V:[];return r.createElement(f.M.Provider,{value:le},r.createElement("div",{className:"bg-white px-3"},r.createElement(F.a,{classification:ne.data,backgroundUrl:null!==(G=null===(D=ne.data.banner)||void 0===D?void 0:D.url)&&void 0!==G?G:"",getClassificationAppLink:e.appLinks.getClassificationAppLink,followed:!!ce.find((function(e){return e.toString()===ne.data.id.toString()})),follow:z.onFollow,showFollowSpinner:Q,canFollow:te}),r.createElement(s.Oo,{breadcrumbs:oe}),r.createElement(d.E4,{videos:re.data.videos,getVideoAppLink:e.appLinks.getVideoAppLink,hasPermissions:ee,presentationAudiences:ie.data,getPreviewQuestionsAppLink:function(e){return O.j.getPreviewQuestionsAppLink(e)},commonVideoProps:Z})))}},58321:(e,t,n)=>{n.d(t,{U:()=>m});var r=n(20354),a=n(16714),i=n(39151),o=n(1666),l=n(31949),u=n(22902),c=n(37802),s=n(22490),d=n(82431),f=n(46390),p=n(27638);function m(e){var t,n,m,v=e||{},h=v.locationContext,y=v.mtv,b=v.flightNamespace,g=v.sharedPlaylist,w=(0,f.G)(),A=w.isPlugin,S=w.params,k=(0,p.u)(h,b),j=k.setFavourite,O=k.canFavourite,C=(0,c.r)(null),F=C.hasTopicDirectories,E=C.isLoadingSettings,I=(0,u.T)(),L=I.hasPermissions,P=I.isLoaded,U=L(a.C.StudentExperience),x=r.a.useBasicFetch(i.L.config()),T=r.a.useBasicFetch(l.N.currentUser()),N=r.a.useBasicFetch((null===(t=T.data)||void 0===t?void 0:t.isAuthenticated)&&o.h.yearGroups(T.data.customerId));return{hasCommonVideoPropsCompleted:!E&&P&&x.hasCompleted&&T.hasCompleted&&(!(null===(n=T.data)||void 0===n?void 0:n.isAuthenticated)||N.hasCompleted),commonVideoProps:{subTextType:"series",getSubTextAppLink:function(e){var t;return"series"in e?g&&!(null===(t=T.data)||void 0===t?void 0:t.isAuthenticated)?null:d.j.getSeriesAppLink(e.series,{mtv:y}):null},isPlugin:A,isPluginPopup:!!(null==S?void 0:S.popup),canFavourite:O,setFavourite:j,imageCdnUrl:null===(m=x.data)||void 0===m?void 0:m.imageCdnUrl,yearGroups:N.data,getClassroomGuideAppLink:s.W.getClassroomGuideAppLink,getInteractiveGuidanceAppLink:s.W.getInteractiveGuidanceAppLink,getResourceGuidanceAppLink:s.W.getResourceGuidanceAppLink,showNewVideoIndicator:F,companyLogoFallbackUrl:null,hasStudentExperience:U}}}},44110:(e,t,n)=>{n.d(t,{i:()=>o});var r=n(20354),a=n(89454),i=n(86698),o=function(){var e=(0,i.y)({redirectOnError:!0}),t=e.activePresentation,n=e.getFallbackPresentation,o=t||n();return r.a.useBasicFetch(!!o&&a.O.presentationAudiences(o.id))}},97816:(e,t,n)=>{n.d(t,{V:()=>l,l:()=>u});var r=n(1575),a=n(39902),i=n(31908);function o(e){return e?Array.isArray(e)?e.filter((function(e){return!!e&&(i.M.isVideo(e)||i.M.isClip(e))})):"data"in e?e.data.filter((function(e){return!!e&&(i.M.isVideo(e)||i.M.isClip(e))})):[]:[]}function l(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=o(e).map((function(e){return e.id}));(0,a.FN)(n,(function(e){return r.R.videoMixinAssocs(e,t.flightNamespace)}),null)}function u(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=(0,a.SW)({getRequest:function(t){return r.R.videoMixinAssocs(t,e.flightNamespace)}}).fetchItems;return{fetchObjects:function(e){return t(o(e).map((function(e){return e.id})))}}}}}]);
|
|
2
|
+
//# sourceMappingURL=8451-9ab30b6e35-lite.chunk.js.map
|