@clickview/lite 0.51.4-rc.0 → 0.51.4-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundles.json +2 -2
- package/dist/css/{4489-lite-94d395e526.chunk.css → 4489-lite-e971ca8ab6.chunk.css} +1 -1
- package/dist/css/{8192-lite-0fd63fc233.chunk.css → 8192-lite-cf3253f7b8.chunk.css} +1 -1
- package/dist/css/{lite-app-94ef086c93.css → lite-app-64ea1f3376.css} +2 -2
- package/dist/scripts/{3188-afaf7ead55-lite.chunk.js → 3188-b8dc4bd305-lite.chunk.js} +2 -2
- package/dist/scripts/3188-b8dc4bd305-lite.chunk.js.map +1 -0
- package/dist/scripts/{671-36d34edbf3-lite.chunk.js → 671-4c464fb251-lite.chunk.js} +2 -2
- package/dist/scripts/671-4c464fb251-lite.chunk.js.map +1 -0
- package/dist/scripts/{7223-8af7b524a8-lite.chunk.js → 7223-135cc7d675-lite.chunk.js} +2 -2
- package/dist/scripts/{7223-8af7b524a8-lite.chunk.js.map → 7223-135cc7d675-lite.chunk.js.map} +1 -1
- package/dist/scripts/{8192-fa3ebf2431-lite.chunk.js → 8192-f26370c5a6-lite.chunk.js} +1 -1
- package/dist/scripts/{8192-fa3ebf2431-lite.chunk.js.map → 8192-f26370c5a6-lite.chunk.js.map} +1 -1
- package/dist/scripts/bundle-5481f5bf86.min.js +3 -0
- package/dist/scripts/bundle-5481f5bf86.min.js.map +1 -0
- package/package.json +1 -1
- package/dist/scripts/3188-afaf7ead55-lite.chunk.js.map +0 -1
- package/dist/scripts/671-36d34edbf3-lite.chunk.js.map +0 -1
- package/dist/scripts/bundle-e900189908.min.js +0 -3
- package/dist/scripts/bundle-e900189908.min.js.map +0 -1
- /package/dist/scripts/{bundle-e900189908.min.js.LICENSE.txt → bundle-5481f5bf86.min.js.LICENSE.txt} +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[3188],{73188:(e,t,n)=>{n.r(t),n.d(t,{PluginLandingView:()=>w});var r=n(32735),
|
|
2
|
-
//# sourceMappingURL=3188-
|
|
1
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[3188],{73188:(e,t,n)=>{n.r(t),n.d(t,{PluginLandingView:()=>w});var r=n(32735),l=n(81886),a=n(23481),c=n(20354),s=n(1048),i=n(2102),o=n(2786),u=n(83345),m=n(39151),d=n(99742),p=n(51855),f=n(93300),y=n(6736),b=n(99375);const g={stepImage:"LJUvH",number:"gIKGd",logo:"Jr33K",list:"RNSvU",instruction:"dxSMz",stepItem:"zC4Lo"};function h(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var v="embed.pluginLanding",E=a.T.encloseNamespace(v);function S(e){return r.createElement("li",{className:"col-12 col-sm-4 ".concat(g.stepItem)},r.createElement("div",{className:"".concat(g.stepImage," border rounded d-none d-sm-block"),style:{backgroundImage:"url('".concat(e.imageUrl,"')")}}),r.createElement("div",{className:"my-1 my-sm-3 ps-4 ps-sm-0 d-flex align-items-center justify-content-start text-start ".concat(g.instruction)},r.createElement("span",null,r.createElement("span",{className:g.number},e.number)),r.createElement("span",null,e.text)))}function w(e){var t,n,a=(t=r.useState(!1),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,l,a,c,s=[],i=!0,o=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;i=!1}else for(;!(i=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);i=!0);}catch(e){o=!0,l=e}finally{try{if(!i&&null!=n.return&&(c=n.return(),Object(c)!==c))return}finally{if(o)throw l}}return s}}(t,n)||function(e,t){if(e){if("string"==typeof e)return h(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?h(e,t):void 0}}(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.")}()),w=a[0],x=a[1],U=c.a.useBasicFetch(m.L.config()),k=c.a.useBasicFetch(b.d.consumer(e.queryParams.consumerKey));r.useEffect((function(){k.hasError&&l.Q.Ry.throw(new f.Z)}),[k.hasError]);var N=(0,p.G)().handlePopupEmbed;function P(t){if(t&&!s.t.isEmpty(t)){var n=e.queryParams,r=n.consumerKey,l=n.lmsType,a=n.ltiReturnUrl,c=n.submitUrl;"true"!==n.singleSelectMode&&x(!0),N(t,{consumerKey:r,lmsType:l,ltiReturnUrl:a,submitUrl:c})}}return U.hasCompleted?r.createElement("div",{className:"d-flex justify-content-center align-items-center vh-100 overflow-hidden border"},r.createElement("div",{className:"text-center"},r.createElement("div",{className:"".concat(g.logo," mb-4 d-inline-block")},r.createElement(o.$S,null)),r.createElement("ol",{className:"row list-unstyled px-3 ".concat(g.list)},r.createElement(S,{number:1,text:E("step1"),imageUrl:d.W.Plugin.SelectVideo1}),r.createElement(S,{number:2,text:E("step2"),imageUrl:d.W.Plugin.SelectVideo2}),r.createElement(S,{number:3,text:E("step3"),imageUrl:d.W.Plugin.SelectVideo3})),r.createElement(i.m,{variant:"dark",className:"btn-lg px-5",onClick:function(){y.b.renderSelectVideoPopup({launchUrl:U.data.launchUrl,queryParams:e.queryParams,onComplete:P})},showSpinner:w},r.createElement(u.x,{namespace:v,phrase:"selectAVideo"})))):r.createElement(r.Fragment,null)}}}]);
|
|
2
|
+
//# sourceMappingURL=3188-b8dc4bd305-lite.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/3188-b8dc4bd305-lite.chunk.js","mappings":"qTACA,SAAgB,UAAY,QAAQ,OAAS,QAAQ,KAAO,QAAQ,KAAO,QAAQ,YAAc,QAAQ,SAAW,S,sGCsBpH,IAAMA,EAAY,sBACZC,EAAYC,EAAA,mBAAiCF,GAQnD,SAASG,EAASC,GAChB,OACE,sBAAIC,UAAS,0BAAqB,aAChC,uBACEA,UAAS,UAAK,YAAgB,qCAC9BC,MAAO,CAAEC,gBAAiB,QAAF,OAAUH,EAAMI,SAAQ,SAElD,uBAAKH,UAAS,+FAA0F,gBACtG,4BACE,wBAAMA,UAAW,UAAgBD,EAAMK,SAEzC,4BACGL,EAAMM,OAKjB,CAMM,SAAUC,EAAkBP,GAChC,I,IAAqD,G,EAArB,YAAe,G,EAAM,E,o4BAA7CQ,EAAO,KAAEC,EAAU,KAErBC,EAAS,kBAA6BC,EAAA,YAEtCC,EAAiB,kBAAqBC,EAAA,WAAwBb,EAAMc,YAAYC,cAEtF,aAAgB,WACTH,EAAeI,UAGpB,aAAuB,IAAIC,EAAA,EAC7B,GAAG,CAACL,EAAeI,WAEnB,IAAQE,GAAqB,EAAAC,EAAA,KAArBD,iBAER,SAASE,EAAWC,GAClB,GAAKA,IAAQC,EAAA,UAAqBD,GAAlC,CAMA,MAMIrB,EAAMc,YALRC,EAAW,EAAXA,YACAQ,EAAO,EAAPA,QACAC,EAAY,EAAZA,aACAC,EAAS,EAATA,UAIuB,SAHP,EAAhBC,kBAIAjB,GAAW,GAEbS,EAAiBG,EAAM,CACrBN,YAAAA,EACAQ,QAAAA,EACAC,aAAAA,EACAC,UAAAA,GApBM,CAsBV,CAUA,OAAKf,EAAOiB,aAIV,uBAAK1B,UAAU,kFACb,uBAAKA,UAAU,eACb,uBAAKA,UAAS,UAAK,OAAW,yBAC5B,gBAAC2B,EAAA,GAAa,OAEhB,sBAAI3B,UAAS,iCAA4B,SACvC,gBAACF,EAAQ,CAACM,OAAQ,EAAGC,KAAMT,EAAU,SAAUO,SAAUyB,EAAA,wBACzD,gBAAC9B,EAAQ,CAACM,OAAQ,EAAGC,KAAMT,EAAU,SAAUO,SAAUyB,EAAA,wBACzD,gBAAC9B,EAAQ,CAACM,OAAQ,EAAGC,KAAMT,EAAU,SAAUO,SAAUyB,EAAA,yBAE3D,gBAACC,EAAA,EAAa,CAACC,QAAQ,OAAO9B,UAAU,cAAc+B,QAtB5D,WACEC,EAAA,yBAAuC,CACrCC,UAAWxB,EAAOW,KAAKa,UACvBpB,YAAad,EAAMc,YACnBM,WAAAA,GAEJ,EAgB8Ee,YAAa3B,GACnF,gBAAC4B,EAAA,EAAI,CAACxC,UAAWA,EAAWyC,OAAO,oBAdlC,gCAmBX,C","sources":["file:///app/packages/projects/lite/src/apps/embed/views/plugin-landing/plugin-landing.scss","file:///app/packages/projects/lite/src/apps/embed/views/plugin-landing/PluginLandingView.tsx"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport default {\"stepImage\":\"LJUvH\",\"number\":\"gIKGd\",\"logo\":\"Jr33K\",\"list\":\"RNSvU\",\"instruction\":\"dxSMz\",\"stepItem\":\"zC4Lo\"};","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/react/index';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { SpinnerButton } from 'libs/shared/components/spinner-button/SpinnerButton';\nimport { ClickViewLogo } from 'libs/shared/components/svgs/clickview-logo/ClickViewLogo';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { Config } from 'libs/shared/interfaces';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { usePluginHelper } from 'shared/hooks/use-plugin-helper/usePluginHelper';\n\nimport { InvalidPluginConsumerError } from 'apps/embed/errors/invalid-plugin-consumer/InvalidPluginConsumerError';\nimport { EmbedAuthHelper } from 'apps/embed/utils/EmbedAuthHelper';\nimport { PluginRequests } from 'apps/embed/utils/PluginRequests';\n\nimport styles from './plugin-landing.scss';\n\nconst namespace = 'embed.pluginLanding';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface StepItemProps {\n imageUrl: string;\n number: number;\n text: string;\n}\n\nfunction StepItem(props: StepItemProps): JSX.Element {\n return (\n <li className={`col-12 col-sm-4 ${styles.stepItem}`}>\n <div\n className={`${styles.stepImage} border rounded d-none d-sm-block`}\n style={{ backgroundImage: `url('${props.imageUrl}')` }}\n />\n <div className={`my-1 my-sm-3 ps-4 ps-sm-0 d-flex align-items-center justify-content-start text-start ${styles.instruction}`}>\n <span>\n <span className={styles.number}>{props.number}</span>\n </span>\n <span>\n {props.text}\n </span>\n </div>\n </li>\n );\n}\n\ninterface PluginLandingProps {\n queryParams: HashObject;\n}\n\nexport function PluginLandingView(props: PluginLandingProps): React.ReactElement {\n const [ spinner, setSpinner ] = React.useState(false);\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n const pluginConsumer = Flight.useBasicFetch(PluginRequests.consumer(props.queryParams.consumerKey));\n \n React.useEffect(() => {\n if (!pluginConsumer.hasError)\n return;\n\n Core.ErrorHelper.throw(new InvalidPluginConsumerError());\n }, [pluginConsumer.hasError]);\n\n const { handlePopupEmbed } = usePluginHelper();\n\n function onComplete(data: HashObject) {\n if (!data || ObjectHelper.isEmpty(data))\n return;\n\n /**\n * De-reference and then pass in just to be explicit (for future mainenance) - Sha\n */\n const {\n consumerKey,\n lmsType,\n ltiReturnUrl,\n submitUrl,\n singleSelectMode\n } = props.queryParams;\n\n if (singleSelectMode !== 'true')\n setSpinner(true);\n\n handlePopupEmbed(data, {\n consumerKey,\n lmsType,\n ltiReturnUrl,\n submitUrl\n });\n }\n\n function onClick(): void {\n EmbedAuthHelper.renderSelectVideoPopup({\n launchUrl: config.data.launchUrl,\n queryParams: props.queryParams,\n onComplete\n });\n }\n\n if (!config.hasCompleted)\n return <></>;\n\n return (\n <div className='d-flex justify-content-center align-items-center vh-100 overflow-hidden border'>\n <div className='text-center'>\n <div className={`${styles.logo} mb-4 d-inline-block`}>\n <ClickViewLogo />\n </div>\n <ol className={`row list-unstyled px-3 ${styles.list}`}>\n <StepItem number={1} text={getPhrase('step1')} imageUrl={ImageUrls.Plugin.SelectVideo1} />\n <StepItem number={2} text={getPhrase('step2')} imageUrl={ImageUrls.Plugin.SelectVideo2} />\n <StepItem number={3} text={getPhrase('step3')} imageUrl={ImageUrls.Plugin.SelectVideo3} />\n </ol>\n <SpinnerButton variant='dark' className='btn-lg px-5' onClick={onClick} showSpinner={spinner}>\n <Text namespace={namespace} phrase='selectAVideo' />\n </SpinnerButton>\n </div>\n </div>\n );\n}"],"names":["namespace","getPhrase","LanguageService","StepItem","props","className","style","backgroundImage","imageUrl","number","text","PluginLandingView","spinner","setSpinner","config","ConfigRequests","pluginConsumer","PluginRequests","queryParams","consumerKey","hasError","InvalidPluginConsumerError","handlePopupEmbed","usePluginHelper","onComplete","data","ObjectHelper","lmsType","ltiReturnUrl","submitUrl","singleSelectMode","hasCompleted","ClickViewLogo","ImageUrls","SpinnerButton","variant","onClick","EmbedAuthHelper","launchUrl","showSpinner","Text","phrase"],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[671],{56520:(e,i,t)=>{t.d(i,{R0:()=>v,_N:()=>u,eR:()=>p});var a=t(23481),n=t(97395),o=t(20354),r=t(42617),s=t(4594),d=t(39151),c=t(31949),l=a.T.encloseNamespace("shared.hooks");function u(e,i,t,a){var o=n._.safeUrlConcat(e,"manage"),r=n._.safeUrlConcat(e,"exchange"),d=function(e,i,t){return n._.safeUrlConcat(e,"".concat(i,"/").concat(t))};switch(i){case s.E.Subject:return n._.safeUrlConcat(o,"subjects/presentations/".concat(a,"/classifications/").concat(t,"/edit"));case s.E.Video:return d(o,"videos",t);case s.E.Playlist:return d(o,"playlists",t);case s.E.Series:return d(o,"series",t);case s.E.Company:return d(o,"companies",t);case s.E.Interactive:return d(o,"interactives",t);case s.E.Clip:return d(o,"clips",t);case s.E.Category:return d(r,"categories",t)}}function p(){return l("openInCurationStudio")}function v(){var e,i,t=o.a.useBasicFetch(c.N.currentUser()),a=o.a.useBasicFetch((null===(e=t.data)||void 0===e?void 0:e.id)&&c.N.groups(null===(i=t.data)||void 0===i?void 0:i.id)).data,n=o.a.useBasicFetch(d.L.config()),s=[r.j.Curator,r.j.Content,r.j.Developer];return{openInCurationStudioLabel:p(),isUserCurator:s.some((function(e){return null==a?void 0:a.data.find((function(i){return i.name===e}))})),getOpenInCurationStudioLink:function(e,i,t){var a;return u(null===(a=n.data)||void 0===a?void 0:a.curatorUrl,e,i,t)}}}},70227:(e,i,t)=>{t.d(i,{c:()=>o});var a=t(97395),n=t(4594),o={getObjectUrl:function(e,i){var t=e.analyticsWebUrl;if(t){var o="";switch(i.typeId){case n.E.Video:o="/videos/".concat(i.id,"/overview");break;case n.E.Clip:o="/clips/".concat(i.id,"/overview");break;case n.E.Interactive:o="/interactives/".concat(i.id,"/overview")}if(o)return a._.safeUrlConcat(t,o)}}}},10671:(e,i,t)=>{t.d(i,{i:()=>A,_:()=>F});var a,n=t(20354),o=t(65858),r=t(16714);!function(e){e[e.AddToPlaylist=0]="AddToPlaylist",e[e.Share=1]="Share",e[e.EditVideo=2]="EditVideo",e[e.EditDetails=3]="EditDetails",e[e.Download=4]="Download",e[e.Delete=5]="Delete",e[e.ViewCurriculumLinks=6]="ViewCurriculumLinks",e[e.CreateClip=7]="CreateClip",e[e.CreateInteractive=8]="CreateInteractive",e[e.ViewUsage=9]="ViewUsage",e[e.AddToLibrary=10]="AddToLibrary",e[e.Approve=11]="Approve",e[e.ManageAccess=12]="ManageAccess",e[e.OpenInCurationStudio=13]="OpenInCurationStudio",e[e.OpenInLibraryEditor=14]="OpenInLibraryEditor",e[e.AddToMyVideos=15]="AddToMyVideos",e[e.ViewOriginalVideo=16]="ViewOriginalVideo",e[e.EditClip=17]="EditClip",e[e.EditInteractive=18]="EditInteractive",e[e.PreviewQuestions=19]="PreviewQuestions",e[e.ViewResults=20]="ViewResults",e[e.CopyInteractive=21]="CopyInteractive",e[e.PrintInteractive=22]="PrintInteractive",e[e.UnpublishInteractive=23]="UnpublishInteractive"}(a||(a={}));var s,d=t(39151),c=t(98064),l=t(31949),u=t(79967),p=t(56520),v=t(22902),y=t(15311),g=t(31908);!function(e){e[e.PlayPage=0]="PlayPage"}(s||(s={}));var I,f=t(26361),b=t(51855),m=t(23481),C=t(97395),E=t(28400),w=t(5960),V=t(4594),P=t(12754),T=t(70227),h=t(35223),O=t(14070),L=t(97291);function k(e){return k="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},k(e)}function S(e,i,t){return(i=function(e){var i=function(e,i){if("object"!=k(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var a=t.call(e,"string");if("object"!=k(a))return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==k(i)?i:i+""}(i))in e?Object.defineProperty(e,i,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[i]=t,e}var A,D=m.T.encloseNamespace("shared.utils"),N=(S(S(S(S(S(S(S(S(S(S(I={},a.Approve,(function(e){return{enabled:e.hasPermissions(r.C.ManageVideoAccess),svgName:h.vn.Check,order:10,name:D("approve"),button:!0,showButtonText:!0,appLink:{application:L.O.DEFAULT,action:O.e.Default.APPROVE_VIDEO,params:{objectId:e.video.id,objectTypeId:e.video.typeId}},analyticsOptions:{actionType:o.Vw.Click,descriptor:o.XX.Approve}}})),a.ManageAccess,(function(e){var i=f.l.hasCustomRestriction(e.video);return{enabled:e.hasPermissions(r.C.ManageVideoAccess),svgName:h.vn.Lock,order:90,name:D("manageAccess"),button:i,showButtonText:i,appLink:{application:L.O.DEFAULT,action:O.e.Default.MANAGE_ACCCESS,params:{objectId:e.video.id,objectTypeId:e.video.typeId}},analyticsOptions:{actionType:o.Vw.Click,descriptor:o.XX.ManageAccess},group:"manage"}})),a.ViewResults,(function(e){var i=!0,t=5;if(e.location===A.PlayPage){var a=e.breakpoints.xs||e.breakpoints.sm;i=!a,t=a?10:t}return{enabled:e.hasPermissions(r.C.ViewAnalyticsProduct)&&e.video.status!==w.X.Draft,types:[V.E.Interactive],order:t,svgName:h.vn.Chart,name:D("viewResults"),button:i,showButtonText:e.location===A.PlayPage&&i,href:T.c.getObjectUrl(e.config,e.video),openInNewTab:!0,analyticsOptions:{actionType:o.Vw.Click,descriptor:o.XX.ViewResults},group:"none"}})),a.AddToPlaylist,(function(e){var i=!g.M.isInteractive(e.video)||e.video.status!==w.X.Draft,t=10;if(i&&e.location===A.PlayPage){var a=e.breakpoints.xs||e.breakpoints.sm,n=e.breakpoints.md;g.M.isInteractive(e.video)?(i=!n&&!a,t=n||a?30:t):(i=!a,t=a?55:t)}var r=e.location===A.PlayPage&&i&&!g.M.isInteractive(e.video);return{enabled:!0,order:t,svgName:h.vn.AddToPlaylists,name:D("addToPlaylist"),button:i,showBorder:e.location===A.PlayPage&&i&&g.M.isInteractive(e.video),showButtonText:r,appLink:{application:L.O.PLAYLISTS,action:O.e.Playlists.ADD_TO_PLAYLIST,args:[e.video.id]},analyticsOptions:{actionType:o.Vw.Associate,descriptor:o.iF.Playlist,workflowPhase:o.eu.Start},group:"add"}})),a.Share,(function(e){var i=!0,t=20;if(e.location===A.PlayPage){var a=e.breakpoints.xs||e.breakpoints.sm,n=e.breakpoints.md;g.M.isInteractive(e.video)?(i=!n&&!a,t=n||a?5:t):(i=!a,t=a?5:t)}var r=e.location===A.PlayPage&&i&&!g.M.isInteractive(e.video);return{enabled:!g.M.isInteractive(e.video)||e.video.status!==w.X.Draft,order:t,svgName:h.vn.Share2,name:D("share"),button:i,showBorder:e.location===A.PlayPage&&i&&g.M.isInteractive(e.video),showButtonText:r,appLink:{application:L.O.DEFAULT,action:O.e.Default.SHARE,args:[e.video.id],params:{entityType:e.video.type}},analyticsOptions:{actionType:o.Vw.Share,workflowPhase:o.eu.Start,eventVersion:o.eq.V3},group:"none"}})),a.CreateClip,(function(e){return{enabled:!e.isPlugin,types:[V.E.Video],order:30,svgName:h.vn.Clip,name:D("createClip"),button:!1,appLink:{application:L.O.CLIPS,action:O.e.Clips.CREATE_CLIP,args:[e.video.id]},analyticsOptions:{actionType:o.Vw.Create,entity:o.py.Clip,workflowPhase:o.eu.Start},analyticsData:{video:e.analyticsData},group:"create"}})),a.CreateInteractive,(function(e){var i=!1,t=40;if(e.location===A.PlayPage){var a=e.breakpoints.xs||e.breakpoints.sm||e.breakpoints.md;i=!a,t=a?t:-10}return{enabled:!e.isPlugin,types:[V.E.Video,V.E.Clip],order:t,svgName:h.vn.CreateInteractive,name:D("createInteractive"),button:i,showButtonText:e.location===A.PlayPage&&i,appLink:{application:L.O.INTERACTIVES,action:g.M.isVideo(e.video)?O.e.Interactives.NEW_INTERACTIVE:O.e.Interactives.NEW_CLIP_INTERACTIVE,args:[e.video.id]},analyticsOptions:{actionType:o.Vw.Create,entity:o.py.Interactive,workflowPhase:o.eu.Start},analyticsData:{video:e.analyticsData},group:"create"}})),a.AddToMyVideos,(function(e){var i,t;return{enabled:g.M.isVideo(e.video)&&!!(null===(t=null===(i=e.video.libraries)||void 0===i?void 0:i.data)||void 0===t?void 0:t.find((function(e){return"exchange"===e.type}))),types:[V.E.Video],order:50,svgName:h.vn.AddVideo,name:D("addMyVideos"),button:!1,appLink:{application:L.O.DEFAULT,action:O.e.Default.ADD_VIDEO,args:[e.video.id]},analyticsOptions:{actionType:o.Vw.WorkspaceAdd,workflowPhase:o.eu.Start},group:"add"}})),a.AddToLibrary,(function(e){var i,t;return{enabled:!e.hasPermissions(r.C.StudentExperience)&&(null===(i=e.video._canAddToLibrary)||void 0===i?void 0:i.value)&&(null===(t=e.requestLibraries)||void 0===t?void 0:t.length)&&(!g.M.isInteractive(e.video)||e.video.status!==w.X.Draft),order:60,svgName:h.vn.Library,name:D("addToLibrary"),button:!1,appLink:{application:L.O.LIBRARIES,action:O.e.Libraries.ADD_TO_LIBRARY,args:[e.video.id,e.video.typeId]},analyticsOptions:{actionType:o.Vw.Create,entity:o.py.LibraryRequest,workflowPhase:o.eu.Start},analyticsData:{video:e.analyticsData},group:"add"}})),a.EditVideo,(function(e){var i;return{enabled:null===(i=e.video._canUpdate)||void 0===i?void 0:i.value,types:[V.E.Video],order:70,svgName:h.vn.EditVideo,name:D("editVideo"),button:!1,href:C._.urlBuilder(C._.safeUrlConcat(e.config.cloudEditorUrl,"video/".concat(e.video.id)),{product:P.x.Primary}),openInNewTab:!0,analyticsOptions:{actionType:o.Vw.Click,entity:o.py.Video,descriptor:o.XX.EditVideo},group:"edit"}})),S(S(S(S(S(S(S(S(S(S(I,a.EditClip,(function(e){var i;return{enabled:null===(i=e.video._canUpdate)||void 0===i?void 0:i.value,types:[V.E.Clip],order:70,svgName:h.vn.EditVideo,name:D("editClip"),button:!1,appLink:{application:L.O.CLIPS,action:O.e.Clips.EDIT_CLIP,args:[e.video.id]},analyticsOptions:{actionType:o.Vw.Edit,workflowPhase:o.eu.Start},group:"edit"}})),a.EditDetails,(function(e){var i;return{enabled:null===(i=e.video._canUpdate)||void 0===i?void 0:i.value,types:[V.E.Video,V.E.Clip],order:80,svgName:h.vn.Edit,name:D("editDetails"),button:!1,appLink:g.M.isVideo(e.video)?{application:L.O.VIDEOS,action:O.e.Videos.EDIT_VIDEO,args:[e.video.id]}:{application:L.O.CLIPS,action:O.e.Clips.EDIT_CLIP_DETAILS,args:[e.video.id]},analyticsOptions:{actionType:o.Vw.Edit,workflowPhase:o.eu.Start},group:"edit"}})),a.ViewOriginalVideo,(function(e){var i,t,a=null;return g.M.isInteractive(e.video)&&(null===(i=e.video._parentClip)||void 0===i?void 0:i.id)&&(a={application:L.O.CLIPS,action:O.e.Clips.PLAY_CLIP,args:[e.video._parentClip.id,E.m.slugify(e.video._parentClip.name)]}),!g.M.isVideo(e.video)&&(null===(t=e.video._parentVideo)||void 0===t?void 0:t.id)&&(a={application:L.O.VIDEOS,action:O.e.Videos.PLAY_VIDEO,args:[e.video._parentVideo.id,E.m.slugify(e.video._parentVideo.name)]}),{enabled:!g.M.isVideo(e.video)&&g.M.canViewOriginalVideo(e.video)&&!!a,types:[V.E.Clip,V.E.Interactive],order:100,svgName:h.vn.Video,name:D("viewOriginalVideo"),button:!1,appLink:a,analyticsOptions:{actionType:o.Vw.Click,descriptor:o.XX.ViewOriginalVideo},group:"manage"}})),a.ViewUsage,(function(e){var i;return{enabled:e.hasPermissions(r.C.ViewAnalyticsProduct)&&(e.hasPermissions(r.C.ViewCustomerAnalytics)||(null===(i=e.video._canUpdate)||void 0===i?void 0:i.value)),types:[V.E.Clip,V.E.Video],order:110,svgName:h.vn.Chart,name:D("viewUsage"),button:!1,href:T.c.getObjectUrl(e.config,e.video),openInNewTab:!0,analyticsOptions:{actionType:o.Vw.Click,workflowPhase:o.eu.Complete,descriptor:o.XX.ViewUsage},group:"manage"}})),a.ViewCurriculumLinks,(function(e){return{enabled:!e.hasPermissions(r.C.StudentExperience)&&g.M.isVideo(e.video)&&e.video._hasCurriculumLinks,types:[V.E.Video],order:120,svgName:h.vn.Tag,name:D("viewCurriculumLinks"),button:!1,appLink:{application:L.O.VIDEOS,action:O.e.Videos.VIEW_CURRICULUM_LINKS,args:[e.video.id]},analyticsOptions:{actionType:o.Vw.Click,workflowPhase:o.eu.Complete,descriptor:o.XX.ViewCurriculumLinks},group:"manage"}})),a.Download,(function(e){var i;return{enabled:g.M.isVideo(e.video)&&(null===(i=e.video._canDownload)||void 0===i?void 0:i.value),types:[V.E.Video],order:130,svgName:h.vn.Download,name:D("download"),button:!1,appLink:{application:L.O.VIDEOS,action:O.e.Videos.DOWNLOAD_VIDEO,args:[e.video.id]},analyticsOptions:{actionType:o.Vw.Download,workflowPhase:o.eu.Start},group:"manage"}})),a.OpenInCurationStudio,(function(e){return{enabled:e.isUserCurator,order:140,svgName:h.vn.NewWindow,name:D("openInCurationStudio"),button:!1,href:(0,p._N)(e.config.curatorUrl,e.video.typeId,e.video.id),openInNewTab:!0,group:"administrative"}})),a.OpenInLibraryEditor,(function(e){var i,t,a,n,o=new Set(null===(i=e.requestLibraries)||void 0===i?void 0:i.filter((function(i){var t,a,n,o;return(null===(a=null===(t=i.owner)||void 0===t?void 0:t.id)||void 0===a?void 0:a.toString())===(null===(o=null===(n=e.currentUser)||void 0===n?void 0:n.customerId)||void 0===o?void 0:o.toString())})).map((function(e){var i;return null===(i=e.id)||void 0===i?void 0:i.toString()})));return{enabled:e.hasProduct(P.x.LibraryEditor)&&!!(null===(a=null===(t=e.video.libraries)||void 0===t?void 0:t.data)||void 0===a?void 0:a.find((function(e){var i;return o.has(null===(i=e.id)||void 0===i?void 0:i.toString())}))),order:145,svgName:h.vn.NewWindow,name:D("openInLibraryEditor"),button:!1,href:(n="videos",g.M.isClip(e.video)?n="clips":g.M.isInteractive(e.video)&&(n="interactives"),C._.safeUrlConcat(e.config.libraryEditorUrl,"/manage/libraries/".concat(n,"/").concat(e.video.id))),openInNewTab:!0,group:"administrative"}})),a.Delete,(function(e){var i,t={application:L.O.VIDEOS,action:O.e.Videos.DELETE_VIDEO,params:{ids:[e.video.id]}};return g.M.isClip(e.video)?t={application:L.O.CLIPS,action:O.e.Clips.DELETE_CLIP,args:[e.video.id]}:g.M.isInteractive(e.video)&&(t={application:L.O.INTERACTIVES,action:O.e.Interactives.DELETE_INTERACTIVE,args:[e.video.id]}),{enabled:null===(i=e.video._canUpdate)||void 0===i?void 0:i.value,order:150,svgName:h.vn.Delete,name:D("delete"),variant:"danger",button:!1,appLink:t,analyticsOptions:{actionType:o.Vw.Edit,workflowPhase:o.eu.Start},group:"delete"}})),a.PreviewQuestions,(function(e){return{enabled:e.location===A.VideoItem,types:[V.E.Interactive],order:83,svgName:h.vn.Search,name:D("previewInteractive"),button:!1,appLink:{application:L.O.INTERACTIVES,action:O.e.Interactives.PREVIEW_QUESTIONS,args:[e.video.id]},analyticsOptions:{actionType:o.Vw.Click,descriptor:o.XX.PreviewInteractiveVideo},group:"manage-interactives"}})),S(S(S(S(I,a.PrintInteractive,(function(e){var i,t=0;if(g.M.isInteractive(e.video)&&(i=!0),i&&e.location===A.PlayPage){var a=e.breakpoints.xs||e.breakpoints.sm;i=!a,t=a?80:t}return{enabled:!0,types:[V.E.Interactive],order:t,svgName:h.vn.Print,name:D("printAsWorksheet"),button:i,showButtonText:e.location===A.PlayPage,appLink:{application:L.O.INTERACTIVES,action:O.e.Interactives.PRINT_QUESTIONS,args:[e.video.id]},analyticsOptions:{actionType:o.Vw.Print,workflowPhase:o.eu.Start},group:"manage-interactives"}})),a.CopyInteractive,(function(e){return{enabled:!e.hasPermissions(r.C.StudentExperience),types:[V.E.Interactive],order:87,svgName:h.vn.Copy,name:D("copyInteractive"),button:!1,appLink:{application:L.O.INTERACTIVES,action:O.e.Interactives.COPY_INTERACTIVE,args:[e.video.id]},analyticsOptions:{actionType:o.Vw.Copy,workflowPhase:o.eu.Start},group:"manage-interactives"}})),a.EditInteractive,(function(e){var i=e.video.status===w.X.Draft,t=70;return e.location===A.PlayPage&&e.breakpoints.xs&&(i=!1,t=-10),{enabled:!e.isPlugin&&e.video.status===w.X.Draft,types:[V.E.Interactive],order:t,svgName:h.vn.EditVideo,name:D("editInteractive"),tooltip:e.location!==A.PlayPage?D("editInteractiveTooltip"):"",button:i,showButtonText:e.location===A.PlayPage&&i,appLink:{application:L.O.INTERACTIVES,action:O.e.Interactives.EDIT_INTERACTIVE,args:[e.video.id]},analyticsOptions:{actionType:o.Vw.Edit,workflowPhase:o.eu.Start},group:"edit"}})),a.UnpublishInteractive,(function(e){var i;return{enabled:(null===(i=e.video._canUpdate)||void 0===i?void 0:i.value)&&e.video.status!==w.X.Draft,types:[V.E.Interactive],order:70,svgName:h.vn.EditVideo,name:D("editInteractive"),button:!1,appLink:{application:L.O.INTERACTIVES,action:O.e.Interactives.UNPUBLISH_INTERACTIVE,args:[e.video.id]},analyticsOptions:{actionType:o.Vw.Publish,descriptor:o.Iq.Unpublish,workflowPhase:o.eu.Start},group:"edit"}})));function _(e,i){(null==i||i>e.length)&&(i=e.length);for(var t=0,a=Array(i);t<i;t++)a[t]=e[t];return a}!function(e){e[e.PlayPage=0]="PlayPage",e[e.VideoItem=1]="VideoItem"}(A||(A={}));var U=[a.Approve,a.ManageAccess],M=[a.ViewResults],R=[a.AddToPlaylist,a.Share,a.EditInteractive,a.ViewResults,a.PrintInteractive],B=[a.ManageAccess,a.AddToLibrary,a.ViewCurriculumLinks,a.ViewUsage,a.CreateClip,a.CreateInteractive,a.EditVideo,a.EditClip,a.EditDetails,a.Delete,a.Download,a.OpenInCurationStudio,a.OpenInLibraryEditor,a.ViewOriginalVideo,a.CopyInteractive,a.UnpublishInteractive,a.PreviewQuestions],x={lazyPlaceholder:!0};function X(e){switch(e){case A.PlayPage:return o.LZ.PlayPage;case A.VideoItem:return o.LZ.VideoListItem}}function j(e,i){return e.map((function(e){var t,a,n,o=N[e](i);if(o.types&&!o.types.some((function(e){return e===i.video.typeId})))return null;if(!o.enabled)return null;var r=o.variant||"outline-dark",s="";o.showButtonText?s="btn btn-".concat(r," me-2"):o.variant&&(s="text-".concat(r));var d=!o.button||o.showButtonText;return{order:o.order,label:d?o.name:null,appLink:o.appLink,href:o.href,onClick:o.onClick,svgName:o.svgName,className:s,button:o.button,showBorder:o.showBorder,tooltip:null!==(t=o.tooltip)&&void 0!==t?t:d?null:o.name,analyticsData:o.analyticsData||i.analyticsData,analyticsOptions:o.analyticsOptions?Object.assign(Object.assign({},null!==(a=i.analyticsOptions)&&void 0!==a?a:{}),null!==(n=o.analyticsOptions)&&void 0!==n?n:{}):null,openInNewTab:o.openInNewTab,group:o.group}})).filter((function(e){return!!e}))}function F(e){var i=(0,u.k)(),t=(0,v.T)(),a=t.hasPermissions,o=t.hasLocalPermissions,I=(0,b.G)().isPlugin,m=(0,p.R0)().isUserCurator,C=(0,y.r)().hasProduct,E=n.a.useBasicFetch(l.N.currentUser()),w=n.a.useBasicFetch(d.L.config()),V=n.a.useBasicFetch(a(r.C.ViewLibraries)&&c.D.libraryRequestLibraries()),P=function(e){var i=n.a.useGetResponseFunc(),t=n.a.useGetFetch();function a(i){return e.type!==s.PlayPage?null:g.M.getVideoRequest(i.id,i.typeId,e.shareId)}return{hydrate:function(e){var n=a(e);i(n.key).shouldFetch&&t(n)},isHydrated:function(e){var t=a(e);return i(t.key).hasCompleted}}}({type:s.PlayPage,shareId:e.shareId}),T=P.hydrate,h=P.isHydrated;return{getVideoActions:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!o(r.E.UseVideoActions))return[];if(!g.M.getCanBeConsumed(t).canConsume)return[];var s,d={video:t,breakpoints:i,location:e.location,hasPermissions:a,hasProduct:C,requestLibraries:V.data,config:w.data,currentUser:E.data,isPlugin:I,isUserCurator:m,analyticsData:g.M.getAnalyticsData(t,n.analyticsData),analyticsOptions:Object.assign(Object.assign({},n.analyticsOptions),{entity:g.M.getAnalyticsEntity(t),location:X(e.location)})};return g.M.isVideoTypeArchived(t)?j(M,d):f.l.hasCustomRestriction(t)?j(U,d):h(t)?j([].concat(R,B),d):[].concat(function(e){if(Array.isArray(e))return _(e)}(s=j(R,d))||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(s)||function(e,i){if(e){if("string"==typeof e)return _(e,i);var t={}.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_(e,i):void 0}}(s)||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.")}(),[x])},fetchMoreActions:function(e){return T(e)}}}}}]);
|
|
2
|
-
//# sourceMappingURL=671-
|
|
1
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[671],{56520:(e,i,t)=>{t.d(i,{R0:()=>v,_N:()=>u,eR:()=>p});var a=t(23481),n=t(97395),o=t(20354),r=t(42617),s=t(4594),d=t(39151),c=t(31949),l=a.T.encloseNamespace("shared.hooks");function u(e,i,t,a){var o=n._.safeUrlConcat(e,"manage"),r=n._.safeUrlConcat(e,"exchange"),d=function(e,i,t){return n._.safeUrlConcat(e,"".concat(i,"/").concat(t))};switch(i){case s.E.Subject:return n._.safeUrlConcat(o,"subjects/presentations/".concat(a,"/classifications/").concat(t,"/edit"));case s.E.Video:return d(o,"videos",t);case s.E.Playlist:return d(o,"playlists",t);case s.E.Series:return d(o,"series",t);case s.E.Company:return d(o,"companies",t);case s.E.Interactive:return d(o,"interactives",t);case s.E.Clip:return d(o,"clips",t);case s.E.Category:return d(r,"categories",t)}}function p(){return l("openInCurationStudio")}function v(){var e,i,t=o.a.useBasicFetch(c.N.currentUser()),a=o.a.useBasicFetch((null===(e=t.data)||void 0===e?void 0:e.id)&&c.N.groups(null===(i=t.data)||void 0===i?void 0:i.id)).data,n=o.a.useBasicFetch(d.L.config()),s=[r.j.Curator,r.j.Content,r.j.Developer];return{openInCurationStudioLabel:p(),isUserCurator:s.some((function(e){return null==a?void 0:a.data.find((function(i){return i.name===e}))})),getOpenInCurationStudioLink:function(e,i,t){var a;return u(null===(a=n.data)||void 0===a?void 0:a.curatorUrl,e,i,t)}}}},70227:(e,i,t)=>{t.d(i,{c:()=>o});var a=t(97395),n=t(4594),o={getObjectUrl:function(e,i){var t=e.analyticsWebUrl;if(t){var o="";switch(i.typeId){case n.E.Video:o="/videos/".concat(i.id,"/overview");break;case n.E.Clip:o="/clips/".concat(i.id,"/overview");break;case n.E.Interactive:o="/interactives/".concat(i.id,"/overview")}if(o)return a._.safeUrlConcat(t,o)}}}},10671:(e,i,t)=>{t.d(i,{i:()=>S,_:()=>F});var a,n=t(20354),o=t(65858),r=t(16714);!function(e){e[e.AddToPlaylist=0]="AddToPlaylist",e[e.Share=1]="Share",e[e.EditVideo=2]="EditVideo",e[e.EditDetails=3]="EditDetails",e[e.Download=4]="Download",e[e.Delete=5]="Delete",e[e.ViewCurriculumLinks=6]="ViewCurriculumLinks",e[e.CreateClip=7]="CreateClip",e[e.CreateInteractive=8]="CreateInteractive",e[e.ViewUsage=9]="ViewUsage",e[e.AddToLibrary=10]="AddToLibrary",e[e.Approve=11]="Approve",e[e.ManageAccess=12]="ManageAccess",e[e.OpenInCurationStudio=13]="OpenInCurationStudio",e[e.OpenInLibraryEditor=14]="OpenInLibraryEditor",e[e.AddToMyVideos=15]="AddToMyVideos",e[e.ViewOriginalVideo=16]="ViewOriginalVideo",e[e.EditClip=17]="EditClip",e[e.EditInteractive=18]="EditInteractive",e[e.PreviewQuestions=19]="PreviewQuestions",e[e.ViewResults=20]="ViewResults",e[e.CopyInteractive=21]="CopyInteractive",e[e.PrintInteractive=22]="PrintInteractive",e[e.UnpublishInteractive=23]="UnpublishInteractive"}(a||(a={}));var s,d=t(39151),c=t(98064),l=t(31949),u=t(79967),p=t(56520),v=t(22902),y=t(15311),g=t(31908);!function(e){e[e.PlayPage=0]="PlayPage"}(s||(s={}));var I,f=t(26361),b=t(51855),m=t(23481),C=t(97395),E=t(28400),w=t(5960),V=t(4594),P=t(12754),T=t(70227),h=t(35223),O=t(14070),L=t(97291);function k(e){return k="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},k(e)}function A(e,i,t){return(i=function(e){var i=function(e,i){if("object"!=k(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var a=t.call(e,"string");if("object"!=k(a))return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==k(i)?i:i+""}(i))in e?Object.defineProperty(e,i,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[i]=t,e}var S,D=m.T.encloseNamespace("shared.utils"),N=(A(A(A(A(A(A(A(A(A(A(I={},a.Approve,(function(e){return{enabled:e.hasPermissions(r.C.ManageVideoAccess),svgName:h.vn.Check,order:10,name:D("approve"),button:!0,showButtonText:!0,appLink:{application:L.O.DEFAULT,action:O.e.Default.APPROVE_VIDEO,params:{objectId:e.video.id,objectTypeId:e.video.typeId}},analyticsOptions:{actionType:o.Vw.Click,descriptor:o.XX.Approve}}})),a.ManageAccess,(function(e){var i=f.l.hasCustomRestriction(e.video);return{enabled:e.hasPermissions(r.C.ManageVideoAccess),svgName:h.vn.Lock,order:90,name:D("manageAccess"),button:i,showButtonText:i,appLink:{application:L.O.DEFAULT,action:O.e.Default.MANAGE_ACCCESS,params:{objectId:e.video.id,objectTypeId:e.video.typeId}},analyticsOptions:{actionType:o.Vw.Click,descriptor:o.XX.ManageAccess},group:"manage"}})),a.ViewResults,(function(e){var i=!0,t=5;if(e.location===S.PlayPage){var a=e.breakpoints.xs||e.breakpoints.sm;i=!a,t=a?10:t}return{enabled:e.hasPermissions(r.C.ViewAnalyticsProduct)&&e.video.status!==w.X.Draft,types:[V.E.Interactive],order:t,svgName:h.vn.Chart,name:D("viewResults"),button:i,showButtonText:e.location===S.PlayPage&&i,href:T.c.getObjectUrl(e.config,e.video),openInNewTab:!0,analyticsOptions:{actionType:o.Vw.Click,descriptor:o.XX.ViewResults},group:"none"}})),a.AddToPlaylist,(function(e){var i=!g.M.isInteractive(e.video)||e.video.status!==w.X.Draft,t=10;if(i&&e.location===S.PlayPage){var a=e.breakpoints.xs||e.breakpoints.sm,n=e.breakpoints.md;g.M.isInteractive(e.video)?(i=!n&&!a,t=n||a?30:t):(i=!a,t=a?55:t)}var r=e.location===S.PlayPage&&i&&!g.M.isInteractive(e.video);return{enabled:!0,order:t,svgName:h.vn.AddToPlaylists,name:D("addToPlaylist"),button:i,showBorder:e.location===S.PlayPage&&i&&g.M.isInteractive(e.video),showButtonText:r,appLink:{application:L.O.PLAYLISTS,action:O.e.Playlists.ADD_TO_PLAYLIST,args:[e.video.id]},analyticsOptions:{actionType:o.Vw.Associate,descriptor:o.iF.Playlist,workflowPhase:o.eu.Start},group:"add"}})),a.Share,(function(e){var i=!0,t=20;if(e.location===S.PlayPage){var a=e.breakpoints.xs||e.breakpoints.sm,n=e.breakpoints.md;g.M.isInteractive(e.video)?(i=!n&&!a,t=n||a?5:t):(i=!a,t=a?5:t)}var r=e.location===S.PlayPage&&i&&!g.M.isInteractive(e.video);return{enabled:!g.M.isInteractive(e.video)||e.video.status!==w.X.Draft,order:t,svgName:h.vn.Share2,name:D("share"),button:i,showBorder:e.location===S.PlayPage&&i&&g.M.isInteractive(e.video),showButtonText:r,appLink:{application:L.O.DEFAULT,action:O.e.Default.SHARE,args:[e.video.id],params:{entityType:e.video.type}},analyticsOptions:{actionType:o.Vw.Share,workflowPhase:o.eu.Start,eventVersion:o.eq.V3},group:"none"}})),a.CreateClip,(function(e){return{enabled:!e.isPlugin,types:[V.E.Video],order:30,svgName:h.vn.Clip,name:D("createClip"),button:!1,appLink:{application:L.O.CLIPS,action:O.e.Clips.CREATE_CLIP,args:[e.video.id]},analyticsOptions:{actionType:o.Vw.Create,entity:o.py.Clip,workflowPhase:o.eu.Start},analyticsData:{video:e.analyticsData},group:"create"}})),a.CreateInteractive,(function(e){var i=!1,t=40;if(e.location===S.PlayPage){var a=e.breakpoints.xs||e.breakpoints.sm||e.breakpoints.md;i=!a,t=a?t:-10}return{enabled:!e.isPlugin,types:[V.E.Video,V.E.Clip],order:t,svgName:h.vn.CreateInteractive,name:D("createInteractive"),button:i,showButtonText:e.location===S.PlayPage&&i,appLink:{application:L.O.INTERACTIVES,action:g.M.isVideo(e.video)?O.e.Interactives.NEW_INTERACTIVE:O.e.Interactives.NEW_CLIP_INTERACTIVE,args:[e.video.id]},analyticsOptions:{actionType:o.Vw.Create,entity:o.py.Interactive,workflowPhase:o.eu.Start},analyticsData:{video:e.analyticsData},group:"create"}})),a.AddToMyVideos,(function(e){var i,t;return{enabled:g.M.isVideo(e.video)&&!!(null===(t=null===(i=e.video.libraries)||void 0===i?void 0:i.data)||void 0===t?void 0:t.find((function(e){return"exchange"===e.type}))),types:[V.E.Video],order:50,svgName:h.vn.AddVideo,name:D("addMyVideos"),button:!1,appLink:{application:L.O.DEFAULT,action:O.e.Default.ADD_VIDEO,args:[e.video.id]},analyticsOptions:{actionType:o.Vw.WorkspaceAdd,workflowPhase:o.eu.Start},group:"add"}})),a.AddToLibrary,(function(e){var i,t;return{enabled:!e.hasPermissions(r.C.StudentExperience)&&(null===(i=e.video._canAddToLibrary)||void 0===i?void 0:i.value)&&(null===(t=e.requestLibraries)||void 0===t?void 0:t.length)&&(!g.M.isInteractive(e.video)||e.video.status!==w.X.Draft),order:60,svgName:h.vn.Library,name:D("addToLibrary"),button:!1,appLink:{application:L.O.LIBRARIES,action:O.e.Libraries.ADD_TO_LIBRARY,args:[e.video.id,e.video.typeId]},analyticsOptions:{actionType:o.Vw.Create,entity:o.py.LibraryRequest,workflowPhase:o.eu.Start},analyticsData:{video:e.analyticsData},group:"add"}})),a.EditVideo,(function(e){var i;return{enabled:null===(i=e.video._canUpdate)||void 0===i?void 0:i.value,types:[V.E.Video],order:70,svgName:h.vn.EditVideo,name:D("editVideo"),button:!1,href:C._.urlBuilder(C._.safeUrlConcat(e.config.cloudEditorUrl,"video/".concat(e.video.id)),{product:P.x.Primary}),openInNewTab:!0,analyticsOptions:{actionType:o.Vw.Click,entity:o.py.Video,descriptor:o.XX.EditVideo},group:"edit"}})),A(A(A(A(A(A(A(A(A(A(I,a.EditClip,(function(e){var i;return{enabled:null===(i=e.video._canUpdate)||void 0===i?void 0:i.value,types:[V.E.Clip],order:70,svgName:h.vn.EditVideo,name:D("editClip"),button:!1,appLink:{application:L.O.CLIPS,action:O.e.Clips.EDIT_CLIP,args:[e.video.id]},analyticsOptions:{actionType:o.Vw.Edit,workflowPhase:o.eu.Start},group:"edit"}})),a.EditDetails,(function(e){var i;return{enabled:null===(i=e.video._canUpdate)||void 0===i?void 0:i.value,types:[V.E.Video,V.E.Clip],order:80,svgName:h.vn.Edit,name:D("editDetails"),button:!1,appLink:g.M.isVideo(e.video)?{application:L.O.VIDEOS,action:O.e.Videos.EDIT_VIDEO,args:[e.video.id]}:{application:L.O.CLIPS,action:O.e.Clips.EDIT_CLIP_DETAILS,args:[e.video.id]},analyticsOptions:{actionType:o.Vw.Edit,workflowPhase:o.eu.Start},group:"edit"}})),a.ViewOriginalVideo,(function(e){var i,t,a=null;return g.M.isInteractive(e.video)&&(null===(i=e.video._parentClip)||void 0===i?void 0:i.id)&&(a={application:L.O.CLIPS,action:O.e.Clips.PLAY_CLIP,args:[e.video._parentClip.id,E.m.slugify(e.video._parentClip.name)]}),!g.M.isVideo(e.video)&&(null===(t=e.video._parentVideo)||void 0===t?void 0:t.id)&&(a={application:L.O.VIDEOS,action:O.e.Videos.PLAY_VIDEO,args:[e.video._parentVideo.id,E.m.slugify(e.video._parentVideo.name)]}),{enabled:!g.M.isVideo(e.video)&&g.M.canViewOriginalVideo(e.video)&&!!a,types:[V.E.Clip,V.E.Interactive],order:100,svgName:h.vn.Video,name:D("viewOriginalVideo"),button:!1,appLink:a,analyticsOptions:{actionType:o.Vw.Click,descriptor:o.XX.ViewOriginalVideo},group:"manage"}})),a.ViewUsage,(function(e){var i;return{enabled:e.hasPermissions(r.C.ViewAnalyticsProduct)&&(e.hasPermissions(r.C.ViewCustomerAnalytics)||(null===(i=e.video._canUpdate)||void 0===i?void 0:i.value)),types:[V.E.Clip,V.E.Video],order:110,svgName:h.vn.Chart,name:D("viewUsage"),button:!1,href:T.c.getObjectUrl(e.config,e.video),openInNewTab:!0,analyticsOptions:{actionType:o.Vw.Click,workflowPhase:o.eu.Complete,descriptor:o.XX.ViewUsage},group:"manage"}})),a.ViewCurriculumLinks,(function(e){return{enabled:!e.hasPermissions(r.C.StudentExperience)&&g.M.isVideo(e.video)&&e.video._hasCurriculumLinks,types:[V.E.Video],order:120,svgName:h.vn.Tag,name:D("viewCurriculumLinks"),button:!1,appLink:{application:L.O.VIDEOS,action:O.e.Videos.VIEW_CURRICULUM_LINKS,args:[e.video.id]},analyticsOptions:{actionType:o.Vw.Click,workflowPhase:o.eu.Complete,descriptor:o.XX.ViewCurriculumLinks},group:"manage"}})),a.Download,(function(e){var i;return{enabled:g.M.isVideo(e.video)&&(null===(i=e.video._canDownload)||void 0===i?void 0:i.value),types:[V.E.Video],order:130,svgName:h.vn.Download,name:D("download"),button:!1,appLink:{application:L.O.VIDEOS,action:O.e.Videos.DOWNLOAD_VIDEO,args:[e.video.id]},analyticsOptions:{actionType:o.Vw.Download,workflowPhase:o.eu.Start},group:"manage"}})),a.OpenInCurationStudio,(function(e){return{enabled:e.isUserCurator,order:140,svgName:h.vn.NewWindow,name:D("openInCurationStudio"),button:!1,href:(0,p._N)(e.config.curatorUrl,e.video.typeId,e.video.id),openInNewTab:!0,group:"administrative"}})),a.OpenInLibraryEditor,(function(e){var i,t,a,n,o=new Set(null===(i=e.requestLibraries)||void 0===i?void 0:i.filter((function(i){var t,a,n,o;return(null===(a=null===(t=i.owner)||void 0===t?void 0:t.id)||void 0===a?void 0:a.toString())===(null===(o=null===(n=e.currentUser)||void 0===n?void 0:n.customerId)||void 0===o?void 0:o.toString())})).map((function(e){var i;return null===(i=e.id)||void 0===i?void 0:i.toString()})));return{enabled:e.hasProduct(P.x.LibraryEditor)&&!!(null===(a=null===(t=e.video.libraries)||void 0===t?void 0:t.data)||void 0===a?void 0:a.find((function(e){var i;return o.has(null===(i=e.id)||void 0===i?void 0:i.toString())}))),order:145,svgName:h.vn.NewWindow,name:D("openInLibraryEditor"),button:!1,href:(n="videos",g.M.isClip(e.video)?n="clips":g.M.isInteractive(e.video)&&(n="interactives"),C._.safeUrlConcat(e.config.libraryEditorUrl,"/manage/libraries/".concat(n,"/").concat(e.video.id))),openInNewTab:!0,group:"administrative"}})),a.Delete,(function(e){var i,t={application:L.O.VIDEOS,action:O.e.Videos.DELETE_VIDEO,params:{ids:[e.video.id]}};return g.M.isClip(e.video)?t={application:L.O.CLIPS,action:O.e.Clips.DELETE_CLIP,args:[e.video.id]}:g.M.isInteractive(e.video)&&(t={application:L.O.INTERACTIVES,action:O.e.Interactives.DELETE_INTERACTIVE,args:[e.video.id]}),{enabled:null===(i=e.video._canUpdate)||void 0===i?void 0:i.value,order:150,svgName:h.vn.Delete,name:D("delete"),variant:"danger",button:!1,appLink:t,analyticsOptions:{actionType:o.Vw.Edit,workflowPhase:o.eu.Start},group:"delete"}})),a.PreviewQuestions,(function(e){return{enabled:e.location===S.VideoItem,types:[V.E.Interactive],order:83,svgName:h.vn.Search,name:D("previewInteractive"),button:!1,appLink:{application:L.O.INTERACTIVES,action:O.e.Interactives.PREVIEW_QUESTIONS,args:[e.video.id]},analyticsOptions:{actionType:o.Vw.Click,descriptor:o.XX.PreviewInteractiveVideo},group:"manage-interactives"}})),A(A(A(A(I,a.PrintInteractive,(function(e){var i,t=0;if(g.M.isInteractive(e.video)&&(i=!0),i&&e.location===S.PlayPage){var a=e.breakpoints.xs||e.breakpoints.sm;i=!a,t=a?80:t}return{enabled:!0,types:[V.E.Interactive],order:t,svgName:h.vn.Print,name:D("printAsWorksheet"),button:i,showButtonText:e.location===S.PlayPage,appLink:{application:L.O.INTERACTIVES,action:O.e.Interactives.PRINT_QUESTIONS,args:[e.video.id]},analyticsOptions:{actionType:o.Vw.Print,workflowPhase:o.eu.Start},group:"manage-interactives"}})),a.CopyInteractive,(function(e){return{enabled:!e.hasPermissions(r.C.StudentExperience),types:[V.E.Interactive],order:87,svgName:h.vn.Copy,name:D("copyInteractive"),button:!1,appLink:{application:L.O.INTERACTIVES,action:O.e.Interactives.COPY_INTERACTIVE,args:[e.video.id]},analyticsOptions:{actionType:o.Vw.Copy,workflowPhase:o.eu.Start},group:"manage-interactives"}})),a.EditInteractive,(function(e){var i=e.video.status===w.X.Draft,t=70;return e.location===S.PlayPage&&e.breakpoints.xs&&(i=!1,t=-10),{enabled:!e.isPlugin&&e.video.status===w.X.Draft,types:[V.E.Interactive],order:t,svgName:h.vn.EditVideo,name:D("editInteractive"),tooltip:e.location!==S.PlayPage?D("editInteractiveTooltip"):"",button:i,showButtonText:e.location===S.PlayPage&&i,appLink:{application:L.O.INTERACTIVES,action:O.e.Interactives.EDIT_INTERACTIVE,args:[e.video.id]},analyticsOptions:{actionType:o.Vw.Edit,workflowPhase:o.eu.Start},group:"edit"}})),a.UnpublishInteractive,(function(e){var i;return{enabled:(null===(i=e.video._canUpdate)||void 0===i?void 0:i.value)&&e.video.status!==w.X.Draft,types:[V.E.Interactive],order:70,svgName:h.vn.EditVideo,name:D("editInteractive"),button:!1,appLink:{application:L.O.INTERACTIVES,action:O.e.Interactives.UNPUBLISH_INTERACTIVE,args:[e.video.id]},analyticsOptions:{actionType:o.Vw.Publish,descriptor:o.Iq.Unpublish,workflowPhase:o.eu.Start},group:"edit"}})));function _(e,i){(null==i||i>e.length)&&(i=e.length);for(var t=0,a=Array(i);t<i;t++)a[t]=e[t];return a}!function(e){e[e.PlayPage=0]="PlayPage",e[e.VideoItem=1]="VideoItem"}(S||(S={}));var U=[a.Approve,a.ManageAccess],M=[a.ViewResults],R=[a.AddToPlaylist,a.Share,a.EditInteractive,a.ViewResults,a.PrintInteractive],B=[a.ManageAccess,a.AddToLibrary,a.ViewCurriculumLinks,a.ViewUsage,a.CreateClip,a.CreateInteractive,a.AddToMyVideos,a.EditVideo,a.EditClip,a.EditDetails,a.Delete,a.Download,a.OpenInCurationStudio,a.OpenInLibraryEditor,a.ViewOriginalVideo,a.CopyInteractive,a.UnpublishInteractive,a.PreviewQuestions],x={lazyPlaceholder:!0};function X(e){switch(e){case S.PlayPage:return o.LZ.PlayPage;case S.VideoItem:return o.LZ.VideoListItem}}function j(e,i){return e.map((function(e){var t,a,n,o=N[e](i);if(o.types&&!o.types.some((function(e){return e===i.video.typeId})))return null;if(!o.enabled)return null;var r=o.variant||"outline-dark",s="";o.showButtonText?s="btn btn-".concat(r," me-2"):o.variant&&(s="text-".concat(r));var d=!o.button||o.showButtonText;return{order:o.order,label:d?o.name:null,appLink:o.appLink,href:o.href,onClick:o.onClick,svgName:o.svgName,className:s,button:o.button,showBorder:o.showBorder,tooltip:null!==(t=o.tooltip)&&void 0!==t?t:d?null:o.name,analyticsData:o.analyticsData||i.analyticsData,analyticsOptions:o.analyticsOptions?Object.assign(Object.assign({},null!==(a=i.analyticsOptions)&&void 0!==a?a:{}),null!==(n=o.analyticsOptions)&&void 0!==n?n:{}):null,openInNewTab:o.openInNewTab,group:o.group}})).filter((function(e){return!!e}))}function F(e){var i=(0,u.k)(),t=(0,v.T)(),a=t.hasPermissions,o=t.hasLocalPermissions,I=(0,b.G)().isPlugin,m=(0,p.R0)().isUserCurator,C=(0,y.r)().hasProduct,E=n.a.useBasicFetch(l.N.currentUser()),w=n.a.useBasicFetch(d.L.config()),V=n.a.useBasicFetch(a(r.C.ViewLibraries)&&c.D.libraryRequestLibraries()),P=function(e){var i=n.a.useGetResponseFunc(),t=n.a.useGetFetch();function a(i){return e.type!==s.PlayPage?null:g.M.getVideoRequest(i.id,i.typeId,e.shareId)}return{hydrate:function(e){var n=a(e);i(n.key).shouldFetch&&t(n)},isHydrated:function(e){var t=a(e);return i(t.key).hasCompleted}}}({type:s.PlayPage,shareId:e.shareId}),T=P.hydrate,h=P.isHydrated;return{getVideoActions:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!o(r.E.UseVideoActions))return[];if(!g.M.getCanBeConsumed(t).canConsume)return[];var s,d={video:t,breakpoints:i,location:e.location,hasPermissions:a,hasProduct:C,requestLibraries:V.data,config:w.data,currentUser:E.data,isPlugin:I,isUserCurator:m,analyticsData:g.M.getAnalyticsData(t,n.analyticsData),analyticsOptions:Object.assign(Object.assign({},n.analyticsOptions),{entity:g.M.getAnalyticsEntity(t),location:X(e.location)})};return g.M.isVideoTypeArchived(t)?j(M,d):f.l.hasCustomRestriction(t)?j(U,d):h(t)?j([].concat(R,B),d):[].concat(function(e){if(Array.isArray(e))return _(e)}(s=j(R,d))||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(s)||function(e,i){if(e){if("string"==typeof e)return _(e,i);var t={}.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_(e,i):void 0}}(s)||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.")}(),[x])},fetchMoreActions:function(e){return T(e)}}}}}]);
|
|
2
|
+
//# sourceMappingURL=671-4c464fb251-lite.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/671-4c464fb251-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/hooks/useCurationStudio.ts","file:///app/packages/libs/shared/src/utils/AnalyticsRouteHelper.ts","file:///app/packages/libs/shared/src/enums/VideoActions.ts","file:///app/packages/libs/shared/src/hooks/useVideohydration.ts","file:///app/packages/projects/lite/src/shared/hooks/use-video-actions/VideoActionDefinitions.ts","file:///app/packages/projects/lite/src/shared/hooks/use-video-actions/useVideoActions.ts"],"sourcesContent":["import { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/react/index';\n\nimport { CuratorGroup } from 'libs/shared/enums/CuratorGroup';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { Config, CuratorUserGroupCollection, CurrentUser } from 'libs/shared/interfaces';\n\nconst namespace = 'shared.hooks';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function getOpenInCurationStudioLink(\n baseUrl: string,\n objectType: MasterType | string,\n id: string,\n presentationId?: string\n) {\n const baseManageUrl = UrlHelper.safeUrlConcat(baseUrl, 'manage');\n const baseExchangeUrl = UrlHelper.safeUrlConcat(baseUrl, 'exchange');\n const href = (baseUrl: string, objectType: string, id: string) => UrlHelper.safeUrlConcat(baseUrl, `${objectType}/${id}`);\n\n switch (objectType) {\n case MasterType.Subject:\n return UrlHelper.safeUrlConcat(baseManageUrl, `subjects/presentations/${presentationId}/classifications/${id}/edit`);\n case MasterType.Video:\n return href(baseManageUrl, 'videos', id);\n case MasterType.Playlist:\n return href(baseManageUrl, 'playlists', id);\n case MasterType.Series:\n return href(baseManageUrl, 'series', id);\n case MasterType.Company:\n return href(baseManageUrl, 'companies', id);\n case MasterType.Interactive:\n return href(baseManageUrl, 'interactives', id);\n case MasterType.Clip:\n return href(baseManageUrl, 'clips', id);\n case MasterType.Category:\n return href(baseExchangeUrl, 'categories', id);\n }\n}\n\nexport function getOpenInCurationStudioLabel(): string {\n return getPhrase('openInCurationStudio');\n}\n\nexport function useCurationStudio() {\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const { data: userGroups } = Flight.useBasicFetch<CuratorUserGroupCollection>(\n (currentUser.data?.id) && UserRequests.groups(currentUser.data?.id)\n );\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n \n const curatorGroups = [ CuratorGroup.Curator, CuratorGroup.Content, CuratorGroup.Developer ];\n\n function isUserCurator(): boolean {\n return curatorGroups.some(group => userGroups?.data.find(userGroup => userGroup.name === group));\n }\n\n return {\n openInCurationStudioLabel: getOpenInCurationStudioLabel(),\n isUserCurator: isUserCurator(),\n getOpenInCurationStudioLink: (objectType: MasterType | string, id: string, presentationId?: string) =>\n getOpenInCurationStudioLink(config.data?.curatorUrl, objectType, id, presentationId)\n };\n}\n","import { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\n\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { BaseObject, Config } from 'libs/shared/interfaces';\n\nexport const AnalyticsRouteHelper = {\n getObjectUrl(config: Config, object: BaseObject): string {\n const baseUrl = config.analyticsWebUrl;\n\n if (!baseUrl)\n return;\n\n let relativeUrl = '';\n\n switch (object.typeId) {\n case MasterType.Video:\n relativeUrl = `/videos/${object.id}/overview`;\n break;\n\n case MasterType.Clip:\n relativeUrl = `/clips/${object.id}/overview`;\n break;\n\n case MasterType.Interactive:\n relativeUrl = `/interactives/${object.id}/overview`;\n break;\n }\n\n if (!relativeUrl)\n return;\n\n return UrlHelper.safeUrlConcat(baseUrl, relativeUrl);\n }\n};","export enum VideoAction {\n AddToPlaylist,\n Share,\n EditVideo,\n EditDetails,\n Download,\n Delete,\n ViewCurriculumLinks,\n CreateClip,\n CreateInteractive,\n ViewUsage,\n AddToLibrary,\n Approve,\n ManageAccess,\n OpenInCurationStudio,\n OpenInLibraryEditor,\n AddToMyVideos,\n ViewOriginalVideo,\n EditClip,\n EditInteractive,\n PreviewQuestions,\n ViewResults,\n CopyInteractive,\n PrintInteractive,\n UnpublishInteractive,\n}","import { Flight } from 'libs/common/react/index';\n\nimport { VideoTypes } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nexport enum VideoHydrationType {\n PlayPage\n}\n\ninterface UseVideoHydrationOptions {\n type: VideoHydrationType;\n shareId?: string;\n}\n\nexport function useVideoHydration(options: UseVideoHydrationOptions) {\n const getResponse = Flight.useGetResponseFunc();\n const fetch = Flight.useGetFetch();\n \n function getRequest(video: VideoTypes): Flight.Request {\n if (options.type !== VideoHydrationType.PlayPage)\n return null;\n\n\n return VideoHelper.getVideoRequest(video.id, video.typeId, options.shareId);\n }\n \n function hydrate(video: VideoTypes): void {\n const request = getRequest(video);\n const resp = getResponse(request.key);\n\n resp.shouldFetch && fetch(request);\n }\n\n function isHydrated(video: VideoTypes): boolean {\n const request = getRequest(video);\n const resp = getResponse(request.key);\n\n return resp.hasCompleted;\n }\n\n return { hydrate, isHydrated };\n}","import { ButtonProps } from 'react-bootstrap';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { AnalyticsOptions, AssocDescriptor, EntityType, EventVersion, HashObject, PublishDescriptor, UserAction, VideoActionDescriptor, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { CurationStatus } from 'libs/shared/enums/CurationStatus';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ProductId } from 'libs/shared/enums/ProductId';\nimport { VideoAction } from 'libs/shared/enums/VideoActions';\nimport { Breakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { getOpenInCurationStudioLink } from 'libs/shared/hooks/useCurationStudio';\nimport { HasPermissionsFunc } from 'libs/shared/hooks/usePermissions';\nimport { Config, CurrentUser, Library, VideoTypes } from 'libs/shared/interfaces';\nimport { AnalyticsRouteHelper } from 'libs/shared/utils/AnalyticsRouteHelper';\nimport { RestrictionHelper } from 'libs/shared/utils/RestrictionHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { VideoActionsLocation } from 'shared/hooks/use-video-actions/useVideoActions';\n\nconst namespace = 'shared.utils';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ntype ActionGroup = 'create' | 'add' | 'edit' | 'manage-interactives' | 'manage' | 'administrative' | 'delete' | 'none';\n\ninterface VideoActionDefinition {\n order: number;\n svgName: string;\n name: string;\n tooltip?: string;\n button: boolean;\n showBorder?: boolean;\n variant?: ButtonProps['variant'];\n appLink?: Core.AppLink;\n analyticsOptions?: AnalyticsOptions;\n enabled: boolean;\n types?: (MasterType.Video | MasterType.Clip | MasterType.Interactive)[];\n openInNewTab?: boolean;\n onClick?: () => void;\n href?: string;\n analyticsData?: HashObject;\n group?: ActionGroup;\n showButtonText?: boolean;\n}\n\nexport interface GetActionsContext {\n video: VideoTypes;\n location: VideoActionsLocation;\n currentUser: CurrentUser;\n breakpoints: Breakpoints;\n hasPermissions: HasPermissionsFunc;\n hasProduct: (product: ProductId) => boolean;\n requestLibraries: Library[];\n config: Config;\n isPlugin: boolean;\n isUserCurator: boolean;\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n}\n\nexport const VideoActionsDefinitions: Record<VideoAction, (options: GetActionsContext) => VideoActionDefinition> = {\n /**\n * Content Review actions\n */\n [VideoAction.Approve]: (ctx: GetActionsContext): VideoActionDefinition => ({\n enabled: ctx.hasPermissions(PermissionName.ManageVideoAccess),\n svgName: cvSvgLibrary.Check,\n order: 10,\n name: getPhrase('approve'),\n button: true,\n showButtonText: true,\n appLink: {\n application: AppChannels.DEFAULT,\n action: Actions.Default.APPROVE_VIDEO,\n params: { objectId: ctx.video.id, objectTypeId: ctx.video.typeId }\n },\n analyticsOptions: {\n actionType: UserAction.Click,\n descriptor: VideoActionDescriptor.Approve\n }\n }),\n\n [VideoAction.ManageAccess]: (ctx: GetActionsContext): VideoActionDefinition => {\n const hasCustomRestriction = RestrictionHelper.hasCustomRestriction(ctx.video);\n\n return {\n enabled: ctx.hasPermissions(PermissionName.ManageVideoAccess),\n svgName: cvSvgLibrary.Lock,\n order: 90,\n name: getPhrase('manageAccess'),\n button: hasCustomRestriction,\n showButtonText: hasCustomRestriction,\n appLink: {\n application: AppChannels.DEFAULT,\n action: Actions.Default.MANAGE_ACCCESS,\n params: {\n objectId: ctx.video.id,\n objectTypeId: ctx.video.typeId\n }\n },\n analyticsOptions: {\n actionType: UserAction.Click,\n descriptor: VideoActionDescriptor.ManageAccess\n },\n group: 'manage'\n };\n },\n\n /**\n * Archived videos\n */\n [VideoAction.ViewResults]: (ctx: GetActionsContext): VideoActionDefinition => {\n let button = true;\n let order = 5;\n\n if (ctx.location === VideoActionsLocation.PlayPage) {\n const isMobile = ctx.breakpoints.xs || ctx.breakpoints.sm;\n button = !isMobile;\n order = isMobile ? 10 : order;\n }\n\n return {\n enabled: ctx.hasPermissions(PermissionName.ViewAnalyticsProduct)\n && ctx.video.status !== CurationStatus.Draft,\n types: [MasterType.Interactive],\n order,\n svgName: cvSvgLibrary.Chart,\n name: getPhrase('viewResults'),\n button,\n showButtonText: ctx.location === VideoActionsLocation.PlayPage && button,\n href: AnalyticsRouteHelper.getObjectUrl(ctx.config, ctx.video),\n openInNewTab: true,\n analyticsOptions: {\n actionType: UserAction.Click,\n descriptor: VideoActionDescriptor.ViewResults\n },\n group: 'none'\n };\n },\n\n /**\n * All other actions\n */\n [VideoAction.AddToPlaylist]: (ctx: GetActionsContext): VideoActionDefinition => {\n let button = !VideoHelper.isInteractive(ctx.video) || ctx.video.status !== CurationStatus.Draft;\n let order = 10;\n\n if (button && ctx.location === VideoActionsLocation.PlayPage) {\n const isMobile = ctx.breakpoints.xs || ctx.breakpoints.sm;\n const isIpad = ctx.breakpoints.md;\n if (VideoHelper.isInteractive(ctx.video)) {\n button = !isIpad && !isMobile;\n order = !isIpad && !isMobile ? order : 30;\n } else {\n button = !isMobile;\n order = isMobile ? 55 : order;\n }\n }\n\n const showButtonText = ctx.location === VideoActionsLocation.PlayPage\n && button\n && !VideoHelper.isInteractive(ctx.video);\n\n return {\n enabled: true,\n order,\n svgName: cvSvgLibrary.AddToPlaylists,\n name: getPhrase('addToPlaylist'),\n button,\n showBorder: ctx.location === VideoActionsLocation.PlayPage && button && VideoHelper.isInteractive(ctx.video),\n showButtonText,\n appLink: {\n application: AppChannels.PLAYLISTS,\n action: Actions.Playlists.ADD_TO_PLAYLIST,\n args: [ctx.video.id]\n },\n analyticsOptions: {\n actionType: UserAction.Associate,\n descriptor: AssocDescriptor.Playlist,\n workflowPhase: WorkflowPhase.Start\n },\n group: 'add'\n };\n },\n\n [VideoAction.Share]: (ctx: GetActionsContext): VideoActionDefinition => {\n let button = true;\n let order = 20;\n\n if (ctx.location === VideoActionsLocation.PlayPage) {\n const isMobile = ctx.breakpoints.xs || ctx.breakpoints.sm;\n const isIpad = ctx.breakpoints.md;\n if (VideoHelper.isInteractive(ctx.video)) {\n button = !isIpad && !isMobile;\n order = (isIpad || isMobile) ? 5 : order;\n } else {\n button = !isMobile;\n order = isMobile ? 5 : order;\n }\n }\n\n const showButtonText = ctx.location === VideoActionsLocation.PlayPage\n && button\n && !VideoHelper.isInteractive(ctx.video);\n\n return {\n enabled: !VideoHelper.isInteractive(ctx.video) || ctx.video.status !== CurationStatus.Draft,\n order,\n svgName: cvSvgLibrary.Share2,\n name: getPhrase('share'),\n button,\n showBorder: ctx.location === VideoActionsLocation.PlayPage && button && VideoHelper.isInteractive(ctx.video),\n showButtonText,\n appLink: {\n application: AppChannels.DEFAULT,\n action: Actions.Default.SHARE,\n args: [ctx.video.id],\n params: { entityType: ctx.video.type }\n },\n analyticsOptions: {\n actionType: UserAction.Share,\n workflowPhase: WorkflowPhase.Start,\n eventVersion: EventVersion.V3\n },\n group: 'none'\n };\n },\n\n [VideoAction.CreateClip]: (ctx: GetActionsContext): VideoActionDefinition => ({\n enabled: !ctx.isPlugin,\n types: [MasterType.Video],\n order: 30,\n svgName: cvSvgLibrary.Clip,\n name: getPhrase('createClip'),\n button: false,\n appLink: { application: AppChannels.CLIPS, action: Actions.Clips.CREATE_CLIP, args: [ctx.video.id]},\n analyticsOptions: {\n actionType: UserAction.Create,\n entity: EntityType.Clip,\n workflowPhase: WorkflowPhase.Start\n },\n analyticsData: {\n video: ctx.analyticsData\n },\n group: 'create'\n }),\n\n [VideoAction.CreateInteractive]: (ctx: GetActionsContext): VideoActionDefinition => {\n let button = false;\n let order = 40;\n\n if (ctx.location === VideoActionsLocation.PlayPage) {\n const isIpad = ctx.breakpoints.xs || ctx.breakpoints.sm || ctx.breakpoints.md;\n button = !isIpad;\n order = isIpad ? order : -10;\n }\n\n return {\n enabled: !ctx.isPlugin,\n types: [ MasterType.Video, MasterType.Clip ],\n order,\n svgName: cvSvgLibrary.CreateInteractive,\n name: getPhrase('createInteractive'),\n button,\n showButtonText: ctx.location === VideoActionsLocation.PlayPage && button,\n appLink: {\n application: AppChannels.INTERACTIVES,\n action: VideoHelper.isVideo(ctx.video) ?\n Actions.Interactives.NEW_INTERACTIVE :\n Actions.Interactives.NEW_CLIP_INTERACTIVE,\n args: [ctx.video.id]\n },\n analyticsOptions: {\n actionType: UserAction.Create,\n entity: EntityType.Interactive,\n workflowPhase: WorkflowPhase.Start\n },\n analyticsData: {\n video: ctx.analyticsData\n },\n group: 'create'\n };\n },\n\n [VideoAction.AddToMyVideos]: (ctx: GetActionsContext): VideoActionDefinition => ({\n enabled: VideoHelper.isVideo(ctx.video) &&\n !!ctx.video.libraries?.data?.find(library => library.type === 'exchange'),\n types: [MasterType.Video],\n order: 50,\n svgName: cvSvgLibrary.AddVideo,\n name: getPhrase('addMyVideos'),\n button: false,\n appLink: {\n application: AppChannels.DEFAULT,\n action: Actions.Default.ADD_VIDEO,\n args: [ctx.video.id]\n },\n analyticsOptions: {\n actionType: UserAction.WorkspaceAdd,\n workflowPhase: WorkflowPhase.Start\n },\n group: 'add'\n }),\n\n [VideoAction.AddToLibrary]: (ctx: GetActionsContext): VideoActionDefinition => ({\n enabled: !ctx.hasPermissions(PermissionName.StudentExperience) &&\n ctx.video._canAddToLibrary?.value &&\n ctx.requestLibraries?.length &&\n (!VideoHelper.isInteractive(ctx.video) || ctx.video.status !== CurationStatus.Draft),\n order: 60,\n svgName: cvSvgLibrary.Library,\n name: getPhrase('addToLibrary'),\n button: false,\n appLink: {\n application: AppChannels.LIBRARIES,\n action: Actions.Libraries.ADD_TO_LIBRARY,\n args: [ ctx.video.id, ctx.video.typeId ]\n },\n analyticsOptions: {\n actionType: UserAction.Create,\n entity: EntityType.LibraryRequest,\n workflowPhase: WorkflowPhase.Start\n },\n analyticsData: {\n video: ctx.analyticsData\n },\n group: 'add'\n }),\n\n [VideoAction.EditVideo]: (ctx: GetActionsContext): VideoActionDefinition => ({\n enabled: ctx.video._canUpdate?.value,\n types: [MasterType.Video],\n order: 70,\n svgName: cvSvgLibrary.EditVideo,\n name: getPhrase('editVideo'),\n button: false,\n href: UrlHelper.urlBuilder(\n UrlHelper.safeUrlConcat(ctx.config.cloudEditorUrl, `video/${ctx.video.id}`),\n { product: ProductId.Primary }\n ),\n openInNewTab: true,\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Video,\n descriptor: VideoActionDescriptor.EditVideo\n },\n group: 'edit'\n }),\n\n [VideoAction.EditClip]: (ctx: GetActionsContext): VideoActionDefinition => ({\n enabled: ctx.video._canUpdate?.value,\n types: [MasterType.Clip],\n order: 70,\n svgName: cvSvgLibrary.EditVideo,\n name: getPhrase('editClip'),\n button: false,\n appLink: {\n application: AppChannels.CLIPS,\n action: Actions.Clips.EDIT_CLIP,\n args: [ctx.video.id]\n },\n analyticsOptions: {\n actionType: UserAction.Edit,\n workflowPhase: WorkflowPhase.Start\n },\n group: 'edit'\n }),\n\n [VideoAction.EditDetails]: (ctx: GetActionsContext): VideoActionDefinition => ({\n enabled: ctx.video._canUpdate?.value,\n types: [ MasterType.Video, MasterType.Clip ],\n order: 80,\n svgName: cvSvgLibrary.Edit,\n name: getPhrase('editDetails'),\n button: false,\n appLink: VideoHelper.isVideo(ctx.video) ?\n { application: AppChannels.VIDEOS, action: Actions.Videos.EDIT_VIDEO, args: [ctx.video.id]} :\n { application: AppChannels.CLIPS, action: Actions.Clips.EDIT_CLIP_DETAILS, args: [ctx.video.id]},\n analyticsOptions: {\n actionType: UserAction.Edit,\n workflowPhase: WorkflowPhase.Start\n },\n group: 'edit'\n }),\n\n [VideoAction.ViewOriginalVideo]: (ctx: GetActionsContext): VideoActionDefinition => {\n let appLink: Core.AppLink = null;\n\n if (VideoHelper.isInteractive(ctx.video) && ctx.video._parentClip?.id) {\n appLink = {\n application: AppChannels.CLIPS,\n action: Actions.Clips.PLAY_CLIP,\n args: [ ctx.video._parentClip.id, TextHelper.slugify(ctx.video._parentClip.name) ]\n };\n }\n \n if (!VideoHelper.isVideo(ctx.video) && ctx.video._parentVideo?.id) {\n appLink = {\n application: AppChannels.VIDEOS,\n action: Actions.Videos.PLAY_VIDEO,\n args: [ ctx.video._parentVideo.id, TextHelper.slugify(ctx.video._parentVideo.name) ]\n };\n }\n \n return {\n enabled: !VideoHelper.isVideo(ctx.video) &&\n VideoHelper.canViewOriginalVideo(ctx.video) &&\n !!appLink,\n types: [ MasterType.Clip, MasterType.Interactive ],\n order: 100,\n svgName: cvSvgLibrary.Video,\n name: getPhrase('viewOriginalVideo'),\n button: false,\n appLink,\n analyticsOptions: {\n actionType: UserAction.Click,\n descriptor: VideoActionDescriptor.ViewOriginalVideo\n },\n group: 'manage'\n };\n },\n\n [VideoAction.ViewUsage]: (ctx: GetActionsContext): VideoActionDefinition => ({\n enabled: ctx.hasPermissions(PermissionName.ViewAnalyticsProduct) &&\n (ctx.hasPermissions(PermissionName.ViewCustomerAnalytics) || ctx.video._canUpdate?.value),\n types: [ MasterType.Clip, MasterType.Video ],\n order: 110,\n svgName: cvSvgLibrary.Chart,\n name: getPhrase('viewUsage'),\n button: false,\n href: AnalyticsRouteHelper.getObjectUrl(ctx.config, ctx.video),\n openInNewTab: true,\n analyticsOptions: {\n actionType: UserAction.Click,\n workflowPhase: WorkflowPhase.Complete,\n descriptor: VideoActionDescriptor.ViewUsage\n },\n group: 'manage'\n }),\n\n [VideoAction.ViewCurriculumLinks]: (ctx: GetActionsContext): VideoActionDefinition => ({\n enabled: !ctx.hasPermissions(PermissionName.StudentExperience) &&\n VideoHelper.isVideo(ctx.video) &&\n ctx.video._hasCurriculumLinks,\n types: [MasterType.Video],\n order: 120,\n svgName: cvSvgLibrary.Tag,\n name: getPhrase('viewCurriculumLinks'),\n button: false,\n appLink: { application: AppChannels.VIDEOS, action: Actions.Videos.VIEW_CURRICULUM_LINKS, args: [ctx.video.id]},\n analyticsOptions: {\n actionType: UserAction.Click,\n workflowPhase: WorkflowPhase.Complete,\n descriptor: VideoActionDescriptor.ViewCurriculumLinks\n },\n group: 'manage'\n }),\n\n [VideoAction.Download]: (ctx: GetActionsContext): VideoActionDefinition => ({\n enabled: VideoHelper.isVideo(ctx.video) && ctx.video._canDownload?.value,\n types: [MasterType.Video],\n order: 130,\n svgName: cvSvgLibrary.Download,\n name: getPhrase('download'),\n button: false,\n appLink: { application: AppChannels.VIDEOS, action: Actions.Videos.DOWNLOAD_VIDEO, args: [ctx.video.id]},\n analyticsOptions: {\n actionType: UserAction.Download,\n workflowPhase: WorkflowPhase.Start\n },\n group: 'manage'\n }),\n\n [VideoAction.OpenInCurationStudio]: (ctx: GetActionsContext): VideoActionDefinition => ({\n enabled: ctx.isUserCurator,\n order: 140,\n svgName: cvSvgLibrary.NewWindow,\n name: getPhrase('openInCurationStudio'),\n button: false,\n href: getOpenInCurationStudioLink(ctx.config.curatorUrl, ctx.video.typeId, ctx.video.id),\n openInNewTab: true,\n group: 'administrative'\n }),\n\n [VideoAction.OpenInLibraryEditor]: (ctx: GetActionsContext): VideoActionDefinition => {\n function getOpenInLibraryEditorLink(): string {\n let type = 'videos';\n \n if (VideoHelper.isClip(ctx.video))\n type = 'clips';\n else if (VideoHelper.isInteractive(ctx.video))\n type = 'interactives';\n \n return UrlHelper.safeUrlConcat(ctx.config.libraryEditorUrl, `/manage/libraries/${type}/${ctx.video.id}`);\n }\n\n const schoolLibraryIds = new Set(\n ctx.requestLibraries\n ?.filter(l => l.owner?.id?.toString() === ctx.currentUser?.customerId?.toString())\n .map(l => l.id?.toString())\n );\n\n return {\n enabled: ctx.hasProduct(ProductId.LibraryEditor) &&\n !!ctx.video.libraries?.data?.find(l => schoolLibraryIds.has(l.id?.toString())),\n order: 145,\n svgName: cvSvgLibrary.NewWindow,\n name: getPhrase('openInLibraryEditor'),\n button: false,\n href: getOpenInLibraryEditorLink(),\n openInNewTab: true,\n group: 'administrative'\n };\n },\n\n [VideoAction.Delete]: (ctx: GetActionsContext): VideoActionDefinition => {\n let appLink: Core.AppLink = {\n application: AppChannels.VIDEOS,\n action: Actions.Videos.DELETE_VIDEO,\n params: { ids: [ctx.video.id]}\n };\n \n if (VideoHelper.isClip(ctx.video)) {\n appLink = {\n application: AppChannels.CLIPS,\n action: Actions.Clips.DELETE_CLIP,\n args: [ctx.video.id]\n };\n } else if (VideoHelper.isInteractive(ctx.video)) {\n appLink = {\n application: AppChannels.INTERACTIVES,\n action: Actions.Interactives.DELETE_INTERACTIVE,\n args: [ctx.video.id]\n };\n }\n\n return {\n enabled: ctx.video._canUpdate?.value,\n order: 150,\n svgName: cvSvgLibrary.Delete,\n name: getPhrase('delete'),\n variant: 'danger',\n button: false,\n appLink,\n analyticsOptions: {\n actionType: UserAction.Edit,\n workflowPhase: WorkflowPhase.Start\n },\n group: 'delete'\n };\n },\n\n /**\n * Interactive only\n */\n [VideoAction.PreviewQuestions]: (ctx: GetActionsContext): VideoActionDefinition => ({\n enabled: ctx.location === VideoActionsLocation.VideoItem,\n types: [MasterType.Interactive],\n order: 83,\n svgName: cvSvgLibrary.Search,\n name: getPhrase('previewInteractive'),\n button: false,\n appLink: {\n application: AppChannels.INTERACTIVES,\n action: Actions.Interactives.PREVIEW_QUESTIONS,\n args: [ctx.video.id]\n },\n analyticsOptions: {\n actionType: UserAction.Click,\n descriptor: VideoActionDescriptor.PreviewInteractiveVideo\n },\n group: 'manage-interactives'\n }),\n\n [VideoAction.PrintInteractive]: (ctx: GetActionsContext): VideoActionDefinition => {\n let button: boolean;\n let order = 0;\n if (VideoHelper.isInteractive(ctx.video)) {\n button = true;\n }\n\n if (button && ctx.location === VideoActionsLocation.PlayPage) {\n const isMobile = ctx.breakpoints.xs || ctx.breakpoints.sm;\n button = !isMobile;\n order = !isMobile ? order : 80;\n }\n\n return {\n enabled: true,\n types: [MasterType.Interactive],\n order,\n svgName: cvSvgLibrary.Print,\n name: getPhrase('printAsWorksheet'),\n button,\n showButtonText: ctx.location === VideoActionsLocation.PlayPage,\n appLink: {\n application: AppChannels.INTERACTIVES,\n action: Actions.Interactives.PRINT_QUESTIONS,\n args: [ctx.video.id]\n },\n analyticsOptions: {\n actionType: UserAction.Print,\n workflowPhase: WorkflowPhase.Start\n },\n group: 'manage-interactives'\n };\n },\n\n [VideoAction.CopyInteractive]: (ctx: GetActionsContext): VideoActionDefinition => ({\n enabled: !ctx.hasPermissions(PermissionName.StudentExperience),\n types: [MasterType.Interactive],\n order: 87,\n svgName: cvSvgLibrary.Copy,\n name: getPhrase('copyInteractive'),\n button: false,\n appLink: {\n application: AppChannels.INTERACTIVES,\n action: Actions.Interactives.COPY_INTERACTIVE,\n args: [ctx.video.id]\n },\n analyticsOptions: {\n actionType: UserAction.Copy,\n workflowPhase: WorkflowPhase.Start\n },\n group: 'manage-interactives'\n }),\n\n [VideoAction.EditInteractive]: (ctx: GetActionsContext): VideoActionDefinition => {\n let button = ctx.video.status === CurationStatus.Draft;\n let order = 70;\n\n if (ctx.location === VideoActionsLocation.PlayPage && ctx.breakpoints.xs) {\n button = false;\n order = -10;\n }\n\n return {\n enabled: !ctx.isPlugin && ctx.video.status === CurationStatus.Draft,\n types: [MasterType.Interactive],\n order,\n svgName: cvSvgLibrary.EditVideo,\n name: getPhrase('editInteractive'),\n tooltip: ctx.location !== VideoActionsLocation.PlayPage\n ? getPhrase('editInteractiveTooltip')\n : '',\n button,\n showButtonText: ctx.location === VideoActionsLocation.PlayPage && button,\n appLink: {\n application: AppChannels.INTERACTIVES,\n action: Actions.Interactives.EDIT_INTERACTIVE,\n args: [ctx.video.id]\n },\n analyticsOptions: {\n actionType: UserAction.Edit,\n workflowPhase: WorkflowPhase.Start\n },\n group: 'edit'\n };\n },\n\n [VideoAction.UnpublishInteractive]: (ctx: GetActionsContext): VideoActionDefinition => ({\n enabled: ctx.video._canUpdate?.value && ctx.video.status !== CurationStatus.Draft,\n types: [MasterType.Interactive],\n order: 70,\n svgName: cvSvgLibrary.EditVideo,\n name: getPhrase('editInteractive'),\n button: false,\n appLink: {\n application: AppChannels.INTERACTIVES,\n action: Actions.Interactives.UNPUBLISH_INTERACTIVE,\n args: [ctx.video.id]\n },\n analyticsOptions: {\n actionType: UserAction.Publish,\n descriptor: PublishDescriptor.Unpublish,\n workflowPhase: WorkflowPhase.Start\n },\n group: 'edit'\n })\n};\n\n","import { Flight } from 'libs/common/react/index';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { VideoActionsOptions } from 'libs/shared/context/VideoActionsContext';\nimport { LocalPermissionName, PermissionName } from 'libs/shared/enums/PermissionName';\nimport { VideoAction } from 'libs/shared/enums/VideoActions';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { LibraryRequests } from 'libs/shared/flight-requests/LibraryRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { useCurationStudio } from 'libs/shared/hooks/useCurationStudio';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useProducts } from 'libs/shared/hooks/UseProducts';\nimport { useVideoHydration, VideoHydrationType } from 'libs/shared/hooks/useVideohydration';\nimport { Config, CurrentUser, Library, VideoTypes } from 'libs/shared/interfaces';\nimport { RestrictionHelper } from 'libs/shared/utils/RestrictionHelper';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { usePluginHelper } from '../use-plugin-helper/usePluginHelper';\n\nimport { GetActionsContext, VideoActionsDefinitions } from './VideoActionDefinitions';\n\nexport enum VideoActionsLocation {\n PlayPage,\n VideoItem\n}\n\nconst RESTRICTED_ACTIONS = [\n VideoAction.Approve,\n VideoAction.ManageAccess\n];\n\nconst ARCHIVED_ACTIONS = [\n VideoAction.ViewResults\n];\n\nconst ACTIONS = [\n VideoAction.AddToPlaylist,\n VideoAction.Share,\n VideoAction.EditInteractive,\n VideoAction.ViewResults,\n VideoAction.PrintInteractive\n];\n\nconst LAZY_ACTIONS = [\n VideoAction.ManageAccess,\n VideoAction.AddToLibrary,\n VideoAction.ViewCurriculumLinks,\n VideoAction.ViewUsage,\n VideoAction.CreateClip,\n VideoAction.CreateInteractive,\n VideoAction.AddToMyVideos,\n VideoAction.EditVideo,\n VideoAction.EditClip,\n VideoAction.EditDetails,\n VideoAction.Delete,\n VideoAction.Download,\n VideoAction.OpenInCurationStudio,\n VideoAction.OpenInLibraryEditor,\n VideoAction.ViewOriginalVideo,\n VideoAction.CopyInteractive,\n VideoAction.UnpublishInteractive,\n VideoAction.PreviewQuestions\n];\n\nconst FETCH_MORE_ACTION_OPTION: ActionOptions = {\n lazyPlaceholder: true\n};\n\nfunction mapActionsLocationToAnalyticsLocation(actionsLocation: VideoActionsLocation) {\n switch (actionsLocation) {\n case VideoActionsLocation.PlayPage: return LocationContext.PlayPage;\n case VideoActionsLocation.VideoItem: return LocationContext.VideoListItem;\n }\n}\n\nfunction getActionOptions(actions: VideoAction[], ctx: GetActionsContext): ActionOptions[] {\n return actions.map(action => {\n const definition = VideoActionsDefinitions[action](ctx);\n\n // Action does not apply to this video type\n if (definition.types && !definition.types.some(type => type === ctx.video.typeId))\n return null;\n \n // Action is disabled\n if (!definition.enabled)\n return null;\n\n const variant = definition.variant || 'outline-dark';\n let className = '';\n\n if (definition.showButtonText)\n className = `btn btn-${variant} me-2`;\n else if (definition.variant)\n className = `text-${variant}`;\n\n const showLabel = (!definition.button || definition.showButtonText);\n\n return {\n order: definition.order,\n label: showLabel ? definition.name : null,\n appLink: definition.appLink,\n href: definition.href,\n onClick: definition.onClick,\n svgName: definition.svgName,\n className,\n button: definition.button,\n showBorder: definition.showBorder,\n tooltip: definition.tooltip ?? (!showLabel ? definition.name : null),\n analyticsData: definition.analyticsData || ctx.analyticsData,\n analyticsOptions: definition.analyticsOptions ? {\n ...(ctx.analyticsOptions ?? {}),\n ...(definition.analyticsOptions ?? {})\n } : null,\n openInNewTab: definition.openInNewTab,\n group: definition.group\n };\n }).filter(a => !!a);\n}\n\ninterface UseVideoActionsOptions {\n location: VideoActionsLocation;\n shareId?: string;\n}\n\nexport function useVideoActions(options: UseVideoActionsOptions) {\n const breakpoints = useBreakpoints();\n const { hasPermissions, hasLocalPermissions } = usePermissions();\n const { isPlugin } = usePluginHelper();\n const { isUserCurator } = useCurationStudio();\n const { hasProduct } = useProducts();\n \n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n const requestLibraries = Flight.useBasicFetch<Library[]>(\n hasPermissions(PermissionName.ViewLibraries) &&\n LibraryRequests.libraryRequestLibraries()\n );\n\n const { hydrate, isHydrated } = useVideoHydration({\n type: VideoHydrationType.PlayPage,\n shareId: options.shareId\n });\n\n function getVideoActions(video: VideoTypes, opts: VideoActionsOptions = {}) {\n if (!hasLocalPermissions(LocalPermissionName.UseVideoActions))\n return [];\n\n const { canConsume } = VideoHelper.getCanBeConsumed(video);\n\n if (!canConsume)\n return [];\n\n const context: GetActionsContext = {\n video,\n breakpoints,\n location: options.location,\n hasPermissions,\n hasProduct,\n requestLibraries: requestLibraries.data,\n config: config.data,\n currentUser: currentUser.data,\n isPlugin,\n isUserCurator,\n analyticsData: VideoHelper.getAnalyticsData(video, opts.analyticsData),\n analyticsOptions: {\n ...opts.analyticsOptions,\n entity: VideoHelper.getAnalyticsEntity(video),\n location: mapActionsLocationToAnalyticsLocation(options.location)\n }\n };\n\n if (VideoHelper.isVideoTypeArchived(video))\n return getActionOptions(ARCHIVED_ACTIONS, context);\n\n if (RestrictionHelper.hasCustomRestriction(video))\n return getActionOptions(RESTRICTED_ACTIONS, context);\n\n if (!isHydrated(video))\n return [ ...getActionOptions(ACTIONS, context), FETCH_MORE_ACTION_OPTION ];\n\n return getActionOptions([ ...ACTIONS, ...LAZY_ACTIONS ], context);\n }\n\n return {\n getVideoActions,\n fetchMoreActions: (video: VideoTypes) => hydrate(video)\n };\n}"],"names":["getPhrase","baseUrl","objectType","id","presentationId","baseManageUrl","baseExchangeUrl","href","getOpenInCurationStudioLabel","useCurationStudio","currentUser","userGroups","data","config","curatorGroups","Curator","openInCurationStudioLabel","isUserCurator","some","group","find","userGroup","name","getOpenInCurationStudioLink","curatorUrl","AnalyticsRouteHelper","getObjectUrl","object","analyticsWebUrl","relativeUrl","typeId","VideoAction","VideoHydrationType","VideoActionsLocation","LanguageService","VideoActionsDefinitions","Approve","ctx","enabled","hasPermissions","PermissionName","svgName","order","button","showButtonText","appLink","application","action","params","objectId","video","objectTypeId","analyticsOptions","actionType","descriptor","ManageAccess","hasCustomRestriction","RestrictionHelper","ViewResults","location","PlayPage","isMobile","breakpoints","xs","sm","status","CurationStatus","types","MasterType","openInNewTab","AddToPlaylist","VideoHelper","isIpad","md","showBorder","args","workflowPhase","Share","entityType","type","eventVersion","CreateClip","isPlugin","entity","analyticsData","CreateInteractive","AddToMyVideos","libraries","library","AddToLibrary","_canAddToLibrary","value","requestLibraries","length","EditVideo","_canUpdate","UrlHelper","cloudEditorUrl","product","ProductId","EditClip","EditDetails","ViewOriginalVideo","_parentClip","TextHelper","_parentVideo","ViewUsage","ViewCurriculumLinks","_hasCurriculumLinks","Download","_canDownload","OpenInCurationStudio","OpenInLibraryEditor","schoolLibraryIds","Set","filter","l","owner","toString","customerId","map","hasProduct","has","libraryEditorUrl","Delete","ids","variant","PreviewQuestions","VideoItem","PrintInteractive","CopyInteractive","EditInteractive","tooltip","UnpublishInteractive","RESTRICTED_ACTIONS","ARCHIVED_ACTIONS","ACTIONS","LAZY_ACTIONS","FETCH_MORE_ACTION_OPTION","lazyPlaceholder","mapActionsLocationToAnalyticsLocation","actionsLocation","getActionOptions","actions","definition","className","showLabel","label","onClick","a","useVideoActions","options","useBreakpoints","usePermissions","hasLocalPermissions","usePluginHelper","UserRequests","ConfigRequests","LibraryRequests","getResponse","fetch","getRequest","shareId","hydrate","request","key","shouldFetch","isHydrated","hasCompleted","useVideoHydration","getVideoActions","opts","canConsume","context","fetchMoreActions"],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[7223],{49935:(e,t,a)=>{a.d(t,{Oo:()=>u,b2:()=>d});var n=a(32735),r=a(36848),i=a(86764),c=a(3747),s=a(5859),o=a(35223),l=a(83914),m=function(e){var t=e.breadcrumb,a=t.name,i=t.appLink,c=t.active,s=e.withBackIcon;return n.createElement("li",{className:"breadcrumb-item".concat(c?" active":"")},c?n.createElement("strong",null,a):n.createElement(r.F,{appLink:i},s&&n.createElement(l.x,{svgName:o.vn.ChevronLeft,size:l.S.Small}),n.createElement("span",{className:s?"ms-2":""},a)))},u=function(e){var t=e.breadcrumbs,a=(0,c.a)(i.r.XS),r=null==t?void 0:t.length;return!r||a&&r<2?n.createElement(n.Fragment,null):a?n.createElement("nav",{"aria-label":"breadcrumb"},n.createElement("ol",{className:"breadcrumb m-0 p-0"},n.createElement(m,{breadcrumb:t[r-2],withBackIcon:!0}))):n.createElement("nav",{"aria-label":"breadcrumb"},n.createElement("ol",{className:"breadcrumb m-0 p-0"},t.map((function(e,t){return n.createElement(m,{key:t,breadcrumb:e})}))))},d=n.memo((function(e){var t=e.numItems,a=void 0===t?3:t;return(0,c.a)(i.r.XS)?n.createElement("div",{className:"partial-loading-background",style:{height:"1.3125rem",width:"6rem"}}):n.createElement("nav",{"aria-label":"breadcrumb"},n.createElement("ol",{className:"breadcrumb m-0 p-0"},s.u.getPartialLoadingItems({numItems:a}).map((function(e,t){var a=e.width;return n.createElement("li",{key:t,className:"breadcrumb-item"},n.createElement("span",{className:"d-inline-block partial-loading-background",style:{width:a},dangerouslySetInnerHTML:{__html:" "}}))}))))}))},38502:(e,t,a)=>{a.d(t,{r:()=>u});var n=a(32735),r=a(49985),i=a(36848),c=a(18559),s=a(11607),o=a(83914),l=a(87432);function m(e){return n.createElement(n.Fragment,null,!!e.tab.svgName&&n.createElement("div",{className:e.tab.name?"pe-1":""},n.createElement(o.x,{svgName:e.tab.svgName})),e.tab.name,"number"==typeof e.tab.count&&n.createElement("div",{className:"ps-2"},n.createElement(c.C,{type:c.g.Count,data:e.tab.count})))}function u(e){var t;return n.createElement("nav",{className:null!==(t=e.className)&&void 0!==t?t:"",ref:e.containerRef},n.createElement("ul",{className:"\n list-unstyled d-inline-block m-0 ".concat(l.Z.pillTabSelector,"\n ").concat(e.borderRadius?l.Z.radiusSmall:"","\n ").concat(e.listClassName,"\n ")},e.tabs.map((function(e,t){return n.createElement("li",{className:"\n p-0 ".concat(l.Z.tab," ").concat(e.active?"btn btn-dark":"btn btn-outline-dark","\n ").concat(e.name?l.Z.minWidth:""," ").concat(e.className,"\n "),key:t},e.appLink?n.createElement(i.F,{appLink:e.appLink,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,className:"\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ".concat(l.Z.tabLink,"\n ")},n.createElement(m,{tab:e})):n.createElement(s.L,{className:"\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset p-2 text-nowrap ".concat(l.Z.tabLink,"\n "),onClick:function(){return function(e){!e.active&&e.onSelect&&(e.onSelect(),e.analyticsData&&e.analyticsOptions&&r.k.logUserAction(e.analyticsData,e.analyticsOptions))}(e)}},n.createElement(m,{tab:e})))}))))}u.defaultProps={borderRadius:"lg"}},74696:(e,t,a)=>{a.d(t,{S:()=>l});var n=a(32735),r=a(68050),i=a(69111),c=a(9977),s=a(79967);const o={partialOptions:"Gufgq",partialName:"SicQQ",partialDescription:"dPGMq",partialThumbnail:"vZrnb",partialDragHandle:"iq73R"};function l(e){return n.createElement("div",{className:"mx-2"},Array(e.numVideos).fill(null).map((function(t,a){return n.createElement("div",{className:"d-flex",key:a},e.allowBulkActions&&n.createElement("div",{className:"form-check pe-3 pe-sm-2 mx-0 mx-md-2"}),n.createElement(m,Object.assign({},e)))})))}function m(e){var t=(0,s.k)(),a="sm"===c.O.getSize(t,"md"),l=e.withReordering&&!t.xs;return n.createElement(r.Z,{className:"".concat(a?"":"py-2"," flex-grow-1")},n.createElement(i.Z,Object.assign({},c.O.getThumbnailColumns(),{className:"flex-column align-items-flex-start ".concat(a?"pb-2 pe-1":"mb-1 pe-3 pe-md-2")}),n.createElement(r.Z,null,!!l&&n.createElement("div",{className:"d-flex align-items-center justify-content-center col-2"},n.createElement("div",{className:"partial-loading-background ".concat(o.partialDragHandle)})),n.createElement(i.Z,{xs:c.O.getThumbnailColSize(l)},n.createElement("div",{className:"partial-loading-background ".concat(a?"rounded":"rounded-3"," ").concat(o.partialThumbnail)})))),n.createElement(i.Z,Object.assign({},c.O.getDetailsColumns(),{className:a?"pb-2":"px-2"}),n.createElement("div",{className:"partial-loading-background mb-1 ".concat(o.partialName)}),n.createElement("div",{className:"partial-loading-background ".concat(o.partialDescription)})))}l.defaultProps={numVideos:15}},99705:(e,t,a)=>{var n,r;a.d(t,{b:()=>r}),function(e){e.AddToPlaylist="115005679748",e.EditSsoAccounts="8202508040345",e.LibraryEditor="360001974533",e.VideoAccess="360000153947",e.AddFromOnline="360011718234",e.UploadToLibraryEditor="360012069334",e.PBTErrorCodes="360012421153",e.ManuelReview="360020004534",e.LibraryReview="360000163788"}(n||(n={})),function(e){e.Integrations="4407268725529",e.Classrooms="4405362551833",e.MakeInteractive="4405370510873",e.EditSsoAccounts="8202605666073",e.UploadToLibraryEditor="10672936659865",e.AddFromLite="10671345281561",e.ManageSsoYearGroups="14691130889241",e.ContentReview="18525199576601",e.ContentPermissions="14692125209497",e.AccessSettings="22110291468057",e.ContentGuidelines="24133696186009",e.FoxtelFaq="24133519542169",e.ViviIntegration="23826297956377",e.AppleTvIntegration="25832373739929",e.RssFeed="32567445635097"}(r||(r={}))},5859:(e,t,a)=>{function n(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}a.d(t,{u:()=>i});var r={numItems:5,minWidth:50,maxWidth:100},i={getPartialLoadingItems:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},a=Object.assign(Object.assign({},r),t);return(e=Array(a.numItems),function(e){if(Array.isArray(e))return n(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return n(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)?n(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()).map((function(){return{width:"".concat(Math.max(Math.floor(Math.random()*a.maxWidth),a.minWidth),"px")}}))}}},23224:(e,t,a)=>{a.d(t,{j:()=>p});var n=a(32735),r=a(39202),i=a(23481),c=a(65858),s=a(38502),o=a(14070),l=a(97291),m="settings.restrictedVideosTabs",u=i.T.encloseNamespace(m),d={restrictedVideos:{application:l.O.SETTINGS,action:o.e.Settings.VIDEO_RESTRICTIONS},contentReview:{application:l.O.SETTINGS,action:o.e.Settings.CONTENT_REVIEW},contentReviewSettings:{application:l.O.SETTINGS,action:o.e.Settings.CONTENT_REVIEW_SETTINGS}};function p(e){return n.createElement("div",{className:"mb-3"},n.createElement(s.r,{tabs:[{name:u("restrictedVideos"),appLink:d.restrictedVideos,active:"restricted-videos"===e.active,analyticsData:{name:u("restrictedVideos"),url:r.C$.getHref(d.restrictedVideos)},analyticsOptions:{actionType:c.Vw.Click,entity:c.py.Url,location:c.LZ.MagicTabs}},{name:u("contentReview"),appLink:d.contentReview,active:"content-review"===e.active,analyticsData:{name:i.T.getPhrase(m,"contentReview"),url:r.C$.getHref(d.contentReview)},analyticsOptions:{actionType:c.Vw.Click,entity:c.py.Url,location:c.LZ.MagicTabs}},{name:u("contentReviewSettings"),appLink:d.contentReviewSettings,active:"content-review-settings"===e.active,analyticsData:{name:i.T.getPhrase(m,"contentReviewSettings"),url:r.C$.getHref(d.contentReviewSettings)},analyticsOptions:{actionType:c.Vw.Click,entity:c.py.Url,location:c.LZ.MagicTabs}}]}))}},81803:(e,t,a)=>{a.d(t,{d:()=>v});var n=a(32735),r=a(81886),i=a(23481),c=a(49935),s=a(22902),o=a(14070),l=a(97291),m=a(96368);function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=Array(t);a<t;a++)n[a]=e[a];return n}var d="settings.settingsLayout",p=function(e){var t=(0,s.T)().hasPermissions,a=(0,m.e)();if(e)return t(e);var n=r.Q.C$.getCurrentAppLink();return n.application!==l.O.SETTINGS||a.some((function(e){return e.modules.some((function(e){return"appLink"in e&&e.appLink.action===n.action}))}))};function v(e){var t,a=p(e.requiredPermissions);if(n.useEffect((function(){a||r.Q.C$.trigger({application:l.O.SETTINGS,action:o.e.Settings.HOME},{replace:!0})}),[a]),!a)return n.createElement(n.Fragment,null);var s,m=e.breadcrumbs.map((function(t,a){return{name:t,appLink:{application:l.O.SETTINGS,action:o.e.Settings.HOME},active:a===e.breadcrumbs.length-1}}));return n.createElement("div",{className:"px-3"},n.createElement("div",{className:"d-flex align-items-center justify-content-between"},n.createElement("h1",{className:"h2"},e.heading),null===(t=e.headingButton)||void 0===t?void 0:t.call(e)),n.createElement("div",{className:"pb-3"},n.createElement(c.Oo,{breadcrumbs:[{name:i.T.getPhrase(d,"settingsBreadcrumb"),appLink:{application:l.O.SETTINGS,action:o.e.Settings.HOME}}].concat((s=m,function(e){if(Array.isArray(e))return u(e)}(s)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(s)||function(e,t){if(e){if("string"==typeof e)return u(e,t);var a={}.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?u(e,t):void 0}}(s)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()))})),e.description&&n.createElement(n.Fragment,null,n.createElement("p",null,e.description),n.createElement("hr",null)),e.children)}},97383:(e,t,a)=>{a.r(t),a.d(t,{VideoRestrictionsView:()=>M});var n=a(32735),r=a(23481),i=a(20354),c=a(65858),s=a(36848),o=a(37395),l=a(83345),m=a(74696),u=a(13231),d=a(51365),p=a(16714),v=a(5345),b=a(1666),g=a(31949),E=a(22902),f=a(26361),y=a(14070),S=a(97291),N=a(21491),k=a(51855),T=a(27638),h=a(10741),I=a(22490),O=a(82431),L=a(23224),w=a(81803),C=a(23232),A=a(99705),R=a(12778),x=a(99742),j="settings.videoRestrictions",V=r.T.encloseNamespace(j);function P(){var e=R.o.getLiteArticle(A.b.ContentReview);return n.createElement(C.u,null,n.createElement(C.u.Image,{src:x.W.EmptyStates.ContentReview.RESTRICTED_VIDEOS}),n.createElement(C.u.Heading,null,n.createElement(l.x,{namespace:j,phrase:"emptyHeading"})),n.createElement(C.u.Cta,{href:e,text:V("emptyCta"),className:"btn btn-link info-link"}))}var G="settings.videoRestrictions",D=r.T.encloseNamespace(G),F={application:S.O.SETTINGS,action:y.e.Settings.CONTENT_PERMISSIONS};function M(e){var t,a,r,C,A,R=(0,T.u)(c.LZ.VideoThumbnail),x=R.setFavourite,j=R.canFavourite,V=(0,E.T)().hasPermissions,M=(0,k.G)().isPlugin,_=i.a.useBasicFetch(N.I.getRestrictedObjects([v.c.User],e.cursor)),Z=i.a.useBasicFetch(g.N.currentUser()),W=i.a.useBasicFetch(Z.data&&b.h.yearGroups(Z.data.customerId));return n.createElement(w.d,{heading:D("heading"),breadcrumbs:[D("breadcrumb")],requiredPermissions:p.C.ManageVideoAccess},n.createElement(L.j,{active:"restricted-videos"}),n.createElement("div",{className:"d-flex justify-content-between align-items-center"},n.createElement("p",{className:"mb-0"},n.createElement(l.x,{namespace:G,phrase:"description"})," ",n.createElement(s.F,{appLink:F,className:"info-link"},n.createElement(l.x,{namespace:G,phrase:"contentPermissions"})))),n.createElement("hr",null),!_.hasCompleted&&n.createElement(m.S,null),_.hasCompleted&&!(null===(a=null===(t=_.data)||void 0===t?void 0:t.data)||void 0===a?void 0:a.length)&&n.createElement(P,null),!!(null===(C=null===(r=_.data)||void 0===r?void 0:r.data)||void 0===C?void 0:C.length)&&n.createElement(n.Fragment,null,n.createElement(d.M.Provider,{value:{getVideoActions:function(e,t){return[{order:1,label:D("manageVideoAccess"),button:!0,className:"btn btn-outline-dark",appLink:{application:S.O.DEFAULT,action:y.e.Default.MANAGE_ACCCESS,params:{objectId:e.id,objectTypeId:e.typeId}},analyticsOptions:Object.assign(Object.assign({},t.analyticsOptions),{actionType:c.Vw.SetAccess,workflowPhase:c.eu.Start}),analyticsData:t.analyticsData}]}}},n.createElement(u.E4,{videos:_.data.data.filter((function(e){return!!f.l.getRestrictionByType(e,v.c.User)})),yearGroups:W.data,getVideoAppLink:I.W.getAppLink,getSubTextAppLink:function(e){return O.j.getSeriesAppLink(e.series)},setFavourite:x,canFavourite:j,hasPermissions:V,presentationAudiences:[],getPreviewQuestionsAppLink:function(e){return h.j.getPreviewQuestionsAppLink(e)},isPlugin:M,getClassroomGuideAppLink:I.W.getClassroomGuideAppLink,getInteractiveGuidanceAppLink:I.W.getInteractiveGuidanceAppLink,getResourceGuidanceAppLink:I.W.getResourceGuidanceAppLink})),(null===(A=_.data.pagination)||void 0===A?void 0:A.cursors)&&n.createElement("div",{className:"clearfix"},n.createElement(o.t,{cursors:_.data.pagination.cursors,appLink:{application:S.O.SETTINGS,action:y.e.Settings.VIDEO_RESTRICTIONS},buttonVariant:"outline-dark",className:"py-2 float-end"}))))}},21491:(e,t,a)=>{a.d(t,{I:()=>c});var n=a(99940),r=a(97395),i=a(62803),c={getRestrictions:function(e){return{key:"restrictions:".concat(e),url:r._.urlBuilder("{gateway}/v1/objects/restrictions",{id:e})}},addRestriction:function(e){return{type:n.k.POST,key:"restrictions:".concat(e.objectTypeId,":").concat(e.objectId,":add"),url:"{gateway}/v1/restrictions",data:[e],invalidationKeys:["restrictions"]}},deleteRestrictions:function(e){return{url:r._.urlBuilder("{gateway}/v1/restrictions",{objectId:e}),key:"restrictions:delete",type:n.k.DELETE,invalidationKeys:["restrictions"]}},getRestrictedObjects:function(e,t){var a={type:e,"query.video":i.v.VIDEO_COLLECTION,"query.interactive":i.v.INTERACTIVE_COLLECTION,"query.clip":i.v.CLIP_COLLECTION};return t&&(a.cursor=t),{url:r._.urlBuilder("{gateway}/v1/restrictions/objects",a),key:"restrictions:objects:".concat(e.sort().join(","),":").concat(t)}},approveAll:function(){return{url:"{gateway}/v1/library-reviews/restrictions",key:"restrictions:approve:all",type:n.k.DELETE}}}},87432:(e,t,a)=>{a.d(t,{Z:()=>n});const n={pillTabSelector:"Hdi6o",tab:"RvNxr",minWidth:"GHSz9",radiusSmall:"VhJJa",tabLink:"WFyvo"}},68050:(e,t,a)=>{a.d(t,{Z:()=>l});var n=a(95685),r=a.n(n),i=a(32735),c=a(46304),s=a(74512);const o=i.forwardRef((({bsPrefix:e,className:t,as:a="div",...n},i)=>{const o=(0,c.vE)(e,"row"),l=(0,c.pi)(),m=(0,c.zG)(),u=`${o}-cols`,d=[];return l.forEach((e=>{const t=n[e];let a;delete n[e],null!=t&&"object"==typeof t?({cols:a}=t):a=t;const r=e!==m?`-${e}`:"";null!=a&&d.push(`${u}${r}-${a}`)})),(0,s.jsx)(a,{ref:i,...n,className:r()(t,o,...d)})}));o.displayName="Row";const l=o}}]);
|
|
2
|
-
//# sourceMappingURL=7223-
|
|
1
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[7223],{49935:(e,t,a)=>{a.d(t,{Oo:()=>u,b2:()=>d});var n=a(32735),r=a(36848),i=a(86764),c=a(3747),s=a(5859),o=a(35223),l=a(83914),m=function(e){var t=e.breadcrumb,a=t.name,i=t.appLink,c=t.active,s=e.withBackIcon;return n.createElement("li",{className:"breadcrumb-item".concat(c?" active":"")},c?n.createElement("strong",null,a):n.createElement(r.F,{appLink:i},s&&n.createElement(l.x,{svgName:o.vn.ChevronLeft,size:l.S.Small}),n.createElement("span",{className:s?"ms-2":""},a)))},u=function(e){var t=e.breadcrumbs,a=(0,c.a)(i.r.XS),r=null==t?void 0:t.length;return!r||a&&r<2?n.createElement(n.Fragment,null):a?n.createElement("nav",{"aria-label":"breadcrumb"},n.createElement("ol",{className:"breadcrumb m-0 p-0"},n.createElement(m,{breadcrumb:t[r-2],withBackIcon:!0}))):n.createElement("nav",{"aria-label":"breadcrumb"},n.createElement("ol",{className:"breadcrumb m-0 p-0"},t.map((function(e,t){return n.createElement(m,{key:t,breadcrumb:e})}))))},d=n.memo((function(e){var t=e.numItems,a=void 0===t?3:t;return(0,c.a)(i.r.XS)?n.createElement("div",{className:"partial-loading-background",style:{height:"1.3125rem",width:"6rem"}}):n.createElement("nav",{"aria-label":"breadcrumb"},n.createElement("ol",{className:"breadcrumb m-0 p-0"},s.u.getPartialLoadingItems({numItems:a}).map((function(e,t){var a=e.width;return n.createElement("li",{key:t,className:"breadcrumb-item"},n.createElement("span",{className:"d-inline-block partial-loading-background",style:{width:a},dangerouslySetInnerHTML:{__html:" "}}))}))))}))},38502:(e,t,a)=>{a.d(t,{r:()=>u});var n=a(32735),r=a(49985),i=a(36848),c=a(18559),s=a(11607),o=a(83914),l=a(87432);function m(e){return n.createElement(n.Fragment,null,!!e.tab.svgName&&n.createElement("div",{className:e.tab.name?"pe-1":""},n.createElement(o.x,{svgName:e.tab.svgName})),e.tab.name,"number"==typeof e.tab.count&&n.createElement("div",{className:"ps-2"},n.createElement(c.C,{type:c.g.Count,data:e.tab.count})))}function u(e){var t;return n.createElement("nav",{className:null!==(t=e.className)&&void 0!==t?t:"",ref:e.containerRef},n.createElement("ul",{className:"\n list-unstyled d-inline-block m-0 ".concat(l.Z.pillTabSelector,"\n ").concat(e.borderRadius?l.Z.radiusSmall:"","\n ").concat(e.listClassName,"\n ")},e.tabs.map((function(e,t){return n.createElement("li",{className:"\n p-0 ".concat(l.Z.tab," ").concat(e.active?"btn btn-dark":"btn btn-outline-dark","\n ").concat(e.name?l.Z.minWidth:""," ").concat(e.className,"\n "),key:t},e.appLink?n.createElement(i.F,{appLink:e.appLink,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,className:"\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ".concat(l.Z.tabLink,"\n ")},n.createElement(m,{tab:e})):n.createElement(s.L,{className:"\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset p-2 text-nowrap ".concat(l.Z.tabLink,"\n "),onClick:function(){return function(e){!e.active&&e.onSelect&&(e.onSelect(),e.analyticsData&&e.analyticsOptions&&r.k.logUserAction(e.analyticsData,e.analyticsOptions))}(e)}},n.createElement(m,{tab:e})))}))))}u.defaultProps={borderRadius:"lg"}},74696:(e,t,a)=>{a.d(t,{S:()=>l});var n=a(32735),r=a(68050),i=a(69111),c=a(9977),s=a(79967);const o={partialOptions:"Gufgq",partialName:"SicQQ",partialDescription:"dPGMq",partialThumbnail:"vZrnb",partialDragHandle:"iq73R"};function l(e){return n.createElement("div",{className:"mx-2"},Array(e.numVideos).fill(null).map((function(t,a){return n.createElement("div",{className:"d-flex",key:a},e.allowBulkActions&&n.createElement("div",{className:"form-check pe-3 pe-sm-2 mx-0 mx-md-2"}),n.createElement(m,Object.assign({},e)))})))}function m(e){var t=(0,s.k)(),a="sm"===c.O.getSize(t,"md"),l=e.withReordering&&!t.xs;return n.createElement(r.Z,{className:"".concat(a?"":"py-2"," flex-grow-1")},n.createElement(i.Z,Object.assign({},c.O.getThumbnailColumns(),{className:"flex-column align-items-flex-start ".concat(a?"pb-2 pe-1":"mb-1 pe-3 pe-md-2")}),n.createElement(r.Z,null,!!l&&n.createElement("div",{className:"d-flex align-items-center justify-content-center col-2"},n.createElement("div",{className:"partial-loading-background ".concat(o.partialDragHandle)})),n.createElement(i.Z,{xs:c.O.getThumbnailColSize(l)},n.createElement("div",{className:"partial-loading-background ".concat(a?"rounded":"rounded-3"," ").concat(o.partialThumbnail)})))),n.createElement(i.Z,Object.assign({},c.O.getDetailsColumns(),{className:a?"pb-2":"px-2"}),n.createElement("div",{className:"partial-loading-background mb-1 ".concat(o.partialName)}),n.createElement("div",{className:"partial-loading-background ".concat(o.partialDescription)})))}l.defaultProps={numVideos:15}},99705:(e,t,a)=>{var n,r;a.d(t,{b:()=>r}),function(e){e.AddToPlaylist="115005679748",e.EditSsoAccounts="8202508040345",e.LibraryEditor="360001974533",e.VideoAccess="360000153947",e.AddFromOnline="360011718234",e.UploadToLibraryEditor="360012069334",e.PBTErrorCodes="360012421153",e.ManuelReview="360020004534",e.LibraryReview="360000163788"}(n||(n={})),function(e){e.Integrations="4407268725529",e.Classrooms="4405362551833",e.MakeInteractive="4405370510873",e.EditSsoAccounts="8202605666073",e.UploadToLibraryEditor="10672936659865",e.AddFromLite="10671345281561",e.ManageSsoYearGroups="14691130889241",e.ContentReview="18525199576601",e.ContentPermissions="14692125209497",e.AccessSettings="22110291468057",e.ContentGuidelines="24133696186009",e.FoxtelFaq="24133519542169",e.ViviIntegration="23826297956377",e.AppleTvIntegration="25832373739929",e.RssFeed="32567445635097"}(r||(r={}))},5859:(e,t,a)=>{function n(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}a.d(t,{u:()=>i});var r={numItems:5,minWidth:50,maxWidth:100},i={getPartialLoadingItems:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},a=Object.assign(Object.assign({},r),t);return(e=Array(a.numItems),function(e){if(Array.isArray(e))return n(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return n(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)?n(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()).map((function(){return{width:"".concat(Math.max(Math.floor(Math.random()*a.maxWidth),a.minWidth),"px")}}))}}},23224:(e,t,a)=>{a.d(t,{j:()=>p});var n=a(32735),r=a(39202),i=a(23481),c=a(65858),s=a(38502),o=a(14070),l=a(97291),m="settings.restrictedVideosTabs",u=i.T.encloseNamespace(m),d={restrictedVideos:{application:l.O.SETTINGS,action:o.e.Settings.VIDEO_RESTRICTIONS},contentReview:{application:l.O.SETTINGS,action:o.e.Settings.CONTENT_REVIEW},contentReviewSettings:{application:l.O.SETTINGS,action:o.e.Settings.CONTENT_REVIEW_SETTINGS}};function p(e){return n.createElement("div",{className:"mb-3"},n.createElement(s.r,{tabs:[{name:u("restrictedVideos"),appLink:d.restrictedVideos,active:"restricted-videos"===e.active,analyticsData:{name:u("restrictedVideos"),url:r.C$.getHref(d.restrictedVideos)},analyticsOptions:{actionType:c.Vw.Click,entity:c.py.Url,location:c.LZ.MagicTabs}},{name:u("contentReview"),appLink:d.contentReview,active:"content-review"===e.active,analyticsData:{name:i.T.getPhrase(m,"contentReview"),url:r.C$.getHref(d.contentReview)},analyticsOptions:{actionType:c.Vw.Click,entity:c.py.Url,location:c.LZ.MagicTabs}},{name:u("contentReviewSettings"),appLink:d.contentReviewSettings,active:"content-review-settings"===e.active,analyticsData:{name:i.T.getPhrase(m,"contentReviewSettings"),url:r.C$.getHref(d.contentReviewSettings)},analyticsOptions:{actionType:c.Vw.Click,entity:c.py.Url,location:c.LZ.MagicTabs}}]}))}},81803:(e,t,a)=>{a.d(t,{d:()=>v});var n=a(32735),r=a(81886),i=a(23481),c=a(49935),s=a(22902),o=a(14070),l=a(97291),m=a(96368);function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=Array(t);a<t;a++)n[a]=e[a];return n}var d="settings.settingsLayout",p=function(e){var t=(0,s.T)().hasPermissions,a=(0,m.e)();if(e)return t(e);var n=r.Q.C$.getCurrentAppLink();return n.application!==l.O.SETTINGS||a.some((function(e){return e.modules.some((function(e){return"appLink"in e&&e.appLink.action===n.action}))}))};function v(e){var t,a=p(e.requiredPermissions);if(n.useEffect((function(){a||r.Q.C$.trigger({application:l.O.SETTINGS,action:o.e.Settings.HOME},{replace:!0})}),[a]),!a)return n.createElement(n.Fragment,null);var s,m=e.breadcrumbs.map((function(t,a){return{name:t,appLink:{application:l.O.SETTINGS,action:o.e.Settings.HOME},active:a===e.breadcrumbs.length-1}}));return n.createElement("div",{className:"px-3"},n.createElement("div",{className:"d-flex align-items-center justify-content-between"},n.createElement("h1",{className:"h2"},e.heading),null===(t=e.headingButton)||void 0===t?void 0:t.call(e)),n.createElement("div",{className:"pb-3"},n.createElement(c.Oo,{breadcrumbs:[{name:i.T.getPhrase(d,"settingsBreadcrumb"),appLink:{application:l.O.SETTINGS,action:o.e.Settings.HOME}}].concat((s=m,function(e){if(Array.isArray(e))return u(e)}(s)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(s)||function(e,t){if(e){if("string"==typeof e)return u(e,t);var a={}.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?u(e,t):void 0}}(s)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()))})),e.description&&n.createElement(n.Fragment,null,n.createElement("p",null,e.description),n.createElement("hr",null)),e.children)}},97383:(e,t,a)=>{a.r(t),a.d(t,{VideoRestrictionsView:()=>M});var n=a(32735),r=a(23481),i=a(20354),c=a(65858),s=a(36848),o=a(37395),l=a(83345),m=a(74696),u=a(13231),d=a(51365),p=a(16714),v=a(5345),b=a(1666),g=a(31949),E=a(22902),f=a(26361),y=a(14070),S=a(97291),N=a(21491),k=a(51855),T=a(27638),h=a(10741),I=a(22490),O=a(82431),w=a(23224),L=a(81803),C=a(23232),A=a(99705),R=a(12778),x=a(99742),j="settings.videoRestrictions",V=r.T.encloseNamespace(j);function P(){var e=R.o.getLiteArticle(A.b.ContentReview);return n.createElement(C.u,null,n.createElement(C.u.Image,{src:x.W.EmptyStates.ContentReview.RESTRICTED_VIDEOS}),n.createElement(C.u.Heading,null,n.createElement(l.x,{namespace:j,phrase:"emptyHeading"})),n.createElement(C.u.Cta,{href:e,text:V("emptyCta"),className:"btn btn-link info-link"}))}var G="settings.videoRestrictions",D=r.T.encloseNamespace(G),F={application:S.O.SETTINGS,action:y.e.Settings.CONTENT_PERMISSIONS};function M(e){var t,a,r,C,A,R=(0,T.u)(c.LZ.VideoThumbnail),x=R.setFavourite,j=R.canFavourite,V=(0,E.T)().hasPermissions,M=(0,k.G)().isPlugin,_=i.a.useBasicFetch(N.I.getRestrictedObjects([v.c.User],e.cursor)),Z=i.a.useBasicFetch(g.N.currentUser()),W=i.a.useBasicFetch(Z.data&&b.h.yearGroups(Z.data.customerId));return n.createElement(L.d,{heading:D("heading"),breadcrumbs:[D("breadcrumb")],requiredPermissions:p.C.ManageVideoAccess},n.createElement(w.j,{active:"restricted-videos"}),n.createElement("div",{className:"d-flex justify-content-between align-items-center"},n.createElement("p",{className:"mb-0"},n.createElement(l.x,{namespace:G,phrase:"description"})," ",n.createElement(s.F,{appLink:F,className:"info-link"},n.createElement(l.x,{namespace:G,phrase:"contentPermissions"})))),n.createElement("hr",null),!_.hasCompleted&&n.createElement(m.S,null),_.hasCompleted&&!(null===(a=null===(t=_.data)||void 0===t?void 0:t.data)||void 0===a?void 0:a.length)&&n.createElement(P,null),!!(null===(C=null===(r=_.data)||void 0===r?void 0:r.data)||void 0===C?void 0:C.length)&&n.createElement(n.Fragment,null,n.createElement(d.M.Provider,{value:{getVideoActions:function(e,t){return[{order:1,label:D("manageVideoAccess"),button:!0,className:"btn btn-outline-dark text-nowrap",appLink:{application:S.O.DEFAULT,action:y.e.Default.MANAGE_ACCCESS,params:{objectId:e.id,objectTypeId:e.typeId}},analyticsOptions:Object.assign(Object.assign({},t.analyticsOptions),{actionType:c.Vw.SetAccess,workflowPhase:c.eu.Start}),analyticsData:t.analyticsData}]}}},n.createElement(u.E4,{videos:_.data.data.filter((function(e){return!!f.l.getRestrictionByType(e,v.c.User)})),yearGroups:W.data,getVideoAppLink:I.W.getAppLink,getSubTextAppLink:function(e){return O.j.getSeriesAppLink(e.series)},setFavourite:x,canFavourite:j,hasPermissions:V,presentationAudiences:[],getPreviewQuestionsAppLink:function(e){return h.j.getPreviewQuestionsAppLink(e)},isPlugin:M,getClassroomGuideAppLink:I.W.getClassroomGuideAppLink,getInteractiveGuidanceAppLink:I.W.getInteractiveGuidanceAppLink,getResourceGuidanceAppLink:I.W.getResourceGuidanceAppLink})),(null===(A=_.data.pagination)||void 0===A?void 0:A.cursors)&&n.createElement("div",{className:"clearfix"},n.createElement(o.t,{cursors:_.data.pagination.cursors,appLink:{application:S.O.SETTINGS,action:y.e.Settings.VIDEO_RESTRICTIONS},buttonVariant:"outline-dark",className:"py-2 float-end"}))))}},21491:(e,t,a)=>{a.d(t,{I:()=>c});var n=a(99940),r=a(97395),i=a(62803),c={getRestrictions:function(e){return{key:"restrictions:".concat(e),url:r._.urlBuilder("{gateway}/v1/objects/restrictions",{id:e})}},addRestriction:function(e){return{type:n.k.POST,key:"restrictions:".concat(e.objectTypeId,":").concat(e.objectId,":add"),url:"{gateway}/v1/restrictions",data:[e],invalidationKeys:["restrictions"]}},deleteRestrictions:function(e){return{url:r._.urlBuilder("{gateway}/v1/restrictions",{objectId:e}),key:"restrictions:delete",type:n.k.DELETE,invalidationKeys:["restrictions"]}},getRestrictedObjects:function(e,t){var a={type:e,"query.video":i.v.VIDEO_COLLECTION,"query.interactive":i.v.INTERACTIVE_COLLECTION,"query.clip":i.v.CLIP_COLLECTION};return t&&(a.cursor=t),{url:r._.urlBuilder("{gateway}/v1/restrictions/objects",a),key:"restrictions:objects:".concat(e.sort().join(","),":").concat(t)}},approveAll:function(){return{url:"{gateway}/v1/library-reviews/restrictions",key:"restrictions:approve:all",type:n.k.DELETE}}}},87432:(e,t,a)=>{a.d(t,{Z:()=>n});const n={pillTabSelector:"Hdi6o",tab:"RvNxr",minWidth:"GHSz9",radiusSmall:"VhJJa",tabLink:"WFyvo"}},68050:(e,t,a)=>{a.d(t,{Z:()=>l});var n=a(95685),r=a.n(n),i=a(32735),c=a(46304),s=a(74512);const o=i.forwardRef((({bsPrefix:e,className:t,as:a="div",...n},i)=>{const o=(0,c.vE)(e,"row"),l=(0,c.pi)(),m=(0,c.zG)(),u=`${o}-cols`,d=[];return l.forEach((e=>{const t=n[e];let a;delete n[e],null!=t&&"object"==typeof t?({cols:a}=t):a=t;const r=e!==m?`-${e}`:"";null!=a&&d.push(`${u}${r}-${a}`)})),(0,s.jsx)(a,{ref:i,...n,className:r()(t,o,...d)})}));o.displayName="Row";const l=o}}]);
|
|
2
|
+
//# sourceMappingURL=7223-135cc7d675-lite.chunk.js.map
|
package/dist/scripts/{7223-8af7b524a8-lite.chunk.js.map → 7223-135cc7d675-lite.chunk.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scripts/7223-8af7b524a8-lite.chunk.js","mappings":"6NAuBaA,EAAiB,SAAH,WAAMC,WAAcC,EAAI,EAAJA,KAAMC,EAAO,EAAPA,QAASC,EAAM,EAANA,OAAUC,EAAY,EAAZA,aAAY,OAClF,sBAAIC,UAAS,yBAAoBF,EAAS,UAAY,KACnDA,EACG,8BAASF,GACT,gBAAC,IAAO,CAACC,QAASA,GACjBE,GAAgB,gBAAC,IAAY,CAACE,QAAS,iBAA0BC,KAAM,EAAAC,EAAA,QACxE,wBAAMH,UAAWD,EAAe,OAAS,IAAKH,IAG/C,EAOMQ,EAAc,SAAH,GAAyC,IAAnCC,EAAW,EAAXA,YACtBC,GAAW,OAAc,QAEzBC,EAASF,aAAW,EAAXA,EAAaE,OAE5B,OAAKA,GAAWD,GAAYC,EAAS,EAC5B,iCAELD,EAEA,oCAAgB,cACd,sBAAIN,UAAU,sBACZ,gBAACN,EAAc,CAACC,WAAYU,EAAYE,EAAS,GAAIR,cAAY,MAMvE,oCAAgB,cACd,sBAAIC,UAAU,sBACXK,EAAYG,KAAI,SAACC,EAAGC,GAAG,OAAK,gBAAChB,EAAc,CAACiB,IAAKD,EAAKf,WAAYc,GAAK,KAIhF,EAEaG,EAAqB,QAAW,YAAiD,QAAtCC,SAAAA,OAAQ,IAAG,IAAC,EAGlE,OAFiB,OAAc,QAI3B,uBAAKb,UAAU,6BAA6Bc,MAAO,CAAEC,OAAQ,YAAaC,MAAO,UAKnF,oCAAgB,cACd,sBAAIhB,UAAU,sBACX,2BAA4C,CAAEa,SAAAA,IAAYL,KAAI,WAAYE,GAAG,IAAZM,EAAK,EAALA,MAAK,OACrE,sBAAIL,IAAKD,EAAKV,UAAU,mBACtB,wBAAMA,UAAU,4CAA4Cc,MAAO,CAAEE,MAAAA,GAASC,wBAAyB,CAAEC,OAAQ,WAC9G,KAKf,G,oHCjEA,SAASC,EAAYC,GACnB,OACE,kCACKA,EAAMC,IAAIpB,SACX,uBAAKD,UAAWoB,EAAMC,IAAIzB,KAAO,OAAS,IACxC,gBAAC,IAAY,CAACK,QAASmB,EAAMC,IAAIpB,WAIpCmB,EAAMC,IAAIzB,KAEmB,iBAArBwB,EAAMC,IAAIC,OACjB,uBAAKtB,UAAU,QACb,gBAAC,IAAK,CAACuB,KAAM,UAAiBC,KAAMJ,EAAMC,IAAIC,SAKxD,CA8BM,SAAUG,EAAgBL,G,MAW9B,OACE,uBAAKpB,UAA0B,QAAf,EAAAoB,EAAMpB,iBAAS,QAAI,GAAI0B,IAAKN,EAAMO,cAChD,sBAAI3B,UAAS,qDACwB,oBAAsB,qBACvDoB,EAAMQ,aAAe,gBAAqB,GAAE,qBAC5CR,EAAMS,cAAa,aAEpBT,EAAMU,KAAKtB,KAAI,SAACa,EAAKU,GACpB,OACE,sBACE/B,UAAS,gCACD,QAAU,YAAIqB,EAAIvB,OAAS,eAAiB,uBAAsB,6BACtEuB,EAAIzB,KAAO,aAAkB,GAAE,YAAIyB,EAAIrB,UAAS,oBAEpDW,IAAKoB,GAEJV,EAAIxB,QACH,gBAAC,IAAO,CACNA,QAASwB,EAAIxB,QACbmC,cAAeX,EAAIW,cACnBC,iBAAkBZ,EAAIY,iBACtBjC,UAAS,sKAE4C,YAAc,yBAGnE,gBAACmB,EAAW,CAACE,IAAKA,KAGpB,gBAAC,IAAS,CACRrB,UAAS,qKAE2C,YAAc,wBAElEkC,QAAS,kBA5CzB,SAAqBb,IACfA,EAAIvB,QAAWuB,EAAIc,WAGvBd,EAAIc,WAEAd,EAAIW,eAAiBX,EAAIY,kBAC3B,kBAA8BZ,EAAIW,cAAeX,EAAIY,kBACzD,CAoC+BG,CAAYf,EAAI,GAE/B,gBAACF,EAAW,CAACE,IAAKA,KAK5B,KAIR,CA5DAI,EAAgBY,aAAe,CAC7BT,aAAc,K,6FChEhB,SAAgB,eAAiB,QAAQ,YAAc,QAAQ,mBAAqB,QAAQ,iBAAmB,QAAQ,kBAAoB,SCiBrI,SAAUU,EAAiBlB,GAC/B,OACE,uBAAKpB,UAAU,QACZuC,MAAMnB,EAAMoB,WAAWC,KAAK,MAAMjC,KAAI,SAACkC,EAAGC,GAAC,OAC1C,uBAAK3C,UAAU,SAASW,IAAKgC,GAC1BvB,EAAMwB,kBAAoB,uBAAK5C,UAAU,yCAC1C,gBAAC6C,EAAgB,iBAAKzB,IAClB,IAId,CAEM,SAAUyB,EAAiBzB,GAC/B,IAAM0B,GAAc,EAAAC,EAAA,KAGdC,EAAmB,OADZC,EAAA,UAAwBH,EAAa,MAG5CI,EAAiB9B,EAAM+B,iBAAmBL,EAAYM,GAE5D,OACE,gBAACC,EAAA,EAAG,CAACrD,UAAS,UAAKgD,EAAU,GAAK,OAAM,iBACtC,gBAACM,EAAA,EAAG,iBAAKL,EAAA,wBAAqC,CAAEjD,UAAS,6CAAwCgD,EAAU,YAAc,uBACvH,gBAACK,EAAA,EAAG,OACCH,GACD,uBAAKlD,UAAU,0DACb,uBAAKA,UAAS,qCAAgC,wBAGlD,gBAACsD,EAAA,EAAG,CAACF,GAAIH,EAAA,sBAAoCC,IAC3C,uBAAKlD,UAAS,qCAAgCgD,EAAU,UAAY,YAAW,YAAI,yBAIzF,gBAACM,EAAA,EAAG,iBAAKL,EAAA,sBAAmC,CAAEjD,UAAWgD,EAAU,OAAS,SAC1E,uBAAKhD,UAAS,0CAAqC,iBACnD,uBAAKA,UAAS,qCAAgC,yBAItD,CA7CAsC,EAAiBD,aAAe,CAC9BG,UAAW,G,kBCbb,IAAYe,EAcAC,E,iBAdZ,SAAYD,GACV,+BACA,kCAGA,+BACA,6BACA,+BACA,uCACA,+BACA,8BACA,8BACD,CAZD,CAAYA,IAAAA,EAAoB,KAchC,SAAYC,GACV,+BACA,6BACA,kCACA,kCACA,yCACA,+BACA,uCACA,iCACA,sCACA,kCACA,qCACA,6BACA,mCACA,sCACA,0BACD,CAhBD,CAAYA,IAAAA,EAAkB,I,wIChB9B,IAAMC,EAAyD,CAC7D5C,SAAU,EACV6C,SAAU,GACVC,SAAU,KAaCC,EAAuB,CAClCC,uBAAsB,WAAoC,I,EAAnCC,EAAA,uDAAiC,CAAC,EACjDC,EAAO,OAAH,wBACLN,GACAK,GAKL,O,EAAWvB,MAAMwB,EAAKlD,U,omBAAWL,KAAI,iBAAO,CAAEQ,MAAO,GAAF,OAFhBgD,KAAKC,IAAID,KAAKE,MAAMF,KAAKG,SAAWJ,EAAKJ,UAAWI,EAAKL,UAEd,MAAM,GACtF,E,oHCdIU,EAAY,gCACZC,EAAY,qBAAiCD,GAE7CE,EAAW,CACfC,iBAAkB,CAChBC,YAAa,aACbC,OAAQ,iCAEVC,cAAe,CACbF,YAAa,aACbC,OAAQ,6BAEVE,sBAAuB,CACrBH,YAAa,aACbC,OAAQ,uCAQN,SAAUG,EAAgBxD,GAC9B,OACE,uBAAKpB,UAAU,QACb,gBAAC,IAAe,CACd8B,KAAM,CAAC,CACLlC,KAAMyE,EAAU,oBAChBxE,QAASyE,EAASC,iBAClBzE,OAAyB,sBAAjBsB,EAAMtB,OACdkC,cAAe,CACbpC,KAAMyE,EAAU,oBAChBQ,IAAK,aAAsBP,EAASC,mBAEtCtC,iBAAkB,CAChB6C,WAAY,WACZC,OAAQ,SACRC,SAAU,iBAEX,CACDpF,KAAMyE,EAAU,iBAChBxE,QAASyE,EAASI,cAClB5E,OAAyB,mBAAjBsB,EAAMtB,OACdkC,cAAe,CACbpC,KAAM,cAA0BwE,EAAW,iBAC3CS,IAAK,aAAsBP,EAASI,gBAEtCzC,iBAAkB,CAChB6C,WAAY,WACZC,OAAQ,SACRC,SAAU,iBAEX,CACDpF,KAAMyE,EAAU,yBAChBxE,QAASyE,EAASK,sBAClB7E,OAAyB,4BAAjBsB,EAAMtB,OACdkC,cAAe,CACbpC,KAAM,cAA0BwE,EAAW,yBAC3CS,IAAK,aAAsBP,EAASK,wBAEtC1C,iBAAkB,CAChB6C,WAAY,WACZC,OAAQ,SACRC,SAAU,oBAMtB,C,qOCnEA,IAAMZ,EAAY,0BAKLa,EAAuB,SAACC,GACnC,IAAQC,GAAmB,SAAnBA,eACFC,GAAiB,SAOvB,GAAIF,EACF,OAAOC,EAAeD,GAExB,IAAMG,EAAe,2BAOrB,OAAIA,EAAab,cAAgB,cAG1BY,EAAeE,MAAK,SAAAC,GACzB,OAAOA,EAAMC,QAAQF,MAAK,SAAAG,GACxB,MAAI,YAAaA,GACRA,EAAe5F,QAAQ4E,SAAWY,EAAaZ,MAI1D,GACF,GACF,EAUM,SAAUiB,EAAetE,G,MACvBuE,EAAYV,EAAqB7D,EAAM8D,qBAW7C,GATA,aAAgB,WACTS,GACH,eAA2B,CACzBnB,YAAa,aACbC,OAAQ,mBACP,CAAEmB,SAAS,GAElB,GAAG,CAACD,KAECA,EACH,OAAO,iCAET,I,EAAMtF,EAAce,EAAMf,YAAYG,KAAI,SAACZ,EAAM+C,GAAC,MAAM,CACtD/C,KAAAA,EACAC,QAAS,CACP2E,YAAa,aACbC,OAAQ,mBAEV3E,OAAQ6C,IAAMvB,EAAMf,YAAYE,OAAS,EAC1C,IAED,OACE,uBAAKP,UAAU,QACb,uBAAKA,UAAU,qDACb,sBAAIA,UAAU,MAAMoB,EAAMyE,SACN,QAAnB,EAAAzE,EAAM0E,qBAAa,wBAEtB,uBAAK9F,UAAU,QACb,gBAAC,KAAW,CACVK,YAAW,CACT,CACET,KAAM,cAA0BwE,EAAW,sBAC3CvE,QAAS,CACP2E,YAAa,aACbC,OAAQ,qBAEX,Q,EACEpE,E,wmBAIRe,EAAM2E,aACL,gCACE,yBAAI3E,EAAM2E,aACV,4BAIH3E,EAAM4E,SAGb,C,0YCvGM5B,EAAY,6BACZC,EAAY4B,EAAA,mBAAiC7B,GAE7C,SAAU8B,IACd,IAAMC,EAAOC,EAAA,iBAA6B,mBAE1C,OACE,gBAACC,EAAA,EAAU,KACT,gBAACA,EAAA,QAAgB,CAACC,IAAKC,EAAA,gDACvB,gBAACF,EAAA,UAAkB,KAAC,gBAACG,EAAA,EAAI,CAACpC,UAAWA,EAAWqC,OAAO,kBACvD,gBAACJ,EAAA,MAAc,CACbF,KAAMA,EACNO,KAAMrC,EAAU,YAChBrE,UAAU,2BAIlB,CCOA,IAAM,EAAY,6BACZ,EAAYiG,EAAA,mBAAiC,GAE7CU,EAA2B,CAC/BnC,YAAa,aACbC,OAAQ,kCAOJ,SAAUmC,EAAsBxF,G,cACpC,GAAuC,EAAAyF,EAAAC,GAAkB,qBAAjDC,EAAY,EAAZA,aAAcC,EAAY,EAAZA,aACd7B,GAAmB,EAAA8B,EAAA,KAAnB9B,eACA+B,GAAa,EAAAC,EAAA,KAAbD,SAEFE,EAAS,kBACbC,EAAA,uBAAyC,CAACC,EAAA,QAAuBlG,EAAMmG,SAGnEC,EAAc,kBAAkCC,EAAA,iBAChDC,EAAa,kBACjBF,EAAYhG,MAAQmG,EAAA,aAA4BH,EAAYhG,KAAKoG,aA0BnE,OACE,gBAAClC,EAAA,EAAc,CACbG,QAAS,EAAU,WACnBxF,YAAa,CAAC,EAAU,eACxB6E,oBAAqB2C,EAAA,qBAErB,gBAAC,IAAe,CAAC/H,OAAO,sBACxB,uBAAKE,UAAU,qDACb,qBAAGA,UAAU,QACX,gBAACwG,EAAA,EAAI,CAACpC,UAAW,EAAWqC,OAAO,gBAAe,IAElD,gBAACqB,EAAA,EAAO,CAACjI,QAAS8G,EAA0B3G,UAAU,aACpD,gBAACwG,EAAA,EAAI,CAACpC,UAAW,EAAWqC,OAAO,0BAIzC,4BACEW,EAAOW,cACP,gBAACzF,EAAA,EAAgB,MAGlB8E,EAAOW,gBAAkC,QAAjB,EAAW,QAAX,EAAAX,EAAO5F,YAAI,eAAEA,YAAI,eAAEjB,SAC1C,gBAAC2F,EAA2B,SAGV,QAAjB,EAAW,QAAX,EAAAkB,EAAO5F,YAAI,eAAEA,YAAI,eAAEjB,SACpB,gCACE,gBAACyH,EAAA,WAA4B,CAACC,MAAO,CAAEC,gBAlD/C,SAAyBC,EAAmBrE,GAC1C,MAAO,CAAC,CACNsE,MAAO,EACPC,MAAO,EAAU,qBACjBC,QAAQ,EACRtI,UAAW,uBACXH,QAAS,CACP2E,YAAa,YACbC,OAAQ,2BACR8D,OAAQ,CACNC,SAAUL,EAAMM,GAChBC,aAAcP,EAAMQ,SAGxB1G,iBAAkB,OAAF,wBACX6B,EAAQ7B,kBAAgB,CAC3B6C,WAAY,eACZ8D,cAAe,aAEjB5G,cAAe8B,EAAQ9B,eAE3B,IA8BU,gBAAC6G,EAAA,GAAS,CACRzB,OAAQA,EAAO5F,KAAKA,KAAKsH,QAAO,SAAAC,GAAC,QAC7BC,EAAA,uBAAuCD,EAAGzB,EAAA,OAAqB,IACnEI,WAAYA,EAAWlG,KACvByH,gBAAiBC,EAAA,aACjBC,kBAAmB,SAAAhB,GAAK,OAAIiB,EAAA,mBAAqCjB,EAAMkB,OAAO,EAC9EtC,aAAcA,EACdC,aAAcA,EACd7B,eAAgBA,EAEhBmE,sBAAuB,GACvBC,2BAA4B,SAAAC,GAAW,OAAIC,EAAA,6BAA8CD,EAAY,EACrGtC,SAAUA,EACVwC,yBAA0BR,EAAA,2BAC1BS,8BAA+BT,EAAA,gCAC/BU,2BAA4BV,EAAA,iCAGT,QAAtB,EAAA9B,EAAO5F,KAAKqI,kBAAU,eAAEC,UACvB,uBAAK9J,UAAU,YACb,gBAAC+J,EAAA,EAAU,CACTD,QAAS1C,EAAO5F,KAAKqI,WAAWC,QAChCjK,QAAS,CACP2E,YAAa,aACbC,OAAQ,iCAEVuF,cAAc,eACdhK,UAAU,qBAQ1B,C,wEC1IaqH,EAAsB,CACjC4C,gBAAe,SAACxB,GACd,MAAO,CACL9H,IAAK,gBAAF,OAAkB8H,GACrB5D,IAAK,eAAqB,oCAAqC,CAAE4D,GAAAA,IAErE,EAEAyB,eAAc,SAAC1I,GACb,MAAO,CACLD,KAAM,SACNZ,IAAK,gBAAF,OAAkBa,EAAKkH,aAAY,YAAIlH,EAAKgH,SAAQ,QACvD3D,IAAK,4BACLrD,KAAM,CAACA,GACP2I,iBAAkB,CAAC,gBAEvB,EAGAC,mBAAkB,SAAC5B,GACjB,MAAO,CACL3D,IAAK,eAAqB,4BAA6B,CAAE2D,SAAAA,IACzD7H,IAAK,sBACLY,KAAM,WACN4I,iBAAkB,CAAC,gBAEvB,EAGAE,qBAAoB,SAClB9I,EACAgG,GAEA,IAAMgB,EAAc,CAClB,KAAQhH,EACR,cAAe,qBACf,oBAAqB,2BACrB,aAAc,qBAMhB,OAHIgG,IACFgB,EAAOhB,OAASA,GAEX,CACL1C,IAAK,eAAqB,oCAAqC0D,GAC/D5H,IAAK,wBAAF,OAA0BY,EAAK+I,OAAOC,KAAK,KAAI,YAAIhD,GAE1D,EAEAiD,WAAU,WACR,MAAO,CACL3F,IAAK,4CACLlE,IAAK,2BACLY,KAAM,WAEV,E,mCC/DF,SAAgB,gBAAkB,QAAQ,IAAM,QAAQ,SAAW,QAAQ,YAAc,QAAQ,QAAU,Q,4FCK3G,MAAM8B,EAAmB,cAAiB,EACxCoH,WACAzK,YAEA0K,GAAIC,EAAY,SACbvJ,GACFM,KACD,MAAMkJ,GAAoB,QAAmBH,EAAU,OACjD3H,GAAc,UACd+H,GAAgB,UAChBC,EAAa,GAAGF,SAChBG,EAAU,GAehB,OAdAjI,EAAYkI,SAAQC,IAClB,MAAMC,EAAY9J,EAAM6J,GAExB,IAAIE,SADG/J,EAAM6J,GAEI,MAAbC,GAA0C,iBAAdA,IAE5BC,QACED,GAEJC,EAAOD,EAET,MAAME,EAAQH,IAAaJ,EAAgB,IAAII,IAAa,GAChD,MAARE,GAAcJ,EAAQM,KAAK,GAAGP,IAAaM,KAASD,IAAO,KAE7C,SAAKR,EAAW,CAClCjJ,IAAKA,KACFN,EACHpB,UAAW,IAAWA,EAAW4K,KAAsBG,IACvD,IAEJ1H,EAAIiI,YAAc,MAClB,S","sources":["file:///app/packages/libs/shared/src/components/breadcrumbs/Breadcrumbs.tsx","file:///app/packages/libs/shared/src/components/pill-tab-selector/PillTabSelector.tsx","file:///app/packages/libs/shared/src/components/video-list/partial-loading/partial-video-list.scss","file:///app/packages/libs/shared/src/components/video-list/partial-loading/PartialVideoList.tsx","file:///app/packages/libs/shared/src/enums/SupportArticle.ts","file:///app/packages/libs/shared/src/utils/PartialLoadingHelper.ts","file:///app/packages/projects/lite/src/apps/settings/components/restricted-videos-tabs/RestrictedVideosTabs.tsx","file:///app/packages/projects/lite/src/apps/settings/components/settings-layout/SettingsLayout.tsx","file:///app/packages/projects/lite/src/apps/settings/views/video-restrictions/VideoRestrictionsEmptyState.tsx","file:///app/packages/projects/lite/src/apps/settings/views/video-restrictions/VideoRestrictionsView.tsx","file:///app/packages/projects/lite/src/shared/flight-requests/RestrictionRequests.ts","file:///app/packages/libs/shared/src/components/pill-tab-selector/pill-tab-selector.scss","file:///app/node_modules/react-bootstrap/esm/Row.js"],"sourcesContent":["import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\nimport { useMediaQuery } from 'libs/shared/hooks/UseMediaQuery';\nimport { PartialLoadingHelper } from 'libs/shared/utils/PartialLoadingHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { SvgContainer, SvgContainerSize } from '../svg-container/SvgContainer';\n\nexport interface Breadcrumb {\n name: string;\n appLink?: Core.AppLink;\n active?: boolean;\n}\n\ninterface BreadcrumbItemProps {\n breadcrumb: Breadcrumb;\n withBackIcon?: boolean;\n}\n\nexport const BreadcrumbItem = ({ breadcrumb: { name, appLink, active }, withBackIcon }: BreadcrumbItemProps) => (\n <li className={`breadcrumb-item${active ? ' active' : ''}`}>\n {active\n ? <strong>{name}</strong>\n : <AppLink appLink={appLink}>\n {withBackIcon && <SvgContainer svgName={cvSvgLibrary.ChevronLeft} size={SvgContainerSize.Small} />}\n <span className={withBackIcon ? 'ms-2' : ''}>{name}</span>\n </AppLink>\n }\n </li>\n);\n\ninterface BreadcrumbsProps {\n breadcrumbs: Breadcrumb[];\n}\n\nexport const Breadcrumbs = ({ breadcrumbs }: BreadcrumbsProps) => {\n const isMobile = useMediaQuery(MediaQueryStrings.XS);\n\n const length = breadcrumbs?.length;\n\n if (!length || (isMobile && length < 2))\n return <></>;\n\n if (isMobile)\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n <BreadcrumbItem breadcrumb={breadcrumbs[length - 2]} withBackIcon />\n </ol>\n </nav>\n );\n\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n {breadcrumbs.map((b, idx) => <BreadcrumbItem key={idx} breadcrumb={b} />)}\n </ol>\n </nav>\n );\n};\n\nexport const PartialBreadcrumbs = React.memo(function({ numItems = 3 }: { numItems?: number; }) {\n const isMobile = useMediaQuery(MediaQueryStrings.XS);\n\n if (isMobile) {\n return (\n <div className='partial-loading-background' style={{ height: '1.3125rem', width: '6rem' }} />\n );\n }\n\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n {PartialLoadingHelper.getPartialLoadingItems({ numItems }).map(({ width }, idx) => (\n <li key={idx} className='breadcrumb-item'>\n <span className='d-inline-block partial-loading-background' style={{ width }} dangerouslySetInnerHTML={{ __html: ' ' }} />\n </li>\n ))}\n </ol>\n </nav>\n );\n});","import React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Badge, BadgeType } from 'libs/shared/components/badges/Badge';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\n\nimport { SvgContainer } from '../svg-container/SvgContainer';\n\nimport styles from './pill-tab-selector.scss';\n\ninterface TabContentsProps {\n tab: PillTab;\n}\n\nfunction TabContents(props: TabContentsProps): JSX.Element {\n return (\n <>\n {!!props.tab.svgName && (\n <div className={props.tab.name ? 'pe-1' : ''}>\n <SvgContainer svgName={props.tab.svgName} />\n </div>\n )}\n\n {props.tab.name}\n\n {typeof (props.tab.count) === 'number' && (\n <div className='ps-2'>\n <Badge type={BadgeType.Count} data={props.tab.count} />\n </div>\n )}\n </>\n );\n}\n\nexport interface PillTab {\n name: string;\n active: boolean;\n svgName?: string;\n\n className?: string;\n\n appLink?: Core.AppLink;\n onSelect?: () => void;\n\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n\n count?: number;\n}\n\ninterface PillTabSelectorProps {\n tabs: PillTab[];\n containerRef?: (el: HTMLElement) => void;\n listClassName?: string;\n className?: string;\n borderRadius?: 'sm' | 'lg'\n}\n\nPillTabSelector.defaultProps = {\n borderRadius: 'lg'\n};\n\nexport function PillTabSelector(props: PillTabSelectorProps): JSX.Element {\n function onSelectTab(tab: PillTab): void {\n if (tab.active || !tab.onSelect)\n return;\n\n tab.onSelect();\n\n if (tab.analyticsData && tab.analyticsOptions)\n AnalyticsHelper.logUserAction(tab.analyticsData, tab.analyticsOptions);\n }\n\n return (\n <nav className={props.className ?? ''} ref={props.containerRef}>\n <ul className={`\n list-unstyled d-inline-block m-0 ${styles.pillTabSelector}\n ${props.borderRadius ? styles.radiusSmall : ''}\n ${props.listClassName}\n `}>\n {props.tabs.map((tab, index) => {\n return (\n <li\n className={`\n p-0 ${styles.tab} ${tab.active ? 'btn btn-dark' : 'btn btn-outline-dark'}\n ${tab.name ? styles.minWidth : ''} ${tab.className}\n `}\n key={index}\n >\n {tab.appLink ? (\n <AppLink\n appLink={tab.appLink}\n analyticsData={tab.analyticsData}\n analyticsOptions={tab.analyticsOptions}\n className={`\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ${styles.tabLink}\n `}\n >\n <TabContents tab={tab} />\n </AppLink>\n ) : (\n <DivButton\n className={`\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset p-2 text-nowrap ${styles.tabLink}\n `}\n onClick={() => onSelectTab(tab)}\n >\n <TabContents tab={tab} />\n </DivButton>\n )}\n </li>\n );\n })}\n </ul>\n </nav>\n );\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"partialOptions\":\"Gufgq\",\"partialName\":\"SicQQ\",\"partialDescription\":\"dPGMq\",\"partialThumbnail\":\"vZrnb\",\"partialDragHandle\":\"iq73R\"};","import React from 'react';\nimport { Col, Row } from 'react-bootstrap';\n\nimport { VideoListHelper } from 'libs/shared/components/video-list/VideoListHelper';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\n\nimport styles from './partial-video-list.scss';\n\ninterface PartialVideoListProps {\n withReordering?: boolean;\n numVideos?: number;\n allowBulkActions?: boolean;\n}\n\nPartialVideoList.defaultProps = {\n numVideos: 15\n};\n\nexport function PartialVideoList(props: PartialVideoListProps): JSX.Element {\n return (\n <div className='mx-2'>\n {Array(props.numVideos).fill(null).map((_, i) => (\n <div className='d-flex' key={i}>\n {props.allowBulkActions && <div className='form-check pe-3 pe-sm-2 mx-0 mx-md-2' />}\n <PartialVideoItem {...props} />\n </div>\n ))}\n </div>\n );\n}\n\nexport function PartialVideoItem(props: PartialVideoListProps): JSX.Element {\n const breakpoints = useBreakpoints();\n\n const size = VideoListHelper.getSize(breakpoints, 'md');\n const isSmall = size === 'sm';\n\n const withDragHandle = props.withReordering && !breakpoints.xs;\n\n return (\n <Row className={`${isSmall ? '' : 'py-2'} flex-grow-1`}>\n <Col {...VideoListHelper.getThumbnailColumns()} className={`flex-column align-items-flex-start ${isSmall ? `pb-2 pe-1` : 'mb-1 pe-3 pe-md-2'}`}>\n <Row>\n {!!withDragHandle && (\n <div className='d-flex align-items-center justify-content-center col-2'>\n <div className={`partial-loading-background ${styles.partialDragHandle}`} />\n </div>\n )}\n <Col xs={VideoListHelper.getThumbnailColSize(withDragHandle)}>\n <div className={`partial-loading-background ${isSmall ? 'rounded' : 'rounded-3'} ${styles.partialThumbnail}`} />\n </Col>\n </Row>\n </Col>\n <Col {...VideoListHelper.getDetailsColumns()} className={isSmall ? 'pb-2' : 'px-2'}>\n <div className={`partial-loading-background mb-1 ${styles.partialName}`} />\n <div className={`partial-loading-background ${styles.partialDescription}`} />\n </Col>\n </Row>\n );\n}\n\n","// Article name mapped to article ID on support site. Used by `ArticleHelper`\n\nexport enum OnlineSupportArticle {\n AddToPlaylist = '115005679748',\n EditSsoAccounts = '8202508040345',\n\n // LE\n LibraryEditor = '360001974533',\n VideoAccess = '360000153947',\n AddFromOnline = '360011718234',\n UploadToLibraryEditor = '360012069334',\n PBTErrorCodes = '360012421153',\n ManuelReview = '360020004534',\n LibraryReview = '360000163788',\n}\n\nexport enum LiteSupportArticle {\n Integrations = '4407268725529',\n Classrooms = '4405362551833',\n MakeInteractive = '4405370510873',\n EditSsoAccounts = '8202605666073',\n UploadToLibraryEditor = '10672936659865',\n AddFromLite = '10671345281561',\n ManageSsoYearGroups = '14691130889241',\n ContentReview = '18525199576601',\n ContentPermissions = '14692125209497',\n AccessSettings = '22110291468057',\n ContentGuidelines = '24133696186009',\n FoxtelFaq = '24133519542169',\n ViviIntegration = '23826297956377',\n AppleTvIntegration = '25832373739929',\n RssFeed = '32567445635097'\n}\n","const DEFAULT_PARTIAL_LOADING_OPTIONS: PartialLoadingOptions = {\n numItems: 5,\n minWidth: 50, // px\n maxWidth: 100 // px\n};\n\nexport interface PartialLoadingOptions {\n numItems?: number;\n minWidth?: number;\n maxWidth?: number;\n}\n\ninterface PartialLoadingItem {\n width: string;\n}\n\nexport const PartialLoadingHelper = {\n getPartialLoadingItems(options: PartialLoadingOptions = {}): PartialLoadingItem[] {\n const opts = {\n ...DEFAULT_PARTIAL_LOADING_OPTIONS,\n ...options\n };\n\n const getRandomFilterWidth = () => Math.max(Math.floor(Math.random() * opts.maxWidth), opts.minWidth);\n\n return [...Array(opts.numItems)].map(() => ({ width: `${getRandomFilterWidth()}px` }));\n }\n};","import React from 'react';\n\nimport { AppLinkHelper } from 'libs/common/backbone/core';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EntityType, LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { PillTabSelector } from 'libs/shared/components/pill-tab-selector/PillTabSelector';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nconst namespace = 'settings.restrictedVideosTabs';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst APPLINKS = {\n restrictedVideos: {\n application: AppChannels.SETTINGS,\n action: Actions.Settings.VIDEO_RESTRICTIONS\n },\n contentReview: {\n application: AppChannels.SETTINGS,\n action: Actions.Settings.CONTENT_REVIEW\n },\n contentReviewSettings: {\n application: AppChannels.SETTINGS,\n action: Actions.Settings.CONTENT_REVIEW_SETTINGS\n }\n};\n\ninterface RestrictionTabsProps {\n active: 'restricted-videos' | 'content-review' | 'content-review-settings'\n}\n\nexport function RestrictionTabs(props: RestrictionTabsProps): JSX.Element {\n return (\n <div className='mb-3'>\n <PillTabSelector\n tabs={[{\n name: getPhrase('restrictedVideos'),\n appLink: APPLINKS.restrictedVideos,\n active: props.active === 'restricted-videos',\n analyticsData: {\n name: getPhrase('restrictedVideos'),\n url: AppLinkHelper.getHref(APPLINKS.restrictedVideos)\n },\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Url,\n location: LocationContext.MagicTabs\n }\n }, {\n name: getPhrase('contentReview'),\n appLink: APPLINKS.contentReview,\n active: props.active === 'content-review',\n analyticsData: {\n name: LanguageService.getPhrase(namespace, 'contentReview'),\n url: AppLinkHelper.getHref(APPLINKS.contentReview)\n },\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Url,\n location: LocationContext.MagicTabs\n }\n }, {\n name: getPhrase('contentReviewSettings'),\n appLink: APPLINKS.contentReviewSettings,\n active: props.active === 'content-review-settings',\n analyticsData: {\n name: LanguageService.getPhrase(namespace, 'contentReviewSettings'),\n url: AppLinkHelper.getHref(APPLINKS.contentReviewSettings)\n },\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Url,\n location: LocationContext.MagicTabs\n }\n }]}\n />\n </div>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { Breadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { useGetSettingsGroups } from 'apps/settings/hooks/useGetSettingsGroups';\n\nconst namespace = 'settings.settingsLayout';\n\n/**\n * Checks if the current user has permission to access the settings module\n */\nexport const useCanAccessSettings = (requiredPermissions: PermissionName | PermissionName[]): boolean => {\n const { hasPermissions } = usePermissions();\n const settingsGroups = useGetSettingsGroups();\n\n /**\n * TODO: Update all settings pages to pasas required permissions, because checking the \n * `useGetSettingsGroups()` values clearly doesnt work for settings pages with multiple\n * applinks inside of them. - Sha\n */\n if (requiredPermissions)\n return hasPermissions(requiredPermissions);\n\n const currentRoute = Core.AppLinkHelper.getCurrentAppLink();\n\n /**\n * Allows us to have popups sitting in other locations be used\n * by our settings pages. For example the manage video access popup\n * in the \"videos with restricted access\" page - Sha\n */\n if (currentRoute.application !== AppChannels.SETTINGS)\n return true;\n\n return settingsGroups.some(group => {\n return group.modules.some(settingsModule => {\n if ('appLink' in settingsModule) {\n return settingsModule.appLink.action === currentRoute.action;\n }\n\n return false;\n });\n });\n};\n\ninterface SettingsLayoutProps {\n heading: string;\n breadcrumbs: string[];\n description?: string;\n requiredPermissions?: PermissionName | PermissionName[];\n headingButton?: () => JSX.Element;\n}\n\nexport function SettingsLayout(props: React.PropsWithChildren<SettingsLayoutProps>): JSX.Element {\n const canAccess = useCanAccessSettings(props.requiredPermissions);\n\n React.useEffect(() => {\n if (!canAccess) {\n Core.AppLinkHelper.trigger({\n application: AppChannels.SETTINGS,\n action: Actions.Settings.HOME\n }, { replace: true });\n }\n }, [canAccess]);\n\n if (!canAccess)\n return <></>;\n\n const breadcrumbs = props.breadcrumbs.map((name, i) => ({\n name,\n appLink: {\n application: AppChannels.SETTINGS,\n action: Actions.Settings.HOME\n },\n active: i === props.breadcrumbs.length - 1\n }));\n\n return (\n <div className='px-3'>\n <div className='d-flex align-items-center justify-content-between'>\n <h1 className='h2'>{props.heading}</h1>\n {props.headingButton?.()}\n </div>\n <div className='pb-3'>\n <Breadcrumbs\n breadcrumbs={[\n {\n name: LanguageService.getPhrase(namespace, 'settingsBreadcrumb'),\n appLink: {\n application: AppChannels.SETTINGS,\n action: Actions.Settings.HOME\n }\n },\n ...breadcrumbs\n ]}\n />\n </div>\n {props.description &&\n <>\n <p>{props.description}</p>\n <hr />\n </>\n }\n\n {props.children}\n </div>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { LiteSupportArticle } from 'libs/shared/enums/SupportArticle';\nimport { ArticleHelper } from 'libs/shared/utils/ArticleHelper';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nconst namespace = 'settings.videoRestrictions';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function VideoRestrictionsEmptyState(): JSX.Element {\n const href = ArticleHelper.getLiteArticle(LiteSupportArticle.ContentReview);\n\n return (\n <EmptyState>\n <EmptyState.Image src={ImageUrls.EmptyStates.ContentReview.RESTRICTED_VIDEOS} />\n <EmptyState.Heading><Text namespace={namespace} phrase='emptyHeading' /></EmptyState.Heading>\n <EmptyState.Cta\n href={href}\n text={getPhrase('emptyCta')}\n className='btn btn-link info-link'\n />\n </EmptyState>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { LocationContext, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Pagination } from 'libs/shared/components/pagination/Pagination';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { PartialVideoList } from 'libs/shared/components/video-list/partial-loading/PartialVideoList';\nimport { VideoList } from 'libs/shared/components/video-list/VideoList';\nimport { VideoActionsContext, VideoActionsOptions } from 'libs/shared/context/VideoActionsContext';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { RestrictionType } from 'libs/shared/enums/RestrictionType';\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { CurrentUser, VideoTypes, VideoTypesCollection, YearGroup } from 'libs/shared/interfaces';\nimport { RestrictionHelper } from 'libs/shared/utils/RestrictionHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { RestrictionRequests } from 'shared/flight-requests/RestrictionRequests';\nimport { usePluginHelper } from 'shared/hooks/use-plugin-helper/usePluginHelper';\nimport { useLiteFavourites } from 'shared/hooks/useLiteFavourites';\nimport { InteractiveHelpers } from 'shared/utils/InteractiveHelper';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\n\nimport { SeriesAppLinkHelper } from 'apps/series/SeriesAppLinkHelper';\nimport { RestrictionTabs } from 'apps/settings/components/restricted-videos-tabs/RestrictedVideosTabs';\nimport { SettingsLayout } from 'apps/settings/components/settings-layout/SettingsLayout';\nimport { VideoRestrictionsEmptyState } from 'apps/settings/views/video-restrictions/VideoRestrictionsEmptyState';\n\nconst namespace = 'settings.videoRestrictions';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst ContentPermissionAppLink = {\n application: AppChannels.SETTINGS,\n action: Actions.Settings.CONTENT_PERMISSIONS\n};\n\ninterface VideoRestrictionsViewProps {\n cursor?: string;\n}\n\nexport function VideoRestrictionsView(props: VideoRestrictionsViewProps): JSX.Element {\n const { setFavourite, canFavourite } = useLiteFavourites(LocationContext.VideoThumbnail);\n const { hasPermissions } = usePermissions();\n const { isPlugin } = usePluginHelper();\n\n const videos = Flight.useBasicFetch<VideoTypesCollection>(\n RestrictionRequests.getRestrictedObjects([RestrictionType.User], props.cursor)\n );\n \n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const yearGroups = Flight.useBasicFetch<YearGroup[]>(\n currentUser.data && CustomerRequests.yearGroups(currentUser.data.customerId)\n );\n\n function getVideoActions(video: VideoTypes, options: VideoActionsOptions): ActionOptions[] {\n return [{\n order: 1,\n label: getPhrase('manageVideoAccess'),\n button: true,\n className: 'btn btn-outline-dark',\n appLink: {\n application: AppChannels.DEFAULT,\n action: Actions.Default.MANAGE_ACCCESS,\n params: {\n objectId: video.id,\n objectTypeId: video.typeId\n }\n },\n analyticsOptions: {\n ...options.analyticsOptions,\n actionType: UserAction.SetAccess,\n workflowPhase: WorkflowPhase.Start\n },\n analyticsData: options.analyticsData\n }];\n }\n\n return (\n <SettingsLayout\n heading={getPhrase('heading')}\n breadcrumbs={[getPhrase('breadcrumb')]}\n requiredPermissions={PermissionName.ManageVideoAccess}\n >\n <RestrictionTabs active='restricted-videos' />\n <div className='d-flex justify-content-between align-items-center'>\n <p className='mb-0'>\n <Text namespace={namespace} phrase='description'/>\n \n <AppLink appLink={ContentPermissionAppLink} className='info-link'>\n <Text namespace={namespace} phrase='contentPermissions'/>\n </AppLink>\n </p>\n </div>\n <hr />\n {!videos.hasCompleted &&\n <PartialVideoList />\n }\n\n {videos.hasCompleted && !videos.data?.data?.length &&\n <VideoRestrictionsEmptyState />\n }\n\n {!!videos.data?.data?.length &&\n <>\n <VideoActionsContext.Provider value={{ getVideoActions }}>\n <VideoList\n videos={videos.data.data.filter(v =>\n !!RestrictionHelper.getRestrictionByType(v, RestrictionType.User))}\n yearGroups={yearGroups.data}\n getVideoAppLink={VideoAppLinkHelper.getAppLink}\n getSubTextAppLink={video => SeriesAppLinkHelper.getSeriesAppLink(video.series)}\n setFavourite={setFavourite}\n canFavourite={canFavourite}\n hasPermissions={hasPermissions}\n // we want to show rating badge not year group badge all the time\n presentationAudiences={[]}\n getPreviewQuestionsAppLink={interactive => InteractiveHelpers.getPreviewQuestionsAppLink(interactive)}\n isPlugin={isPlugin}\n getClassroomGuideAppLink={VideoAppLinkHelper.getClassroomGuideAppLink}\n getInteractiveGuidanceAppLink={VideoAppLinkHelper.getInteractiveGuidanceAppLink}\n getResourceGuidanceAppLink={VideoAppLinkHelper.getResourceGuidanceAppLink}\n />\n </VideoActionsContext.Provider>\n {videos.data.pagination?.cursors &&\n <div className='clearfix'>\n <Pagination\n cursors={videos.data.pagination.cursors}\n appLink={{\n application: AppChannels.SETTINGS,\n action: Actions.Settings.VIDEO_RESTRICTIONS\n }}\n buttonVariant='outline-dark'\n className='py-2 float-end'\n />\n </div>\n }\n </>\n }\n </SettingsLayout>\n );\n}","import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\n\nimport { SharedWithStatements } from 'libs/shared/constants/WithStatements';\nimport { RestrictionType } from 'libs/shared/enums/RestrictionType';\n\nimport { AddRestrictionRequest } from 'shared/interfaces/requests/AddRestrictionRequest';\n\nexport const RestrictionRequests = {\n getRestrictions(id: string): Flight.Request {\n return {\n key: `restrictions:${id}`,\n url: UrlHelper.urlBuilder(`{gateway}/v1/objects/restrictions`, { id })\n };\n },\n\n addRestriction(data: AddRestrictionRequest): Flight.Request {\n return {\n type: HttpVerbs.POST,\n key: `restrictions:${data.objectTypeId}:${data.objectId}:add`,\n url: `{gateway}/v1/restrictions`,\n data: [data],\n invalidationKeys: ['restrictions']\n };\n },\n\n\n deleteRestrictions(objectId: string): Flight.Request {\n return {\n url: UrlHelper.urlBuilder('{gateway}/v1/restrictions', { objectId }),\n key: 'restrictions:delete',\n type: HttpVerbs.DELETE,\n invalidationKeys: ['restrictions']\n };\n },\n\n\n getRestrictedObjects(\n type: RestrictionType[],\n cursor?: string\n ): Flight.Request {\n const params: any = {\n 'type': type,\n 'query.video': SharedWithStatements.VIDEO_COLLECTION,\n 'query.interactive': SharedWithStatements.INTERACTIVE_COLLECTION,\n 'query.clip': SharedWithStatements.CLIP_COLLECTION\n };\n\n if (cursor)\n params.cursor = cursor;\n\n return {\n url: UrlHelper.urlBuilder('{gateway}/v1/restrictions/objects', params),\n key: `restrictions:objects:${type.sort().join(',')}:${cursor}`\n };\n },\n\n approveAll(): Flight.Request {\n return {\n url: '{gateway}/v1/library-reviews/restrictions',\n key: 'restrictions:approve:all',\n type: HttpVerbs.DELETE\n };\n }\n};","// extracted by mini-css-extract-plugin\nexport default {\"pillTabSelector\":\"Hdi6o\",\"tab\":\"RvNxr\",\"minWidth\":\"GHSz9\",\"radiusSmall\":\"VhJJa\",\"tabLink\":\"WFyvo\"};","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix, useBootstrapBreakpoints, useBootstrapMinBreakpoint } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Row = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n ...props\n}, ref) => {\n const decoratedBsPrefix = useBootstrapPrefix(bsPrefix, 'row');\n const breakpoints = useBootstrapBreakpoints();\n const minBreakpoint = useBootstrapMinBreakpoint();\n const sizePrefix = `${decoratedBsPrefix}-cols`;\n const classes = [];\n breakpoints.forEach(brkPoint => {\n const propValue = props[brkPoint];\n delete props[brkPoint];\n let cols;\n if (propValue != null && typeof propValue === 'object') {\n ({\n cols\n } = propValue);\n } else {\n cols = propValue;\n }\n const infix = brkPoint !== minBreakpoint ? `-${brkPoint}` : '';\n if (cols != null) classes.push(`${sizePrefix}${infix}-${cols}`);\n });\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n ...props,\n className: classNames(className, decoratedBsPrefix, ...classes)\n });\n});\nRow.displayName = 'Row';\nexport default Row;"],"names":["BreadcrumbItem","breadcrumb","name","appLink","active","withBackIcon","className","svgName","size","S","Breadcrumbs","breadcrumbs","isMobile","length","map","b","idx","key","PartialBreadcrumbs","numItems","style","height","width","dangerouslySetInnerHTML","__html","TabContents","props","tab","count","type","data","PillTabSelector","ref","containerRef","borderRadius","listClassName","tabs","index","analyticsData","analyticsOptions","onClick","onSelect","onSelectTab","defaultProps","PartialVideoList","Array","numVideos","fill","_","i","allowBulkActions","PartialVideoItem","breakpoints","useBreakpoints","isSmall","VideoListHelper","withDragHandle","withReordering","xs","Row","Col","OnlineSupportArticle","LiteSupportArticle","DEFAULT_PARTIAL_LOADING_OPTIONS","minWidth","maxWidth","PartialLoadingHelper","getPartialLoadingItems","options","opts","Math","max","floor","random","namespace","getPhrase","APPLINKS","restrictedVideos","application","action","contentReview","contentReviewSettings","RestrictionTabs","url","actionType","entity","location","useCanAccessSettings","requiredPermissions","hasPermissions","settingsGroups","currentRoute","some","group","modules","settingsModule","SettingsLayout","canAccess","replace","heading","headingButton","description","children","LanguageService","VideoRestrictionsEmptyState","href","ArticleHelper","EmptyState","src","ImageUrls","Text","phrase","text","ContentPermissionAppLink","VideoRestrictionsView","useLiteFavourites","u","setFavourite","canFavourite","usePermissions","isPlugin","usePluginHelper","videos","RestrictionRequests","RestrictionType","cursor","currentUser","UserRequests","yearGroups","CustomerRequests","customerId","PermissionName","AppLink","hasCompleted","VideoActionsContext","value","getVideoActions","video","order","label","button","params","objectId","id","objectTypeId","typeId","workflowPhase","VideoList","filter","v","RestrictionHelper","getVideoAppLink","VideoAppLinkHelper","getSubTextAppLink","SeriesAppLinkHelper","series","presentationAudiences","getPreviewQuestionsAppLink","interactive","InteractiveHelper","getClassroomGuideAppLink","getInteractiveGuidanceAppLink","getResourceGuidanceAppLink","pagination","cursors","Pagination","buttonVariant","getRestrictions","addRestriction","invalidationKeys","deleteRestrictions","getRestrictedObjects","sort","join","approveAll","bsPrefix","as","Component","decoratedBsPrefix","minBreakpoint","sizePrefix","classes","forEach","brkPoint","propValue","cols","infix","push","displayName"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"scripts/7223-135cc7d675-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/components/breadcrumbs/Breadcrumbs.tsx","file:///app/packages/libs/shared/src/components/pill-tab-selector/PillTabSelector.tsx","file:///app/packages/libs/shared/src/components/video-list/partial-loading/partial-video-list.scss","file:///app/packages/libs/shared/src/components/video-list/partial-loading/PartialVideoList.tsx","file:///app/packages/libs/shared/src/enums/SupportArticle.ts","file:///app/packages/libs/shared/src/utils/PartialLoadingHelper.ts","file:///app/packages/projects/lite/src/apps/settings/components/restricted-videos-tabs/RestrictedVideosTabs.tsx","file:///app/packages/projects/lite/src/apps/settings/components/settings-layout/SettingsLayout.tsx","file:///app/packages/projects/lite/src/apps/settings/views/video-restrictions/VideoRestrictionsEmptyState.tsx","file:///app/packages/projects/lite/src/apps/settings/views/video-restrictions/VideoRestrictionsView.tsx","file:///app/packages/projects/lite/src/shared/flight-requests/RestrictionRequests.ts","file:///app/packages/libs/shared/src/components/pill-tab-selector/pill-tab-selector.scss","file:///app/node_modules/react-bootstrap/esm/Row.js"],"sourcesContent":["import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\nimport { useMediaQuery } from 'libs/shared/hooks/UseMediaQuery';\nimport { PartialLoadingHelper } from 'libs/shared/utils/PartialLoadingHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { SvgContainer, SvgContainerSize } from '../svg-container/SvgContainer';\n\nexport interface Breadcrumb {\n name: string;\n appLink?: Core.AppLink;\n active?: boolean;\n}\n\ninterface BreadcrumbItemProps {\n breadcrumb: Breadcrumb;\n withBackIcon?: boolean;\n}\n\nexport const BreadcrumbItem = ({ breadcrumb: { name, appLink, active }, withBackIcon }: BreadcrumbItemProps) => (\n <li className={`breadcrumb-item${active ? ' active' : ''}`}>\n {active\n ? <strong>{name}</strong>\n : <AppLink appLink={appLink}>\n {withBackIcon && <SvgContainer svgName={cvSvgLibrary.ChevronLeft} size={SvgContainerSize.Small} />}\n <span className={withBackIcon ? 'ms-2' : ''}>{name}</span>\n </AppLink>\n }\n </li>\n);\n\ninterface BreadcrumbsProps {\n breadcrumbs: Breadcrumb[];\n}\n\nexport const Breadcrumbs = ({ breadcrumbs }: BreadcrumbsProps) => {\n const isMobile = useMediaQuery(MediaQueryStrings.XS);\n\n const length = breadcrumbs?.length;\n\n if (!length || (isMobile && length < 2))\n return <></>;\n\n if (isMobile)\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n <BreadcrumbItem breadcrumb={breadcrumbs[length - 2]} withBackIcon />\n </ol>\n </nav>\n );\n\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n {breadcrumbs.map((b, idx) => <BreadcrumbItem key={idx} breadcrumb={b} />)}\n </ol>\n </nav>\n );\n};\n\nexport const PartialBreadcrumbs = React.memo(function({ numItems = 3 }: { numItems?: number; }) {\n const isMobile = useMediaQuery(MediaQueryStrings.XS);\n\n if (isMobile) {\n return (\n <div className='partial-loading-background' style={{ height: '1.3125rem', width: '6rem' }} />\n );\n }\n\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n {PartialLoadingHelper.getPartialLoadingItems({ numItems }).map(({ width }, idx) => (\n <li key={idx} className='breadcrumb-item'>\n <span className='d-inline-block partial-loading-background' style={{ width }} dangerouslySetInnerHTML={{ __html: ' ' }} />\n </li>\n ))}\n </ol>\n </nav>\n );\n});","import React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Badge, BadgeType } from 'libs/shared/components/badges/Badge';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\n\nimport { SvgContainer } from '../svg-container/SvgContainer';\n\nimport styles from './pill-tab-selector.scss';\n\ninterface TabContentsProps {\n tab: PillTab;\n}\n\nfunction TabContents(props: TabContentsProps): JSX.Element {\n return (\n <>\n {!!props.tab.svgName && (\n <div className={props.tab.name ? 'pe-1' : ''}>\n <SvgContainer svgName={props.tab.svgName} />\n </div>\n )}\n\n {props.tab.name}\n\n {typeof (props.tab.count) === 'number' && (\n <div className='ps-2'>\n <Badge type={BadgeType.Count} data={props.tab.count} />\n </div>\n )}\n </>\n );\n}\n\nexport interface PillTab {\n name: string;\n active: boolean;\n svgName?: string;\n\n className?: string;\n\n appLink?: Core.AppLink;\n onSelect?: () => void;\n\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n\n count?: number;\n}\n\ninterface PillTabSelectorProps {\n tabs: PillTab[];\n containerRef?: (el: HTMLElement) => void;\n listClassName?: string;\n className?: string;\n borderRadius?: 'sm' | 'lg'\n}\n\nPillTabSelector.defaultProps = {\n borderRadius: 'lg'\n};\n\nexport function PillTabSelector(props: PillTabSelectorProps): JSX.Element {\n function onSelectTab(tab: PillTab): void {\n if (tab.active || !tab.onSelect)\n return;\n\n tab.onSelect();\n\n if (tab.analyticsData && tab.analyticsOptions)\n AnalyticsHelper.logUserAction(tab.analyticsData, tab.analyticsOptions);\n }\n\n return (\n <nav className={props.className ?? ''} ref={props.containerRef}>\n <ul className={`\n list-unstyled d-inline-block m-0 ${styles.pillTabSelector}\n ${props.borderRadius ? styles.radiusSmall : ''}\n ${props.listClassName}\n `}>\n {props.tabs.map((tab, index) => {\n return (\n <li\n className={`\n p-0 ${styles.tab} ${tab.active ? 'btn btn-dark' : 'btn btn-outline-dark'}\n ${tab.name ? styles.minWidth : ''} ${tab.className}\n `}\n key={index}\n >\n {tab.appLink ? (\n <AppLink\n appLink={tab.appLink}\n analyticsData={tab.analyticsData}\n analyticsOptions={tab.analyticsOptions}\n className={`\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ${styles.tabLink}\n `}\n >\n <TabContents tab={tab} />\n </AppLink>\n ) : (\n <DivButton\n className={`\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset p-2 text-nowrap ${styles.tabLink}\n `}\n onClick={() => onSelectTab(tab)}\n >\n <TabContents tab={tab} />\n </DivButton>\n )}\n </li>\n );\n })}\n </ul>\n </nav>\n );\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"partialOptions\":\"Gufgq\",\"partialName\":\"SicQQ\",\"partialDescription\":\"dPGMq\",\"partialThumbnail\":\"vZrnb\",\"partialDragHandle\":\"iq73R\"};","import React from 'react';\nimport { Col, Row } from 'react-bootstrap';\n\nimport { VideoListHelper } from 'libs/shared/components/video-list/VideoListHelper';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\n\nimport styles from './partial-video-list.scss';\n\ninterface PartialVideoListProps {\n withReordering?: boolean;\n numVideos?: number;\n allowBulkActions?: boolean;\n}\n\nPartialVideoList.defaultProps = {\n numVideos: 15\n};\n\nexport function PartialVideoList(props: PartialVideoListProps): JSX.Element {\n return (\n <div className='mx-2'>\n {Array(props.numVideos).fill(null).map((_, i) => (\n <div className='d-flex' key={i}>\n {props.allowBulkActions && <div className='form-check pe-3 pe-sm-2 mx-0 mx-md-2' />}\n <PartialVideoItem {...props} />\n </div>\n ))}\n </div>\n );\n}\n\nexport function PartialVideoItem(props: PartialVideoListProps): JSX.Element {\n const breakpoints = useBreakpoints();\n\n const size = VideoListHelper.getSize(breakpoints, 'md');\n const isSmall = size === 'sm';\n\n const withDragHandle = props.withReordering && !breakpoints.xs;\n\n return (\n <Row className={`${isSmall ? '' : 'py-2'} flex-grow-1`}>\n <Col {...VideoListHelper.getThumbnailColumns()} className={`flex-column align-items-flex-start ${isSmall ? `pb-2 pe-1` : 'mb-1 pe-3 pe-md-2'}`}>\n <Row>\n {!!withDragHandle && (\n <div className='d-flex align-items-center justify-content-center col-2'>\n <div className={`partial-loading-background ${styles.partialDragHandle}`} />\n </div>\n )}\n <Col xs={VideoListHelper.getThumbnailColSize(withDragHandle)}>\n <div className={`partial-loading-background ${isSmall ? 'rounded' : 'rounded-3'} ${styles.partialThumbnail}`} />\n </Col>\n </Row>\n </Col>\n <Col {...VideoListHelper.getDetailsColumns()} className={isSmall ? 'pb-2' : 'px-2'}>\n <div className={`partial-loading-background mb-1 ${styles.partialName}`} />\n <div className={`partial-loading-background ${styles.partialDescription}`} />\n </Col>\n </Row>\n );\n}\n\n","// Article name mapped to article ID on support site. Used by `ArticleHelper`\n\nexport enum OnlineSupportArticle {\n AddToPlaylist = '115005679748',\n EditSsoAccounts = '8202508040345',\n\n // LE\n LibraryEditor = '360001974533',\n VideoAccess = '360000153947',\n AddFromOnline = '360011718234',\n UploadToLibraryEditor = '360012069334',\n PBTErrorCodes = '360012421153',\n ManuelReview = '360020004534',\n LibraryReview = '360000163788',\n}\n\nexport enum LiteSupportArticle {\n Integrations = '4407268725529',\n Classrooms = '4405362551833',\n MakeInteractive = '4405370510873',\n EditSsoAccounts = '8202605666073',\n UploadToLibraryEditor = '10672936659865',\n AddFromLite = '10671345281561',\n ManageSsoYearGroups = '14691130889241',\n ContentReview = '18525199576601',\n ContentPermissions = '14692125209497',\n AccessSettings = '22110291468057',\n ContentGuidelines = '24133696186009',\n FoxtelFaq = '24133519542169',\n ViviIntegration = '23826297956377',\n AppleTvIntegration = '25832373739929',\n RssFeed = '32567445635097'\n}\n","const DEFAULT_PARTIAL_LOADING_OPTIONS: PartialLoadingOptions = {\n numItems: 5,\n minWidth: 50, // px\n maxWidth: 100 // px\n};\n\nexport interface PartialLoadingOptions {\n numItems?: number;\n minWidth?: number;\n maxWidth?: number;\n}\n\ninterface PartialLoadingItem {\n width: string;\n}\n\nexport const PartialLoadingHelper = {\n getPartialLoadingItems(options: PartialLoadingOptions = {}): PartialLoadingItem[] {\n const opts = {\n ...DEFAULT_PARTIAL_LOADING_OPTIONS,\n ...options\n };\n\n const getRandomFilterWidth = () => Math.max(Math.floor(Math.random() * opts.maxWidth), opts.minWidth);\n\n return [...Array(opts.numItems)].map(() => ({ width: `${getRandomFilterWidth()}px` }));\n }\n};","import React from 'react';\n\nimport { AppLinkHelper } from 'libs/common/backbone/core';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EntityType, LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { PillTabSelector } from 'libs/shared/components/pill-tab-selector/PillTabSelector';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nconst namespace = 'settings.restrictedVideosTabs';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst APPLINKS = {\n restrictedVideos: {\n application: AppChannels.SETTINGS,\n action: Actions.Settings.VIDEO_RESTRICTIONS\n },\n contentReview: {\n application: AppChannels.SETTINGS,\n action: Actions.Settings.CONTENT_REVIEW\n },\n contentReviewSettings: {\n application: AppChannels.SETTINGS,\n action: Actions.Settings.CONTENT_REVIEW_SETTINGS\n }\n};\n\ninterface RestrictionTabsProps {\n active: 'restricted-videos' | 'content-review' | 'content-review-settings'\n}\n\nexport function RestrictionTabs(props: RestrictionTabsProps): JSX.Element {\n return (\n <div className='mb-3'>\n <PillTabSelector\n tabs={[{\n name: getPhrase('restrictedVideos'),\n appLink: APPLINKS.restrictedVideos,\n active: props.active === 'restricted-videos',\n analyticsData: {\n name: getPhrase('restrictedVideos'),\n url: AppLinkHelper.getHref(APPLINKS.restrictedVideos)\n },\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Url,\n location: LocationContext.MagicTabs\n }\n }, {\n name: getPhrase('contentReview'),\n appLink: APPLINKS.contentReview,\n active: props.active === 'content-review',\n analyticsData: {\n name: LanguageService.getPhrase(namespace, 'contentReview'),\n url: AppLinkHelper.getHref(APPLINKS.contentReview)\n },\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Url,\n location: LocationContext.MagicTabs\n }\n }, {\n name: getPhrase('contentReviewSettings'),\n appLink: APPLINKS.contentReviewSettings,\n active: props.active === 'content-review-settings',\n analyticsData: {\n name: LanguageService.getPhrase(namespace, 'contentReviewSettings'),\n url: AppLinkHelper.getHref(APPLINKS.contentReviewSettings)\n },\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Url,\n location: LocationContext.MagicTabs\n }\n }]}\n />\n </div>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { Breadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { useGetSettingsGroups } from 'apps/settings/hooks/useGetSettingsGroups';\n\nconst namespace = 'settings.settingsLayout';\n\n/**\n * Checks if the current user has permission to access the settings module\n */\nexport const useCanAccessSettings = (requiredPermissions: PermissionName | PermissionName[]): boolean => {\n const { hasPermissions } = usePermissions();\n const settingsGroups = useGetSettingsGroups();\n\n /**\n * TODO: Update all settings pages to pasas required permissions, because checking the \n * `useGetSettingsGroups()` values clearly doesnt work for settings pages with multiple\n * applinks inside of them. - Sha\n */\n if (requiredPermissions)\n return hasPermissions(requiredPermissions);\n\n const currentRoute = Core.AppLinkHelper.getCurrentAppLink();\n\n /**\n * Allows us to have popups sitting in other locations be used\n * by our settings pages. For example the manage video access popup\n * in the \"videos with restricted access\" page - Sha\n */\n if (currentRoute.application !== AppChannels.SETTINGS)\n return true;\n\n return settingsGroups.some(group => {\n return group.modules.some(settingsModule => {\n if ('appLink' in settingsModule) {\n return settingsModule.appLink.action === currentRoute.action;\n }\n\n return false;\n });\n });\n};\n\ninterface SettingsLayoutProps {\n heading: string;\n breadcrumbs: string[];\n description?: string;\n requiredPermissions?: PermissionName | PermissionName[];\n headingButton?: () => JSX.Element;\n}\n\nexport function SettingsLayout(props: React.PropsWithChildren<SettingsLayoutProps>): JSX.Element {\n const canAccess = useCanAccessSettings(props.requiredPermissions);\n\n React.useEffect(() => {\n if (!canAccess) {\n Core.AppLinkHelper.trigger({\n application: AppChannels.SETTINGS,\n action: Actions.Settings.HOME\n }, { replace: true });\n }\n }, [canAccess]);\n\n if (!canAccess)\n return <></>;\n\n const breadcrumbs = props.breadcrumbs.map((name, i) => ({\n name,\n appLink: {\n application: AppChannels.SETTINGS,\n action: Actions.Settings.HOME\n },\n active: i === props.breadcrumbs.length - 1\n }));\n\n return (\n <div className='px-3'>\n <div className='d-flex align-items-center justify-content-between'>\n <h1 className='h2'>{props.heading}</h1>\n {props.headingButton?.()}\n </div>\n <div className='pb-3'>\n <Breadcrumbs\n breadcrumbs={[\n {\n name: LanguageService.getPhrase(namespace, 'settingsBreadcrumb'),\n appLink: {\n application: AppChannels.SETTINGS,\n action: Actions.Settings.HOME\n }\n },\n ...breadcrumbs\n ]}\n />\n </div>\n {props.description &&\n <>\n <p>{props.description}</p>\n <hr />\n </>\n }\n\n {props.children}\n </div>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { LiteSupportArticle } from 'libs/shared/enums/SupportArticle';\nimport { ArticleHelper } from 'libs/shared/utils/ArticleHelper';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nconst namespace = 'settings.videoRestrictions';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function VideoRestrictionsEmptyState(): JSX.Element {\n const href = ArticleHelper.getLiteArticle(LiteSupportArticle.ContentReview);\n\n return (\n <EmptyState>\n <EmptyState.Image src={ImageUrls.EmptyStates.ContentReview.RESTRICTED_VIDEOS} />\n <EmptyState.Heading><Text namespace={namespace} phrase='emptyHeading' /></EmptyState.Heading>\n <EmptyState.Cta\n href={href}\n text={getPhrase('emptyCta')}\n className='btn btn-link info-link'\n />\n </EmptyState>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { LocationContext, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Pagination } from 'libs/shared/components/pagination/Pagination';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { PartialVideoList } from 'libs/shared/components/video-list/partial-loading/PartialVideoList';\nimport { VideoList } from 'libs/shared/components/video-list/VideoList';\nimport { VideoActionsContext, VideoActionsOptions } from 'libs/shared/context/VideoActionsContext';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { RestrictionType } from 'libs/shared/enums/RestrictionType';\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { CurrentUser, VideoTypes, VideoTypesCollection, YearGroup } from 'libs/shared/interfaces';\nimport { RestrictionHelper } from 'libs/shared/utils/RestrictionHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { RestrictionRequests } from 'shared/flight-requests/RestrictionRequests';\nimport { usePluginHelper } from 'shared/hooks/use-plugin-helper/usePluginHelper';\nimport { useLiteFavourites } from 'shared/hooks/useLiteFavourites';\nimport { InteractiveHelpers } from 'shared/utils/InteractiveHelper';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\n\nimport { SeriesAppLinkHelper } from 'apps/series/SeriesAppLinkHelper';\nimport { RestrictionTabs } from 'apps/settings/components/restricted-videos-tabs/RestrictedVideosTabs';\nimport { SettingsLayout } from 'apps/settings/components/settings-layout/SettingsLayout';\nimport { VideoRestrictionsEmptyState } from 'apps/settings/views/video-restrictions/VideoRestrictionsEmptyState';\n\nconst namespace = 'settings.videoRestrictions';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst ContentPermissionAppLink = {\n application: AppChannels.SETTINGS,\n action: Actions.Settings.CONTENT_PERMISSIONS\n};\n\ninterface VideoRestrictionsViewProps {\n cursor?: string;\n}\n\nexport function VideoRestrictionsView(props: VideoRestrictionsViewProps): JSX.Element {\n const { setFavourite, canFavourite } = useLiteFavourites(LocationContext.VideoThumbnail);\n const { hasPermissions } = usePermissions();\n const { isPlugin } = usePluginHelper();\n\n const videos = Flight.useBasicFetch<VideoTypesCollection>(\n RestrictionRequests.getRestrictedObjects([RestrictionType.User], props.cursor)\n );\n \n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const yearGroups = Flight.useBasicFetch<YearGroup[]>(\n currentUser.data && CustomerRequests.yearGroups(currentUser.data.customerId)\n );\n\n function getVideoActions(video: VideoTypes, options: VideoActionsOptions): ActionOptions[] {\n return [{\n order: 1,\n label: getPhrase('manageVideoAccess'),\n button: true,\n className: 'btn btn-outline-dark text-nowrap',\n appLink: {\n application: AppChannels.DEFAULT,\n action: Actions.Default.MANAGE_ACCCESS,\n params: {\n objectId: video.id,\n objectTypeId: video.typeId\n }\n },\n analyticsOptions: {\n ...options.analyticsOptions,\n actionType: UserAction.SetAccess,\n workflowPhase: WorkflowPhase.Start\n },\n analyticsData: options.analyticsData\n }];\n }\n\n return (\n <SettingsLayout\n heading={getPhrase('heading')}\n breadcrumbs={[getPhrase('breadcrumb')]}\n requiredPermissions={PermissionName.ManageVideoAccess}\n >\n <RestrictionTabs active='restricted-videos' />\n <div className='d-flex justify-content-between align-items-center'>\n <p className='mb-0'>\n <Text namespace={namespace} phrase='description'/>\n \n <AppLink appLink={ContentPermissionAppLink} className='info-link'>\n <Text namespace={namespace} phrase='contentPermissions'/>\n </AppLink>\n </p>\n </div>\n <hr />\n {!videos.hasCompleted &&\n <PartialVideoList />\n }\n\n {videos.hasCompleted && !videos.data?.data?.length &&\n <VideoRestrictionsEmptyState />\n }\n\n {!!videos.data?.data?.length &&\n <>\n <VideoActionsContext.Provider value={{ getVideoActions }}>\n <VideoList\n videos={videos.data.data.filter(v =>\n !!RestrictionHelper.getRestrictionByType(v, RestrictionType.User))}\n yearGroups={yearGroups.data}\n getVideoAppLink={VideoAppLinkHelper.getAppLink}\n getSubTextAppLink={video => SeriesAppLinkHelper.getSeriesAppLink(video.series)}\n setFavourite={setFavourite}\n canFavourite={canFavourite}\n hasPermissions={hasPermissions}\n // we want to show rating badge not year group badge all the time\n presentationAudiences={[]}\n getPreviewQuestionsAppLink={interactive => InteractiveHelpers.getPreviewQuestionsAppLink(interactive)}\n isPlugin={isPlugin}\n getClassroomGuideAppLink={VideoAppLinkHelper.getClassroomGuideAppLink}\n getInteractiveGuidanceAppLink={VideoAppLinkHelper.getInteractiveGuidanceAppLink}\n getResourceGuidanceAppLink={VideoAppLinkHelper.getResourceGuidanceAppLink}\n />\n </VideoActionsContext.Provider>\n {videos.data.pagination?.cursors &&\n <div className='clearfix'>\n <Pagination\n cursors={videos.data.pagination.cursors}\n appLink={{\n application: AppChannels.SETTINGS,\n action: Actions.Settings.VIDEO_RESTRICTIONS\n }}\n buttonVariant='outline-dark'\n className='py-2 float-end'\n />\n </div>\n }\n </>\n }\n </SettingsLayout>\n );\n}","import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\n\nimport { SharedWithStatements } from 'libs/shared/constants/WithStatements';\nimport { RestrictionType } from 'libs/shared/enums/RestrictionType';\n\nimport { AddRestrictionRequest } from 'shared/interfaces/requests/AddRestrictionRequest';\n\nexport const RestrictionRequests = {\n getRestrictions(id: string): Flight.Request {\n return {\n key: `restrictions:${id}`,\n url: UrlHelper.urlBuilder(`{gateway}/v1/objects/restrictions`, { id })\n };\n },\n\n addRestriction(data: AddRestrictionRequest): Flight.Request {\n return {\n type: HttpVerbs.POST,\n key: `restrictions:${data.objectTypeId}:${data.objectId}:add`,\n url: `{gateway}/v1/restrictions`,\n data: [data],\n invalidationKeys: ['restrictions']\n };\n },\n\n\n deleteRestrictions(objectId: string): Flight.Request {\n return {\n url: UrlHelper.urlBuilder('{gateway}/v1/restrictions', { objectId }),\n key: 'restrictions:delete',\n type: HttpVerbs.DELETE,\n invalidationKeys: ['restrictions']\n };\n },\n\n\n getRestrictedObjects(\n type: RestrictionType[],\n cursor?: string\n ): Flight.Request {\n const params: any = {\n 'type': type,\n 'query.video': SharedWithStatements.VIDEO_COLLECTION,\n 'query.interactive': SharedWithStatements.INTERACTIVE_COLLECTION,\n 'query.clip': SharedWithStatements.CLIP_COLLECTION\n };\n\n if (cursor)\n params.cursor = cursor;\n\n return {\n url: UrlHelper.urlBuilder('{gateway}/v1/restrictions/objects', params),\n key: `restrictions:objects:${type.sort().join(',')}:${cursor}`\n };\n },\n\n approveAll(): Flight.Request {\n return {\n url: '{gateway}/v1/library-reviews/restrictions',\n key: 'restrictions:approve:all',\n type: HttpVerbs.DELETE\n };\n }\n};","// extracted by mini-css-extract-plugin\nexport default {\"pillTabSelector\":\"Hdi6o\",\"tab\":\"RvNxr\",\"minWidth\":\"GHSz9\",\"radiusSmall\":\"VhJJa\",\"tabLink\":\"WFyvo\"};","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix, useBootstrapBreakpoints, useBootstrapMinBreakpoint } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Row = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n ...props\n}, ref) => {\n const decoratedBsPrefix = useBootstrapPrefix(bsPrefix, 'row');\n const breakpoints = useBootstrapBreakpoints();\n const minBreakpoint = useBootstrapMinBreakpoint();\n const sizePrefix = `${decoratedBsPrefix}-cols`;\n const classes = [];\n breakpoints.forEach(brkPoint => {\n const propValue = props[brkPoint];\n delete props[brkPoint];\n let cols;\n if (propValue != null && typeof propValue === 'object') {\n ({\n cols\n } = propValue);\n } else {\n cols = propValue;\n }\n const infix = brkPoint !== minBreakpoint ? `-${brkPoint}` : '';\n if (cols != null) classes.push(`${sizePrefix}${infix}-${cols}`);\n });\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n ...props,\n className: classNames(className, decoratedBsPrefix, ...classes)\n });\n});\nRow.displayName = 'Row';\nexport default Row;"],"names":["BreadcrumbItem","breadcrumb","name","appLink","active","withBackIcon","className","svgName","size","S","Breadcrumbs","breadcrumbs","isMobile","length","map","b","idx","key","PartialBreadcrumbs","numItems","style","height","width","dangerouslySetInnerHTML","__html","TabContents","props","tab","count","type","data","PillTabSelector","ref","containerRef","borderRadius","listClassName","tabs","index","analyticsData","analyticsOptions","onClick","onSelect","onSelectTab","defaultProps","PartialVideoList","Array","numVideos","fill","_","i","allowBulkActions","PartialVideoItem","breakpoints","useBreakpoints","isSmall","VideoListHelper","withDragHandle","withReordering","xs","Row","Col","OnlineSupportArticle","LiteSupportArticle","DEFAULT_PARTIAL_LOADING_OPTIONS","minWidth","maxWidth","PartialLoadingHelper","getPartialLoadingItems","options","opts","Math","max","floor","random","namespace","getPhrase","APPLINKS","restrictedVideos","application","action","contentReview","contentReviewSettings","RestrictionTabs","url","actionType","entity","location","useCanAccessSettings","requiredPermissions","hasPermissions","settingsGroups","currentRoute","some","group","modules","settingsModule","SettingsLayout","canAccess","replace","heading","headingButton","description","children","LanguageService","VideoRestrictionsEmptyState","href","ArticleHelper","EmptyState","src","ImageUrls","Text","phrase","text","ContentPermissionAppLink","VideoRestrictionsView","useLiteFavourites","u","setFavourite","canFavourite","usePermissions","isPlugin","usePluginHelper","videos","RestrictionRequests","RestrictionType","cursor","currentUser","UserRequests","yearGroups","CustomerRequests","customerId","PermissionName","AppLink","hasCompleted","VideoActionsContext","value","getVideoActions","video","order","label","button","params","objectId","id","objectTypeId","typeId","workflowPhase","VideoList","filter","v","RestrictionHelper","getVideoAppLink","VideoAppLinkHelper","getSubTextAppLink","SeriesAppLinkHelper","series","presentationAudiences","getPreviewQuestionsAppLink","interactive","InteractiveHelper","getClassroomGuideAppLink","getInteractiveGuidanceAppLink","getResourceGuidanceAppLink","pagination","cursors","Pagination","buttonVariant","getRestrictions","addRestriction","invalidationKeys","deleteRestrictions","getRestrictedObjects","sort","join","approveAll","bsPrefix","as","Component","decoratedBsPrefix","minBreakpoint","sizePrefix","classes","forEach","brkPoint","propValue","cols","infix","push","displayName"],"sourceRoot":""}
|