@clickview/lite 0.84.0 → 0.84.1-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundles.json +2 -2
- package/dist/css/4945-lite-72ae59fcab.chunk.css +2 -0
- package/dist/css/8852-lite-84d6357a79.chunk.css +1 -0
- package/dist/css/{lite-app-b4540a3be1.css → lite-app-084c45f90e.css} +2 -0
- package/dist/languages/en.json +1 -1
- package/dist/scripts/{1202-d96ad80884-lite.chunk.js → 1202-5473d9962d-lite.chunk.js} +2 -2
- package/dist/scripts/{1202-d96ad80884-lite.chunk.js.map → 1202-5473d9962d-lite.chunk.js.map} +1 -1
- package/dist/scripts/171-acb1ef0ae4-lite.chunk.js +2 -0
- package/dist/scripts/171-acb1ef0ae4-lite.chunk.js.map +1 -0
- package/dist/scripts/1726-b08dde1407-lite.chunk.js +2 -0
- package/dist/scripts/1726-b08dde1407-lite.chunk.js.map +1 -0
- package/dist/scripts/1912-52e57d9f16-lite.chunk.js +2 -0
- package/dist/scripts/1912-52e57d9f16-lite.chunk.js.map +1 -0
- package/dist/scripts/{289-669c0c8222-lite.chunk.js → 289-190caa6455-lite.chunk.js} +2 -2
- package/dist/scripts/{289-669c0c8222-lite.chunk.js.map → 289-190caa6455-lite.chunk.js.map} +1 -1
- package/dist/scripts/{3249-0b55dec380-lite.chunk.js → 3249-08a22f8aaf-lite.chunk.js} +2 -2
- package/dist/scripts/3249-08a22f8aaf-lite.chunk.js.map +1 -0
- package/dist/scripts/3840-df2873e349-lite.chunk.js +2 -0
- package/dist/scripts/3840-df2873e349-lite.chunk.js.map +1 -0
- package/dist/scripts/4006-5078eb2c01-lite.chunk.js +3 -0
- package/dist/scripts/4006-5078eb2c01-lite.chunk.js.map +1 -0
- package/dist/scripts/4525-2ade147f5d-lite.chunk.js +2 -0
- package/dist/scripts/4525-2ade147f5d-lite.chunk.js.map +1 -0
- package/dist/scripts/4945-fbbb21cf54-lite.chunk.js +2 -0
- package/dist/scripts/4945-fbbb21cf54-lite.chunk.js.map +1 -0
- package/dist/scripts/4985-6bdacf82c1-lite.chunk.js +2 -0
- package/dist/scripts/4985-6bdacf82c1-lite.chunk.js.map +1 -0
- package/dist/scripts/5002-c0f45922c6-lite.chunk.js +2 -0
- package/dist/scripts/5002-c0f45922c6-lite.chunk.js.map +1 -0
- package/dist/scripts/516-94eeca32e7-lite.chunk.js +2 -0
- package/dist/scripts/516-94eeca32e7-lite.chunk.js.map +1 -0
- package/dist/scripts/5270-55334d53e9-lite.chunk.js +2 -0
- package/dist/scripts/5270-55334d53e9-lite.chunk.js.map +1 -0
- package/dist/scripts/5579-7d9081e134-lite.chunk.js +2 -0
- package/dist/scripts/{5579-a9c152057f-lite.chunk.js.map → 5579-7d9081e134-lite.chunk.js.map} +1 -1
- package/dist/scripts/5712-37a97adc65-lite.chunk.js +2 -0
- package/dist/scripts/5712-37a97adc65-lite.chunk.js.map +1 -0
- package/dist/scripts/639-0bf7cc53f9-lite.chunk.js +2 -0
- package/dist/scripts/639-0bf7cc53f9-lite.chunk.js.map +1 -0
- package/dist/scripts/6909-b5717e92e8-lite.chunk.js +2 -0
- package/dist/scripts/6909-b5717e92e8-lite.chunk.js.map +1 -0
- package/dist/scripts/7459-c1882c6f0d-lite.chunk.js +3 -0
- package/dist/scripts/7459-c1882c6f0d-lite.chunk.js.map +1 -0
- package/dist/scripts/7604-5d2ba346e2-lite.chunk.js +3 -0
- package/dist/scripts/7604-5d2ba346e2-lite.chunk.js.map +1 -0
- package/dist/scripts/{7617-9d34c841e6-lite.chunk.js → 7617-899a1d0cb1-lite.chunk.js} +2 -2
- package/dist/scripts/7617-899a1d0cb1-lite.chunk.js.map +1 -0
- package/dist/scripts/7742-95097c976d-lite.chunk.js +2 -0
- package/dist/scripts/7742-95097c976d-lite.chunk.js.map +1 -0
- package/dist/scripts/{7843-f6033528ce-lite.chunk.js → 7843-fc9ddb3b52-lite.chunk.js} +2 -2
- package/dist/scripts/7843-fc9ddb3b52-lite.chunk.js.map +1 -0
- package/dist/scripts/{7867-14c692e69c-lite.chunk.js → 7867-589c7bd788-lite.chunk.js} +3 -3
- package/dist/scripts/7867-589c7bd788-lite.chunk.js.map +1 -0
- package/dist/scripts/{787-dcb3a0a26c-lite.chunk.js → 787-5c7976e8cb-lite.chunk.js} +2 -2
- package/dist/scripts/{787-dcb3a0a26c-lite.chunk.js.map → 787-5c7976e8cb-lite.chunk.js.map} +1 -1
- package/dist/scripts/8056-a3d8fa8728-lite.chunk.js +2 -0
- package/dist/scripts/8056-a3d8fa8728-lite.chunk.js.map +1 -0
- package/dist/scripts/{8672-6967ce8a23-lite.chunk.js → 8672-5637204ae3-lite.chunk.js} +2 -2
- package/dist/scripts/{8672-6967ce8a23-lite.chunk.js.map → 8672-5637204ae3-lite.chunk.js.map} +1 -1
- package/dist/scripts/8852-c39595da59-lite.chunk.js +2 -0
- package/dist/scripts/8852-c39595da59-lite.chunk.js.map +1 -0
- package/dist/scripts/8944-022dbd6a0b-lite.chunk.js +2 -0
- package/dist/scripts/8944-022dbd6a0b-lite.chunk.js.map +1 -0
- package/dist/scripts/9742-c839ec5abb-lite.chunk.js +2 -0
- package/dist/scripts/9742-c839ec5abb-lite.chunk.js.map +1 -0
- package/dist/scripts/{8133-ffcff3b7fc-lite.chunk.js → 9803-9a666cfdef-lite.chunk.js} +3 -3
- package/dist/scripts/9803-9a666cfdef-lite.chunk.js.map +1 -0
- package/dist/scripts/bundle-375332cf3f.min.js +3 -0
- package/dist/scripts/{bundle-2bbba2aa8b.min.js.map → bundle-375332cf3f.min.js.map} +1 -1
- package/package.json +1 -1
- package/dist/scripts/171-36c7520c9c-lite.chunk.js +0 -2
- package/dist/scripts/171-36c7520c9c-lite.chunk.js.map +0 -1
- package/dist/scripts/1726-c79cf77a51-lite.chunk.js +0 -2
- package/dist/scripts/1726-c79cf77a51-lite.chunk.js.map +0 -1
- package/dist/scripts/1912-1f78dc635a-lite.chunk.js +0 -2
- package/dist/scripts/1912-1f78dc635a-lite.chunk.js.map +0 -1
- package/dist/scripts/2074-39b86b9a22-lite.chunk.js +0 -2
- package/dist/scripts/2074-39b86b9a22-lite.chunk.js.map +0 -1
- package/dist/scripts/3249-0b55dec380-lite.chunk.js.map +0 -1
- package/dist/scripts/3840-98c79fc0d8-lite.chunk.js +0 -2
- package/dist/scripts/3840-98c79fc0d8-lite.chunk.js.map +0 -1
- package/dist/scripts/3893-2856933742-lite.chunk.js +0 -2
- package/dist/scripts/3893-2856933742-lite.chunk.js.map +0 -1
- package/dist/scripts/4006-9dfe9cec1b-lite.chunk.js +0 -3
- package/dist/scripts/4006-9dfe9cec1b-lite.chunk.js.map +0 -1
- package/dist/scripts/4985-bdfa839f8f-lite.chunk.js +0 -2
- package/dist/scripts/4985-bdfa839f8f-lite.chunk.js.map +0 -1
- package/dist/scripts/5002-7514146621-lite.chunk.js +0 -2
- package/dist/scripts/5002-7514146621-lite.chunk.js.map +0 -1
- package/dist/scripts/5270-d407e1ae84-lite.chunk.js +0 -2
- package/dist/scripts/5270-d407e1ae84-lite.chunk.js.map +0 -1
- package/dist/scripts/5579-a9c152057f-lite.chunk.js +0 -2
- package/dist/scripts/5712-e784cfe89c-lite.chunk.js +0 -2
- package/dist/scripts/5712-e784cfe89c-lite.chunk.js.map +0 -1
- package/dist/scripts/6909-a9b8930e37-lite.chunk.js +0 -2
- package/dist/scripts/6909-a9b8930e37-lite.chunk.js.map +0 -1
- package/dist/scripts/7401-833bc4a088-lite.chunk.js +0 -2
- package/dist/scripts/7401-833bc4a088-lite.chunk.js.map +0 -1
- package/dist/scripts/7604-f664281904-lite.chunk.js +0 -3
- package/dist/scripts/7604-f664281904-lite.chunk.js.map +0 -1
- package/dist/scripts/7617-9d34c841e6-lite.chunk.js.map +0 -1
- package/dist/scripts/7742-342db3ce4f-lite.chunk.js +0 -2
- package/dist/scripts/7742-342db3ce4f-lite.chunk.js.map +0 -1
- package/dist/scripts/7843-f6033528ce-lite.chunk.js.map +0 -1
- package/dist/scripts/7867-14c692e69c-lite.chunk.js.map +0 -1
- package/dist/scripts/8056-eec7c2fda0-lite.chunk.js +0 -2
- package/dist/scripts/8056-eec7c2fda0-lite.chunk.js.map +0 -1
- package/dist/scripts/8133-ffcff3b7fc-lite.chunk.js.map +0 -1
- package/dist/scripts/8364-ff63447d36-lite.chunk.js +0 -3
- package/dist/scripts/8364-ff63447d36-lite.chunk.js.map +0 -1
- package/dist/scripts/8944-b56c3e61fc-lite.chunk.js +0 -2
- package/dist/scripts/8944-b56c3e61fc-lite.chunk.js.map +0 -1
- package/dist/scripts/9742-5f99d74bb0-lite.chunk.js +0 -2
- package/dist/scripts/9742-5f99d74bb0-lite.chunk.js.map +0 -1
- package/dist/scripts/bundle-2bbba2aa8b.min.js +0 -3
- /package/dist/css/{2074-lite-ac8da6c78b.chunk.css → 4525-lite-ac8da6c78b.chunk.css} +0 -0
- /package/dist/css/{8364-lite-db31e36b79.chunk.css → 7459-lite-db31e36b79.chunk.css} +0 -0
- /package/dist/scripts/{4006-9dfe9cec1b-lite.chunk.js.LICENSE.txt → 4006-5078eb2c01-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{7604-f664281904-lite.chunk.js.LICENSE.txt → 7459-c1882c6f0d-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{7867-14c692e69c-lite.chunk.js.LICENSE.txt → 7604-5d2ba346e2-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{8133-ffcff3b7fc-lite.chunk.js.LICENSE.txt → 7867-589c7bd788-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{8364-ff63447d36-lite.chunk.js.LICENSE.txt → 9803-9a666cfdef-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{bundle-2bbba2aa8b.min.js.LICENSE.txt → bundle-375332cf3f.min.js.LICENSE.txt} +0 -0
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[6909],{22406:(e,t,n)=>{n.d(t,{r:()=>u});var r=n(32735),a=n(23481),o=n(83914),i=n(36532),l=n(35223);const c={tag:"XRj8d",tooltip:"X6mLk"};var s="specialEventCalendar.comingSoonTag";function u(e){return r.createElement(i.u,{title:a.T.getPhrase(s,"tooltip"),spanHackClassName:"d-block ".concat(c.tooltip),spanHack:!0},r.createElement("div",{className:"d-flex text-dark align-items-center ".concat(c.tag," ").concat(e.className)},r.createElement(o.x,{svgName:l.vn.Timer}),!e.onlyIcon&&a.T.getPhrase(s,"comingSoon")))}},78408:(e,t,n)=>{n.d(t,{s:()=>i});var r=n(32735),a=n(15611);const o={dateItem:"I3SBm",label:"PRORs",body:"RfiM_",bodyDay:"ZOVny",bodyRange:"vYhXN",bodyMonth:"mYslO",month:"EPkkQ"};function i(e){var t,n,i;return r.createElement(a.F,{appLink:null===(t=e.getAppLink)||void 0===t?void 0:t.call(e),className:"text-decoration-none text-center bg-white text-dark border border-3 ".concat(null===(n=e.theme)||void 0===n?void 0:n.border," rounded-3 d-block fw-semibold ").concat(e.className),analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions},r.createElement("div",{className:"position-relative ".concat(o.dateItem)},r.createElement("div",{className:"".concat(null===(i=e.theme)||void 0===i?void 0:i.background," py-1 ").concat(o.label," d-flex align-items-center justify-content-center")},e.label?e.label:r.createElement(r.Fragment,null," ")),r.createElement("div",{className:"".concat(function(){switch(e.body.type){case"range":return o.bodyRange;case"day":return o.bodyDay;case"month":return o.bodyMonth}}()," ").concat(o.body," my-2")},e.body.text),r.createElement("div",{className:"mb-0 ".concat(o.month)},e.month)))}},67814:(e,t,n)=>{n.d(t,{p:()=>N,v:()=>F});var r=n(32735),a=n(110),o=n(50690),i=n(22406),l=n(78408),c=n(83657),s=n(23481),u=n(15611),d=n(83914),m=n(35223),f="shared.backButton";function v(e){var t=Object.assign({textShadow:!0},e),n=t.backToName,a=t.appLink,o=t.color,i=t.extraClasses,l=t.textShadow,c=n?s.T.getPhrase(f,"backTo",{backToName:n}):s.T.getPhrase(f,"back"),v="black"===o?"":"text-white",p=l?"text-shadow":"";return r.createElement(u.F,{appLink:a,className:"d-inline-flex align-items-center h5 mb-0 ".concat(i," ").concat(v," ").concat(p)},r.createElement(d.x,{svgName:m.vn.ChevronLeft,size:d.S.Medium}),r.createElement("span",{className:"ms-1"},c))}v.defaultProps={color:"black",extraClasses:""};var p=n(4527),g=n(83345),h=n(7733),b=n(10587),y=n(94232),E=n(54610),C=n(79967),S=n(9085),k=n(67453);const x={bannerContent:"sSCTB",actionsContainer:"Z5WI2",bannerContentWithLogo:"rgs7Q",container:"M51HJ",logoContainer:"vkeJk",logoContainerLeft:"M3U9B",logoHeading:"EtRwC",specialEventContainer:"rOxDc",headingLarge:"_8pnV",heading:"JXVBH"};var w="".concat(b.y[E.__.Banners].width,":").concat(b.y[E.__.Banners].height);function A(e){return e.length<160?"h1":x.headingLarge}var N=r.memo(function(e){var t,n,s,u,d=e.heading,m=e.banner,f=e.imageCdnUrl,b=e.actions,N=e.sortComponent,F=e.blockColourClass,O=e.specialEvent,L=r.useContext(y.n),I=(0,C.k)().xxl?1920:1200,P=r.useMemo(function(){if(!O||e.showComingSoon)return!1;var t=a.O.format(new Date,"YYYY-MM-DD");return O.endDate?O.startDate<=t&&O.endDate>=t:O.startDate===t},[O]),M=e.imageOptions||{width:I,ratio:w,resizeType:E.Nq.Cover},T=!!m&&!!f&&k.j.createBannerUrl(m,{fallbackBaseUrl:f,fallbackCategoryName:d,type:E.__.Banners},M),j={className:"banner banner-header ".concat(e.bannerClassName),style:T?{backgroundImage:"url('".concat(T,"')")}:{}};!m&&F&&(delete j.style,j.className+=" ".concat(F));var D=e.detailsComponent,B=(0,S.x)(e.heading,h.o);return o.b.renderInPortalIfExists(r.createElement("header",Object.assign({},j),r.createElement("div",{className:"container ".concat(x.container," position-relative inner-banner")},e.backButtonAppLink&&r.createElement("div",{className:"pt-3"},r.createElement(v,{appLink:e.backButtonAppLink,backToName:e.backButtonText,extraClasses:e.backButtonClasses,color:"white"})),r.createElement("div",{className:"".concat(e.alignLogoLeft?"position-absolute top-50 start-0 translate-middle-y w-100 ps-4":"".concat(x.bannerContent," px-2 ").concat((null===(t=e.logo)||void 0===t?void 0:t.url)?x.bannerContentWithLogo:""))},!!O&&r.createElement("div",{className:"position-relative ".concat(x.specialEventContainer)},r.createElement(l.s,{body:{type:O.endDate?"range":"day",text:O.endDate?"".concat(a.O.format(O.startDate,"DD"),"-").concat(a.O.format(O.endDate,"DD")):a.O.format(O.startDate,"DD")},month:function(e){return e.endDate?a.O.isSame(e.startDate,e.endDate,"month")?a.O.format(e.startDate,"MMMM"):"".concat(a.O.format(e.startDate,"MMM")," - ").concat(a.O.format(e.endDate,"MMM")):a.O.format(e.startDate,"MMMM")}(O),theme:e.calendarTheme})),r.createElement("div",null,P&&r.createElement("div",{className:"rounded-pill py-1 px-2 my-1 me-1 fw-semibold bg-light-blue lh-1 d-inline-block"},r.createElement(g.x,{namespace:"shared.bannerHeader",phrase:"onToday"})),e.showComingSoon&&r.createElement(i.r,{className:"pe-2 fw-semibold mb-1 rounded-pill justify-content-start text-nowrap"}),r.createElement("div",{className:"d-flex align-items-center"},e.alignLogoLeft&&(null===(n=e.logo)||void 0===n?void 0:n.url)&&r.createElement("div",{className:"".concat(x.logoContainerLeft," d-none d-md-block rounded-circle overflow-hidden me-3 ").concat(B)},r.createElement(p.w,{src:k.j.createUrl(null===(s=e.logo)||void 0===s?void 0:s.url,{size:E.h2.Medium}),style:{backgroundColor:e.logoBgColour}})),r.createElement("h1",{className:"text-white text-shadow pe-3 position-static ".concat(x.heading," ").concat(A(d)," ").concat(e.alignLogoLeft?"w-50":"")},d,D&&r.createElement(D,null)))),!!b&&r.createElement("div",{className:x.actionsContainer},r.createElement(c.e,{actions:b,sortComponent:N,actionsDropdownClassName:e.actionsDropdownClassName}))),!e.alignLogoLeft&&!!(null===(u=e.logo)||void 0===u?void 0:u.url)&&r.createElement("div",{className:x.logoContainer},r.createElement("img",{src:k.j.createUrl(e.logo.url,{size:E.h2.Medium}),className:"rounded-circle"})))),null==L?void 0:L.container)},function(e,t){var n,r;return e.actions===t.actions&&e.heading===t.heading&&(null===(n=e.logo)||void 0===n?void 0:n.url)===(null===(r=t.logo)||void 0===r?void 0:r.url)});function F(){var e=r.useContext(y.n);return o.b.renderInPortalIfExists(r.createElement("div",{className:"partial-banner partial-loading-background ".concat(x.banner)}),null==e?void 0:e.container)}},94644:(e,t,n)=>{n.d(t,{r:()=>u});var r=n(50242),a=n(81886),o=n(67058),i=n(14553),l=n(49267),c=n(49075),s={notFound:o.d,forbidden:{rating:i.q,yearLevel:i.q,region:l.a,privacy:i.q},badRequest:c._,internalServerError:c._};function u(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e){var o;o="number"==typeof e?e:e.status;var i=Object.assign(Object.assign({},s),t);o&&a.Q.Ry.isStatusCodeError(o)&&(o!==r.o.InternalServer?o!==r.o.NotFound?o!==r.o.Forbidden?n.badRequest||a.Q.Ry.throw(new i.badRequest):n.forbidden||a.Q.Ry.throw(new i.forbidden.privacy):n.notFound||a.Q.Ry.throw(new i.notFound):n.internalServerError||a.Q.Ry.throw(new c._))}}},39902:(e,t,n)=>{n.d(t,{FN:()=>v,SW:()=>p,fh:()=>f});var r=n(32735),a=n(20354),o=n(75896);function i(e){return function(e){if(Array.isArray(e))return c(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||l(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(e,t){if(e){if("string"==typeof e)return c(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?c(e,t):void 0}}function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function s(e){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s(e)}function u(e,t,n){return(t=function(e){var t=function(e){if("object"!=s(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=s(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==s(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var d=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n},m=50;function f(e,t){var n=o.m.chunk(e,m).map(function(e){return t(o.m.uniq(e))}),r=a.a.useBasicFetchAll(n),i=o.m.flatten(r.data),l=r.data.length?i.reduce(function(e,t){return Object.assign(Object.assign({},e),u({},t.id,t))},{}):null;return{itemsArr:i,items:l,isFetching:r.isFetching,hasCompleted:r.hasCompleted}}function v(e,t,n){var a=null!=n?n:function(e){return"object"===s(e)?e.id:e},o=p({getRequest:t,_getKey:n}),i=o.fetchItems,l=d(o,["fetchItems"]);return r.useEffect(function(){(null==e?void 0:e.length)&&i(e)},[null==e?void 0:e.map(a).join(",")]),l}function p(e){var t,n,c,d,f,v=null!==(t=e._getKey)&&void 0!==t?t:function(e){return"object"===s(e)?e.id:e},p=r.useRef(new Set),g=(d=r.useState([]),f=2,function(e){if(Array.isArray(e))return e}(d)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,o,i,l=[],c=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=o.call(n)).done)&&(l.push(r.value),l.length!==t);c=!0);}catch(e){s=!0,a=e}finally{try{if(!c&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(s)throw a}}return l}}(d,f)||l(d,f)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),h=g[0],b=g[1],y=a.a.useBasicFetchAll(h),E=o.m.flatten(y.data),C=y.data.length?E.reduce(function(e,t){return Object.assign(Object.assign({},e),u({},v(t),t))},{}):null;return{hasFirstRequestCompleted:!!(null===(c=null===(n=y.responses)||void 0===n?void 0:n[0])||void 0===c?void 0:c.hasCompleted),itemsArr:E,items:C,isFetching:y.isFetching,fetchItems:function(t){if(null==t?void 0:t.length){var n=[];t.forEach(function(e){var t=v(e);p.current.has(t)||(n.push(e),p.current.add(t))}),n.length&&b(function(t){return[].concat(i(t),i(o.m.chunk(n,m).map(e.getRequest)))})}}}}},60115:(e,t,n)=>{n.d(t,{K:()=>s});var r=n(32735),a=n(50242),o=n(91967),i=400,l=n(45719);function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function s(e,t,n,s,u,d){var m,f,v,p,g=(m=(0,r.useState)(0),f=2,function(e){if(Array.isArray(e))return e}(m)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,o,i,l=[],c=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=o.call(n)).done)&&(l.push(r.value),l.length!==t);c=!0);}catch(e){s=!0,a=e}finally{try{if(!c&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(s)throw a}}return l}}(m,f)||function(e,t){if(e){if("string"==typeof e)return c(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?c(e,t):void 0}}(m,f)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),h=g[0],b=g[1],y=t,E=(0,l.P)(function(t){if(!e)return null;var n=e(t);return n?n.key:null},s,u);return v={fetchNextPage:function(){if(t&&e&&E)return b(function(e){return e+1}),y(E.nextCursor)},hasMore:!!(null==E?void 0:E.nextCursor),isFetching:null==E?void 0:E.isFetching,scrollContainer:d},p=function(){if(!v.isFetching){if(v.scrollContainer){var e=v.scrollContainer;if(e.getBoundingClientRect().height+e.scrollTop<e.scrollHeight-i)return}else if(window.innerHeight+document.documentElement.scrollTop<document.documentElement.scrollHeight-i)return;v.fetchNextPage()}},(0,r.useEffect)(function(){var e=o.q.throttle(p,200),t=v.scrollContainer||window;return v.hasMore&&t.addEventListener("scroll",e),function(){return t.removeEventListener("scroll",e)}},[v.hasMore,v.fetchNextPage,v.scrollContainer]),(0,r.useEffect)(function(){E&&E.shouldInitialFetch&&t&&(y(),b(function(e){return e+1}))},[null==E?void 0:E.shouldInitialFetch,t]),(0,r.useEffect)(function(){var e,t;if((null==E?void 0:E.statusCode)&&o.q.isFunction(n)){var r=+(null===(t=null===(e=E.statusCode)||void 0===e?void 0:e.toString())||void 0===t?void 0:t.substr(0,1));r!==a.k.ClientError&&r!==a.k.ServerError||n(h,E.statusCode)}},[null==E?void 0:E.statusCode]),{items:null==E?void 0:E.items,hasMore:!!(null==E?void 0:E.nextCursor),nextCursor:null==E?void 0:E.nextCursor,isFetching:null==E?void 0:E.isFetching,totalItems:null==E?void 0:E.totalItems,hasFirstPageCompleted:null==E?void 0:E.hasFirstPageCompleted}}},63719:(e,t,n)=>{n.d(t,{h:()=>l});var r=n(32735),a=n(77316);function o(e,t){if(e){if("string"==typeof e)return i(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)?i(e,t):void 0}}function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function l(e){var t,n,l=(t=r.useMemo(function(){return a.p.getBuilder()},[]),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,o,i,l=[],c=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=o.call(n)).done)&&(l.push(r.value),l.length!==t);c=!0);}catch(e){s=!0,a=e}finally{try{if(!c&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(s)throw a}}return l}}(t,n)||o(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.")}()),c=l[0],s=(0,l[1])(c);return s&&e?[].concat(function(e){return function(e){if(Array.isArray(e))return i(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||o(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}(s),[Object.assign(Object.assign({},e),{active:!0})]):s}},12909:(e,t,n)=>{n.d(t,{H:()=>d});var r=n(32735),a=n(15611),o=n(83914),i=n(83345),l=n(35223),c=n(14070),s=n(97291),u="signUp.softGateBanner";function d(){return r.createElement("div",{role:"alert",className:"bg-light-indigo text-indigo rounded p-2 mb-4 d-flex align-items-center"},r.createElement(o.x,{svgName:l.vn.StarOutline,size:o.S.Large}),r.createElement(i.x,{namespace:u,phrase:"softGate"})," ",r.createElement(a.F,{appLink:{application:s.O.SIGN_UP,action:c.e.SignUp.PREMIUM_FEATURES},className:"indigo-link text-indigo text-underline d-inline"},r.createElement(i.x,{namespace:u,phrase:"learnMore"})))}},58321:(e,t,n)=>{n.d(t,{U:()=>v});var r=n(20354),a=n(16714),o=n(39151),i=n(1666),l=n(31949),c=n(22902),s=n(37802),u=n(22490),d=n(82431),m=n(46390),f=n(27638);function v(e){var t,n,v,p=e||{},g=p.locationContext,h=p.mtv,b=p.flightNamespace,y=p.sharedPlaylist,E=(0,m.G)(),C=E.isPlugin,S=E.params,k=(0,f.u)(g,b),x=k.setFavourite,w=k.canFavourite,A=(0,s.r)(null),N=A.hasTopicDirectories,F=A.isLoadingSettings,O=(0,c.T)(),L=O.hasPermissions,I=O.isLoaded,P=L(a.C.StudentExperience),M=L(a.C.GuestExperience),T=r.a.useBasicFetch(o.L.config()),j=r.a.useBasicFetch(l.N.currentUser()),D=r.a.useBasicFetch((null===(t=j.data)||void 0===t?void 0:t.isAuthenticated)&&i.h.yearGroups(j.data.customerId));return{hasCommonVideoPropsCompleted:!F&&I&&T.hasCompleted&&j.hasCompleted&&(!(null===(n=j.data)||void 0===n?void 0:n.isAuthenticated)||D.hasCompleted),commonVideoProps:{subTextType:"series",getSubTextAppLink:function(e){var t;return"series"in e?y&&!(null===(t=j.data)||void 0===t?void 0:t.isAuthenticated)?null:d.j.getSeriesAppLink(e.series,{mtv:h}):null},isPlugin:C,isPluginPopup:!!(null==S?void 0:S.popup),canFavourite:w,setFavourite:x,imageCdnUrl:null===(v=T.data)||void 0===v?void 0:v.imageCdnUrl,yearGroups:D.data,getClassroomGuideAppLink:u.W.getClassroomGuideAppLink,getInteractiveGuidanceAppLink:u.W.getInteractiveGuidanceAppLink,getResourceGuidanceAppLink:u.W.getResourceGuidanceAppLink,showNewVideoIndicator:N,companyLogoFallbackUrl:null,hasStudentExperience:P,hasGuestExperience:M}}}},44110:(e,t,n)=>{n.d(t,{i:()=>i});var r=n(20354),a=n(89454),o=n(86698),i=function(){var e=(0,o.y)({redirectOnError:!0}),t=e.activePresentation,n=e.getFallbackPresentation,i=t||n();return r.a.useBasicFetch(!!i&&a.O.presentationAudiences(i.id))}},97816:(e,t,n)=>{n.d(t,{V:()=>l,l:()=>c});var r=n(1575),a=n(39902),o=n(31908);function i(e){return e?Array.isArray(e)?e.filter(function(e){return!!e&&(o.M.isVideo(e)||o.M.isClip(e))}):"data"in e?e.data.filter(function(e){return!!e&&(o.M.isVideo(e)||o.M.isClip(e))}):[]:[]}function l(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=i(e).map(function(e){return e.id});(0,a.FN)(n,function(e){return r.R.videoMixinAssocs(e,t.flightNamespace)},null)}function c(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=(0,a.SW)({getRequest:function(t){return r.R.videoMixinAssocs(t,e.flightNamespace)}}).fetchItems;return{fetchObjects:function(e){return t(i(e).map(function(e){return e.id}))}}}},96909:(e,t,n)=>{n.r(t),n.d(t,{FavouritesView:()=>Z});var r=n(32735),a=n(70680),o=n(23481),i=n(20354),l=n(65858),c=n(67814),s=n(49935),u=n(87801),d=n(83345),m=n(1860),f=n(3534),v=n(51365),p=n(16714),g=n(94644),h=n(39151),b=n(63419),y=n(31949),E=n(69883),C=n(63719),S=n(60115),k=n(22902),x=n(79612),w=n(99742),A=n(58321),N=n(44110),F=n(97816),O=n(10741),L=n(22490),I=n(12909),P=n(97958),M=n(14070),T=n(97291);const j={image:"ZfpQv"};var D="shared.favouritesEmptyState",B=o.T.encloseNamespace(D);function R(){return r.createElement(d.D.Provider,{value:D},r.createElement(P.u,null,r.createElement(P.u.Image,{src:w.W.EmptyStates.FAVOURITED_VIDEOS,altText:B("info"),className:j.image}),r.createElement(P.u.Heading,{className:"h3"},r.createElement(d.x,{phrase:"heading"})),r.createElement(P.u.Info,null,r.createElement(d.x,{phrase:"info"})),r.createElement(P.u.Cta,{text:o.T.getPhrase(D,"cta"),appLink:{application:T.O.DASHBOARD,action:M.e.Dashboard.HOME}})))}function U(){return r.createElement(d.D.Provider,{value:D},r.createElement(P.u,null,r.createElement(P.u.Image,{src:w.W.EmptyStates.FAVOURITED_VIDEOS_PUBLIC,altText:B("publicInfo")}),r.createElement(P.u.Heading,null,r.createElement(d.x,{phrase:"publicHeading"})),r.createElement(P.u.Info,null,r.createElement(d.x,{phrase:"publicInfo"})),r.createElement(P.u.Cta,{text:o.T.getPhrase(D,"publicCta"),appLink:{application:T.O.SIGN_UP,action:M.e.SignUp.SIGN_UP},analyticsData:{},analyticsOptions:{actionType:l.Vw.Click,location:l.LZ.MyFavouritesLanding,entity:l.py.AppLink,workflowPhase:l.eu.Start,descriptor:l.Yu.SignUp}})))}var V=n(26323),_=n(35223),G=n(31908),H=n(10671),q=n(27638),W="shared.favourites";const Q={banner:"FEWd3"};var Y="shared.favourites";function Z(){var e,t,n=(0,a.I0)(),P=(0,E.Z)(),M=(0,A.U)({locationContext:l.LZ.VideoThumbnail}).commonVideoProps,T=function(){var e=(0,H._)({location:H.i.VideoItem}),t=(0,q.u)(l.LZ.VideoThumbnail).setFavourite;return Object.assign(Object.assign({},e),{getVideoActions:function(n){return G.M.getCanBeConsumed(n).canConsume?e.getVideoActions(n):[{label:o.T.getPhrase(W,"removeFromFavourites"),svgName:_.vn.Delete,button:!1,className:"btn btn-link text-danger",onClick:function(){return t(n,!1)}}]}})}();(0,x.M)({title:o.T.getPhrase(Y,"pageTitle")});var j=(0,k.T)(),D=j.hasLocalPermissions,B=j.hasPermissions,Z=j.getGatedPermission,z=i.a.useBasicFetch(y.N.currentUser()),K=i.a.useBasicFetch(h.L.config()),X=function(e){return b.P.getFavourites(z.data.id,e)},$=function(e){return i.a.getFetch(n)(X(e))},J=!D(p.E.ViewMyFavouritesLanding)&&z.hasCompleted,ee=(0,S.K)(!!J&&X,$,function(e,t){if(1===e)return(0,g.r)(t);P.error(o.T.getPhrase(Y,"error"))}),te=ee.items,ne=ee.hasMore,re=ee.isFetching;(0,F.V)(te);var ae=(0,N.i)(),oe=(0,C.h)({name:o.T.getPhrase(Y,"header")}),ie=(0,V.B)(null===(e=z.data)||void 0===e?void 0:e.id),le=ie.count;return ie.isLoading?r.createElement(r.Fragment,null):D(p.E.ViewMyFavouritesLanding)?r.createElement(U,null):r.createElement(v.M.Provider,{value:T},r.createElement("div",{className:"p-3"},r.createElement(c.p,{heading:o.T.getPhrase(Y,"header"),banner:{url:w.W.FAVOURITES_PLAYLIST.FAV_PLAYLIST_BANNER},bannerClassName:"".concat(Q.banner," bg-pink"),imageCdnUrl:null===(t=K.data)||void 0===t?void 0:t.imageCdnUrl,detailsComponent:function(){return r.createElement("div",{className:"mb-n1 font-size-normal fw-normal mt-1"},r.createElement(d.x,{namespace:Y,phrase:"videos",options:{smartCount:le}}))}}),"soft-gate"===Z(p.C.FavouriteVideo)&&r.createElement(I.H,null),(null==oe?void 0:oe.length)&&r.createElement("div",{className:"border-bottom pb-3"},r.createElement(s.Oo,{breadcrumbs:oe})),te?te.length?r.createElement("div",{className:"mt-2"},r.createElement(f.E4,{videos:te,getVideoAppLink:L.W.getAppLink,hasPermissions:B,presentationAudiences:ae.data,getPreviewQuestionsAppLink:function(e){return O.j.getPreviewQuestionsAppLink(e)},commonVideoProps:M}),(ne||re)&&r.createElement(u._,{isFetching:re,fetchNext:$})):r.createElement(R,null):r.createElement(m.S,null)))}},26323:(e,t,n)=>{n.d(t,{B:()=>l});var r=n(20354),a=n(63419);function o(e){return function(e){if(Array.isArray(e))return i(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return i(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)?i(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function l(e){var t,n,i,l,c,s,u,d,m,f=r.a.useBasicFetch(e&&a.P.getFavouritesVideosCount(e)),v=r.a.useBasicFetch(e&&a.P.getFavouritesClipsCount(e)),p=r.a.useBasicFetch(e&&a.P.getFavouritesInteractivesCount(e));return{count:(null===(t=f.data)||void 0===t?void 0:t.count)+(null===(n=p.data)||void 0===n?void 0:n.count)+(null===(i=v.data)||void 0===i?void 0:i.count),favourites:[].concat(o((null===(l=f.data)||void 0===l?void 0:l.data)||[]),o((null===(c=v.data)||void 0===c?void 0:c.data)||[]),o((null===(s=p.data)||void 0===s?void 0:s.data)||[])),isLoading:!(null===(u=f.data)||void 0===u?void 0:u.data)||!(null===(d=v.data)||void 0===d?void 0:d.data)||!(null===(m=p.data)||void 0===m?void 0:m.data)}}}}]);
|
|
2
|
-
//# sourceMappingURL=6909-a9b8930e37-lite.chunk.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scripts/6909-a9b8930e37-lite.chunk.js","mappings":"+LACA,SAAgB,IAAM,QAAQ,QAAU,SCSxC,IAAMA,EAAY,qCAOZ,SAAUC,EAAcC,GAC5B,OACE,gBAACC,EAAA,EAAO,CAACC,MAAOC,EAAA,YAA0BL,EAAW,WAAYM,kBAAiB,kBAAa,WAAkBC,UAAQ,GACvH,uBAAKC,UAAS,8CAAyC,MAAU,YAAIN,EAAMM,YACzE,gBAACC,EAAA,EAAY,CAACC,QAAS,cACrBR,EAAMS,UAAYN,EAAA,YAA0BL,EAAW,eAIjE,C,6DCzBA,SAAgB,SAAW,QAAQ,MAAQ,QAAQ,KAAO,QAAQ,QAAU,QAAQ,UAAY,QAAQ,UAAY,QAAQ,MAAQ,SCyB9H,SAAUY,EAAoBV,G,UAYlC,OACE,gBAACW,EAAA,EAAO,CACNC,QAAyB,QAAhB,EAAAZ,EAAMa,kBAAU,uBACzBP,UAAS,8EAAoF,QAAX,EAAAN,EAAMc,aAAK,eAAEC,OAAM,0CAAkCf,EAAMM,WAC7IU,cAAehB,EAAMgB,cACrBC,iBAAkBjB,EAAMiB,kBAExB,uBAAKX,UAAS,4BAAuB,aACnC,uBAAKA,UAAS,UAAgB,QAAX,EAAAN,EAAMc,aAAK,eAAEI,WAAU,iBAAS,QAAY,sDAC5DlB,EAAMmB,MAAQnB,EAAMmB,MAAQ,sCAE/B,uBAAKb,UAAS,UAtBpB,WACE,OAAQN,EAAMoB,KAAKC,MACjB,IAAK,QACH,OAAO,YACT,IAAK,MACH,OAAO,UACT,IAAK,QACH,OAAO,YAEb,CAayBC,GAAc,YAAI,OAAW,UAC7CtB,EAAMoB,KAAKG,MAEd,uBAAKjB,UAAS,eAAU,UACrBN,EAAMwB,QAKjB,C,2JCjDM1B,EAAY,oBAkBZ,SAAU2B,EAAWzB,GACzB,MAA8D,eAC5D0B,YAAY,GACT1B,GAFG2B,EAAU,EAAVA,WAAYf,EAAO,EAAPA,QAASgB,EAAK,EAALA,MAAOC,EAAY,EAAZA,aAAcH,EAAU,EAAVA,WAK5CI,EAAaH,EACfxB,EAAA,YAA0BL,EAAW,SAAU,CAAE6B,WAAAA,IACjDxB,EAAA,YAA0BL,EAAW,QAEnCiC,EAAuB,UAAVH,EAAoB,GAAK,aACtCI,EAAkBN,EAAa,cAAgB,GAErD,OACE,gBAACf,EAAA,EAAO,CACNC,QAASA,EACTN,UAAS,mDAA8CuB,EAAY,YAAIE,EAAU,YAAIC,IAErF,gBAACzB,EAAA,EAAY,CAACC,QAAS,iBAA0ByB,KAAM1B,EAAA2B,EAAA,SACvD,wBAAM5B,UAAU,QAAQwB,GAG9B,CA3BAL,EAAWU,aAAe,CACxBP,MAAO,QACPC,aAAc,I,oGCvBhB,SAAgB,cAAgB,QAAQ,iBAAmB,QAAQ,sBAAwB,QAAQ,UAAY,QAAQ,cAAgB,QAAQ,kBAAoB,QAAQ,YAAc,QAAQ,sBAAwB,QAAQ,aAAe,QAAQ,QAAU,SCuBlQ,IAAMO,EAAQ,GAAH,OAAM,IAAmB,cAAmBC,MAAK,YAAI,IAAmB,cAAmBC,QAatG,SAASC,EAAaC,GACpB,OAAIA,EAAQC,OAAS,IACZ,KAEF,cACT,CAwBA,IAEaC,EAAe,OAAW,SAAS1C,G,YACtCwC,EAAyFxC,EAAzFwC,QAASG,EAAgF3C,EAAhF2C,OAAQC,EAAwE5C,EAAxE4C,YAAaC,EAA2D7C,EAA3D6C,QAASC,EAAkD9C,EAAlD8C,cAAeC,EAAmC/C,EAAnC+C,iBAAkBC,EAAiBhD,EAAjBgD,aAE1EC,EAAyB,aAAiBC,EAAA,GAE1CC,GA5Cc,EAAAC,EAAA,KAEJC,IALS,KADL,KAkDdC,EAAsB,UAAc,WACxC,IAAKN,GAAgBhD,EAAMuD,eACzB,OAAO,EAET,IAAMC,EAAQC,EAAA,SAAkB,IAAIC,KAAQ,cAE5C,OAAKV,EAAaW,QAGXX,EAAaY,WAAaJ,GAASR,EAAaW,SAAWH,EAFzDR,EAAaY,YAAcJ,CAGtC,EAAG,CAACR,IAYEa,EAAe7D,EAAM6D,cAAgB,CACzCxB,MAAOc,EACPW,MAAO1B,EACP2B,WAAY,YAGRC,IAAQrB,KAAYC,GAAeqB,EAAA,kBAA4BtB,EAAQ,CAC3EuB,gBAAiBtB,EACjBuB,qBAAsB3B,EACtBnB,KAAM,cACLwC,GAEGO,EAAgG,CACpG9D,UAAW,wBAAF,OAA0BN,EAAMqE,iBACzCC,MAAON,EAAM,CAAEO,gBAAiB,QAAF,OAAUP,EAAG,OAAS,CAAC,IAGlDrB,GAAUI,WACNqB,EAAeE,MACtBF,EAAe9D,WAAa,IAAJ,OAAQyC,IAGlC,IAAMyB,EAAmBxE,EAAMyE,iBAEzBC,GAA0B,EAAAC,EAAA,GAAgB3E,EAAMwC,QAAS,KAE/D,OAAOoC,EAAA,yBAEL,0CAAYR,GACV,uBAAK9D,UAAS,oBAAe,YAAgB,oCAC1CN,EAAM6E,mBACL,uBAAKvE,UAAU,QACb,gBAACmB,EAAU,CACTb,QAASZ,EAAM6E,kBACflD,WAAY3B,EAAM8E,eAClBjD,aAAc7B,EAAM+E,kBACpBnD,MAAM,WAKZ,uBAAKtB,UAAS,UAAKN,EAAMgF,cAAgB,iEAAmE,GAAH,OAAM,gBAAoB,kBAAmB,QAAV,EAAAhF,EAAMiF,YAAI,eAAEjB,KAAM,wBAA+B,QACxLhB,GACD,uBAAK1C,UAAS,4BAAuB,0BACnC,gBAACI,EAAA,EAAmB,CAClBU,KAAM,CACJC,KAAM2B,EAAaW,QAAU,QAAU,MACvCpC,KAAMyB,EAAaW,QAAO,UACnBF,EAAA,SAAkBT,EAAaY,UAAW,MAAK,YAAIH,EAAA,SAAkBT,EAAaW,QAAS,OAC9FF,EAAA,SAAkBT,EAAaY,UAAW,OAEhDpC,MA7Dd,SAAkCwB,GAChC,OAAKA,EAAaW,QAGdF,EAAA,SAAkBT,EAAaY,UAAWZ,EAAaW,QAAS,SAC3DF,EAAA,SAAkBT,EAAaY,UAAW,QAE5C,GAAP,OAAUH,EAAA,SAAkBT,EAAaY,UAAW,OAAM,cAAMH,EAAA,SAAkBT,EAAaW,QAAS,QAL/FF,EAAA,SAAkBT,EAAaY,UAAW,OAMrD,CAqDqBsB,CAAyBlC,GAChClC,MAAOd,EAAMmF,iBAInB,2BACG7B,GACC,uBAAKhD,UAAU,kFACb,gBAAC8E,EAAA,EAAI,CAACtF,UA1FJ,sBA0F0BuF,OAAO,aAGtCrF,EAAMuD,gBACL,gBAACxD,EAAA,EAAa,CAACO,UAAU,yEAE3B,uBAAKA,UAAU,6BACZN,EAAMgF,gBAA2B,QAAV,EAAAhF,EAAMiF,YAAI,eAAEjB,MAClC,uBAAK1D,UAAS,UAAK,oBAAwB,kEAA0DoE,IACnG,gBAACY,EAAA,EAAS,CACRC,IAAKtB,EAAA,YAAgC,QAAV,EAAAjE,EAAMiF,YAAI,eAAEjB,IAAK,CAAE/B,KAAM,cACpDqC,MAAO,CAAEkB,gBAAiBxF,EAAMyF,iBAItC,sBAAInF,UAAS,sDAAiD,UAAc,YAAIiC,EAAaC,GAAQ,YAAIxC,EAAMgF,cAAgB,OAAS,KACrIxC,EACAgC,GAAoB,gBAACA,EAAgB,WAIzC3B,GACD,uBAAKvC,UAAW,oBACd,gBAACoF,EAAA,EAAO,CACN7C,QAASA,EACTC,cAAeA,EACf6C,yBAA0B3F,EAAM2F,8BAKtC3F,EAAMgF,kBAA6B,QAAV,EAAAhF,EAAMiF,YAAI,eAAEjB,MACrC,uBAAK1D,UAAW,iBACd,uBACEiF,IAAKtB,EAAA,YAAsBjE,EAAMiF,KAAKjB,IAAK,CAAE/B,KAAM,cACnD3B,UAAU,sBAMpB2C,aAAsB,EAAtBA,EAAwB2C,UAE5B,EAAG,SAACC,EAAWC,G,QAAuB,OACpCD,EAAUhD,UAAYiD,EAAUjD,SAC7BgD,EAAUrD,UAAYsD,EAAUtD,UAClB,QAAd,EAAAqD,EAAUZ,YAAI,eAAEjB,QAAsB,QAAd,EAAA8B,EAAUb,YAAI,eAAEjB,I,GAGvC,SAAU+B,IACd,IAAM9C,EAAyB,aAAiBC,EAAA,GAEhD,OAAO0B,EAAA,yBACL,uBAAKtE,UAAS,oDAA+C,YAC7D2C,aAAsB,EAAtBA,EAAwB2C,UAE5B,C,yGCzLMI,EAA8B,CAClCC,SAAU,IACVC,UAAW,CACTC,OAAQ,IACRC,UAAW,IACXC,OAAQ,IACRC,QAAS,KAEXC,WAAY,IACZC,oBAAqB,KAGjB,SAAUC,EACdC,GAMkC,IALlCC,EAAA,uDAA+B,CAAC,EAKhCC,EAAA,uDAAgC,CAAC,EAEjC,GAAKF,EAAL,CAGA,IAAIG,EAGFA,EADmB,iBAAVH,EACIA,EAEAA,EAAKI,OAGpB,IAAMC,EAAW,OAAH,wBACTf,GACAW,GAGAE,GAGA,yBAAmCA,KAGpCA,IAAe,mBAMfA,IAAe,aAMfA,IAAe,cAUdD,EAAUL,YACb,aAAuB,IAAIQ,EAASR,YAN/BK,EAAUV,WACb,aAAuB,IAAIa,EAASb,UAAUI,SAX3CM,EAAUX,UACb,aAAuB,IAAIc,EAASd,UAPjCW,EAAUJ,qBACb,aAAuB,IAAI,KAvBvB,CA6CV,C,+vDCvFMQ,EAAa,GAkBb,SAAUC,EACdC,EACAC,GAEA,IAEMC,EAFS,UAA0BF,EAASF,GAE1BK,IAAI,SAAAC,GAAK,OAAIH,EAAW,SAAiBG,GAAO,GAElEC,EAAY,qBAA6BH,GAEzCI,EAAW,YAAoBD,EAAUE,MACzCC,EAAQH,EAAUE,KAAKhF,OACzB+E,EAASG,OAAO,SAACC,EAAKC,GAAI,OAAK,+BAAMD,GAAG,KAAGC,EAAKC,GAAKD,GAAI,EAAK,CAAC,GAC/D,KAEJ,MAAO,CACLL,SAAAA,EACAE,MAAAA,EACAK,WAAYR,EAAUQ,WACtBC,aAAcT,EAAUS,aAE5B,CAQM,SAAUC,EACdC,EACAf,EACAgB,GAEA,IAAMC,EAASD,QAAAA,EAAY,SAACE,GAC1B,MAAmB,WAAf,EAAOA,GACFA,EAAIP,GAENO,CACT,EAEM,EAA0BC,EAA8C,CAAEnB,WAAAA,EAAYgB,QAAAA,IAApFI,EAAU,EAAVA,WAAed,EAAI,IAArB,gBASN,OAPA,YAAgB,YACTS,aAAI,EAAJA,EAAMzF,SAGX8F,EAAWL,EACb,EAAG,CAACA,aAAI,EAAJA,EAAMb,IAAIe,GAAQI,KAAK,OAEpBf,CACT,CAWM,SAAUa,EACdG,G,cAEML,EAAwB,QAAf,EAAAK,EAAQN,eAAO,QAAK,SAACE,GAClC,MAAmB,WAAf,EAAOA,GACFA,EAAIP,GAENO,CACT,EAEMK,EAAe,SAA0B,IAAIC,KACmB,G,EAApC,WAAiC,I,EAAG,E,unBAA9DvB,EAAQ,KAAEwB,EAAW,KAwBvBrB,EAAY,qBAAqCH,GACjDI,EAAW,YAAoBD,EAAUE,MACzCC,EAAQH,EAAUE,KAAKhF,OACzB+E,EAASG,OAAkC,SAACC,EAAKC,GAAI,OAAK,+BAAMD,GAAG,KAAGQ,EAAOP,GAAQA,GAAI,EAAK,CAAC,GAC/F,KAEJ,MAAO,CACLgB,4BAAoD,QAAxB,EAAmB,QAAnB,EAAAtB,EAAUA,iBAAS,eAAG,UAAE,eAAES,cACtDR,SAAAA,EACAE,MAAAA,EACAK,WAAYR,EAAUQ,WACtBQ,WAjCF,SAAoBL,GAClB,GAAKA,aAAI,EAAJA,EAAMzF,OAAX,CAGA,IAAMqG,EAA6B,GAEnCZ,EAAKa,QAAQ,SAAAV,GACX,IAAMW,EAAMZ,EAAOC,GAEfK,EAAaO,QAAQC,IAAIF,KAG7BF,EAAeK,KAAKd,GACpBK,EAAaO,QAAQG,IAAIJ,GAC3B,GAEKF,EAAerG,QAGpBmG,EAAY,SAAAS,GAAC,kBAAUA,GAAC,EAAK,UAA4BP,EAAgB9B,GAAYK,IAAIoB,EAAQtB,aAAW,EAjBpG,CAkBV,EAeF,C,wECnIMmC,EAAmB,I,iHC2BnB,SAAUC,EACdpC,EACAqC,EACAC,EACAC,EACAC,EACAC,GAEA,I,ID1BgCnB,EAC1BoB,ECyB+C,G,GAAX,IAAAC,UAAS,G,EAAE,E,o4BAA7CC,EAAY,KAAEC,EAAe,KAE/BC,EAAcT,EAcdU,GAAW,OAZjB,SAAgBC,GACd,IAAKhD,EACH,OAAO,KAET,IAAMiD,EAAUjD,EAAWgD,GAE3B,OAAKC,EAGEA,EAAQpB,IAFN,IAGX,EAIEU,EACAC,GAwCF,ODrFgClB,ECwDd,CAChB4B,cATF,WACE,GAAKb,GAAcrC,GAAe+C,EAIlC,OADAF,EAAgB,SAAAM,GAAU,OAAIA,EAAa,CAAC,GACrCL,EAAYC,EAASK,WAC9B,EAIEC,WAAWN,aAAQ,EAARA,EAAUK,YACrBxC,WAAYmC,aAAQ,EAARA,EAAUnC,WACtB6B,gBAAAA,GD3DIC,EAAe,WACnB,IAAIpB,EAAQV,WAAZ,CAGA,GAAKU,EAAQmB,gBAON,CACL,IAAQA,EAAoBnB,EAApBmB,gBAKR,GAJ4BA,EAAgBa,wBAAwBnI,OAASsH,EAAgBc,UAEzEd,EAAgBe,aAAerB,EAGjD,MACH,MAVC,GAJ4BsB,OAAOC,YAAcC,SAASC,gBAAgBL,UAEtDI,SAASC,gBAAgBJ,aAAerB,EAG1D,OAWJb,EAAQ4B,eAnBA,CAoBV,GAEA,IAAAW,WAAU,WACR,IAAMC,EAAWC,EAAA,WAAwBrB,EAAc,KAEjDD,EAAkBnB,EAAQmB,iBAAmBgB,OAKnD,OAHInC,EAAQ+B,SACVZ,EAAgBuB,iBAAiB,SAAUF,GAEtC,kBAAMrB,EAAgBwB,oBAAoB,SAAUH,EAAS,CACtE,EAAG,CAAExC,EAAQ+B,QAAS/B,EAAQ4B,cAAe5B,EAAQmB,mBC6BrD,IAAAoB,WAAU,WACHd,GAGDA,EAASmB,oBAAsB7B,IACjCS,IACAD,EAAgB,SAAAM,GAAU,OAAIA,EAAa,CAAC,GAEhD,EAAG,CAAEJ,aAAQ,EAARA,EAAUmB,mBAAoB7B,KAEnC,IAAAwB,WAAU,W,QACR,IAAKd,aAAQ,EAARA,EAAUrD,aAAeqE,EAAA,aAA0BzB,GAAxD,CAGA,IAAM6B,IAAoE,QAA/B,EAAmB,QAAnB,EAAApB,EAASrD,kBAAU,eAAE0E,kBAAU,eAAEC,OAAO,EAAG,IAElFF,IAAoBG,EAAA,eAA+BH,IAAoBG,EAAA,eAG3EhC,EAAQM,EAAcG,EAASrD,WAPvB,CAQV,EAAG,CAACqD,aAAQ,EAARA,EAAUrD,aAEP,CACLa,MAAOwC,aAAQ,EAARA,EAAUxC,MACjB8C,WAAWN,aAAQ,EAARA,EAAUK,YACrBA,WAAYL,aAAQ,EAARA,EAAUK,WACtBxC,WAAYmC,aAAQ,EAARA,EAAUnC,WACtB2D,WAAYxB,aAAQ,EAARA,EAAUwB,WACtBC,sBAAuBzB,aAAQ,EAARA,EAAUyB,sBAErC,C,mbCrGM,SAAUC,EAAe3C,GAC7B,I,IAAqF,G,EAAvD,UAAc,kBAAM,gBAA8B,EAAE,I,EAAG,E,unBAA7E4C,EAAK,KAEPC,GAAcC,EAFK,MAEMF,GAE/B,OAAKC,GAAgB7C,EAGd,GAAP,O,yWAAA,CAAY6C,GAAW,gCAAO7C,GAAO,CAAE+C,QAAQ,MAFtCF,CAGX,C,oHCJMhM,EAAY,wBAEZ,SAAUmM,IACd,OACE,uBAAKC,KAAK,QAAQ5L,UAAU,0EAC1B,gBAAC,IAAY,CAACE,QAAS,iBAA0ByB,KAAM,EAAAC,EAAA,QACvD,gBAAC,IAAI,CAACpC,UAAWA,EAAWuF,OAAO,aAAa,IAChD,gBAAC,IAAO,CACNzE,QAAS,CACPuL,YAAa,YACbC,OAAQ,6BAEV9L,UAAU,mDAEV,gBAAC,IAAI,CAACR,UAAWA,EAAWuF,OAAO,eAI3C,C,+JCKM,SAAUgH,EAAoB5D,G,UAClC,EAAkEA,GAAW,CAAC,EAAtE6D,EAAe,EAAfA,gBAAiBC,EAAG,EAAHA,IAAKC,EAAe,EAAfA,gBAAiBC,EAAc,EAAdA,eAE/C,GAA6B,SAArBC,EAAQ,EAARA,SAAUC,EAAM,EAANA,OAClB,GAAuC,IAAAC,GAAkBN,EAAiBE,GAAlEK,EAAY,EAAZA,aAAcC,EAAY,EAAZA,aACtB,GAAmD,OAAY,MAAvDC,EAAmB,EAAnBA,oBAAqBC,EAAiB,EAAjBA,kBAC7B,GAA2D,SAAnDC,EAAc,EAAdA,eAA0BC,EAAoB,EAA9BC,SAClBC,EAAuBH,EAAe,uBACtCI,EAAqBJ,EAAe,qBAEpCK,EAAS,kBAA6B,cACtCC,EAAc,kBAAkC,mBAChDC,EAAa,mBACD,QAAhB,EAAAD,EAAY9F,YAAI,eAAEgG,kBAAmB,eAA4BF,EAAY9F,KAAKiG,aA4BpF,MAAO,CACLC,8BARCX,GACDE,GACAI,EAAOtF,cACPuF,EAAYvF,iBACM,QAAhB,EAAAuF,EAAY9F,YAAI,eAAEgG,kBAAmBD,EAAWxF,cAKlD4F,iBAAkB,CAChBC,YAAa,SACbC,kBA7BJ,SAA2BC,G,MACzB,MAAM,WAAYA,EAUdtB,KAAmC,QAAhB,EAAAc,EAAY9F,YAAI,eAAEgG,iBAChC,KAEF,qBAAqCM,EAAMC,OAAQ,CAAEzB,IAAAA,IAZnD,IAaX,EAeIG,SAAAA,EACAuB,iBAAiBtB,aAAM,EAANA,EAAQuB,OACzBpB,aAAAA,EACAD,aAAAA,EACAjK,YAAwB,QAAX,EAAA0K,EAAO7F,YAAI,eAAE7E,YAC1B4K,WAAYA,EAAW/F,KACvB0G,yBAA0B,6BAC1BC,8BAA+B,kCAC/BC,2BAA4B,+BAC5BC,sBAAuBvB,EACvBwB,uBAAwB,KACxBnB,qBAAAA,EACAC,mBAAAA,GAGN,C,wECvFamB,EAA2B,WACtC,OAAwD,OAAgB,CAAEC,iBAAiB,IAAnFC,EAAkB,EAAlBA,mBAAoBC,EAAuB,EAAvBA,wBAEtBC,EAAeF,GAAsBC,IAO3C,OALkB,oBACdC,GACF,0BAAuCA,EAAa9G,IAIxD,C,+ECTA,SAAS+G,EAAgBC,GACvB,OAAKA,EAGDC,MAAMC,QAAQF,GACTA,EAAQG,OAAO,SAAAC,GAAC,QAAMA,IAAM,YAAoBA,IAAM,WAAmBA,GAAG,GAEjF,SAAUJ,EACLA,EAAQrH,KAAKwH,OAAO,SAAAC,GAAC,QAAMA,IAAM,YAAoBA,IAAM,WAAmBA,GAAG,GAEnF,GARE,EASX,CAUM,SAAUC,EAAcL,GAA+C,IAA/BrG,EAAA,uDAA6B,CAAC,EACpE2G,EAAWP,EAAgBC,GAASzH,IAAI,SAAAgI,GAAC,OAAIA,EAAEvH,EAAE,IAEvD,QACEsH,EACA,SAAAE,GAAG,OAAI,qBAA+BA,EAAK7G,EAAQ+D,gBAAgB,EACnE,KAEJ,CAEM,SAAU+C,IAAiD,IAA/B9G,EAAA,uDAA6B,CAAC,EAStDF,GAAe,QAAyB,CAAEpB,WARlD,SAAoBmI,GAClB,OAAO,qBAA+BA,EAAK7G,EAAQ+D,gBACrD,IAMQjE,WAER,MAAO,CAAEiH,aANT,SAAsB9H,GACpB,OAAOa,EAAWsG,EAAgBnH,GAAOL,IAAI,SAAAgI,GAAC,OAAIA,EAAEvH,EAAE,GACxD,EAKF,C,yZCnDA,SAAgB,MAAQ,SCcxB,IAAMhI,EAAY,8BACZ2P,EAAYtP,EAAA,mBAAiCL,GAE7C,SAAU4P,IACd,OACE,gBAAC,aAAiC,CAACC,MAAO7P,GACxC,gBAAC8P,EAAA,EAAU,KACT,gBAACA,EAAA,QAAgB,CACfrK,IAAKsK,EAAA,gCACLC,QAASL,EAAU,QACnBnP,UAAW,UAGb,gBAACsP,EAAA,UAAkB,CAACtP,UAAU,MAC5B,gBAAC8E,EAAA,EAAI,CAACC,OAAO,aAGf,gBAACuK,EAAA,OAAe,KAAC,gBAACxK,EAAA,EAAI,CAACC,OAAO,UAE9B,gBAACuK,EAAA,MAAc,CACbrO,KAAMpB,EAAA,YAA0BL,EAAW,OAC3Cc,QAAS,CACPuL,YAAa,cACbC,OAAQ,uBAMpB,CAEM,SAAU2D,IACd,OACE,gBAAC,aAAiC,CAACJ,MAAO7P,GACxC,gBAAC8P,EAAA,EAAU,KACT,gBAACA,EAAA,QAAgB,CAACrK,IAAKsK,EAAA,uCAAgDC,QAASL,EAAU,gBAC1F,gBAACG,EAAA,UAAkB,KAAC,gBAACxK,EAAA,EAAI,CAACC,OAAO,mBACjC,gBAACuK,EAAA,OAAe,KAAC,gBAACxK,EAAA,EAAI,CAACC,OAAO,gBAC9B,gBAACuK,EAAA,MAAc,CACbrO,KAAMpB,EAAA,YAA0BL,EAAW,aAC3Cc,QAAS,CACPuL,YAAa,YACbC,OAAQ,oBAEVpL,cAAe,CAAC,EAChBC,iBAAkB,CAChB+O,WAAY,WACZC,SAAU,yBACVC,OAAQ,aACRC,cAAe,WACfC,WAAY,KAAAC,WAMxB,C,2DC5DM,EAAY,oBCVlB,SAAgB,OAAS,SC0CzB,IAAM,EAAY,oBAEZ,SAAUC,I,QACRC,GAAW,UACXC,GAAS,SAEP5C,GAAqB,EAAAvB,EAAA,GAAoB,CAAEC,gBAAiB,sBAA5DsB,iBACF6C,EFrCF,WACJ,IAAMA,GAAe,EAAAC,EAAA,GAAgB,CAAET,SAAU,gBACzCpD,GAAiB,EAAA8D,EAAA/D,GAAkB,qBAAnCC,aAkBR,OAAO,OAAP,wBACK4D,GAAY,CACfG,gBAlBsB,SAAC7C,GAGvB,OAFuB8C,EAAA,mBAA6B9C,GAA5C+C,WAYDL,EAAaG,gBAAgB7C,GAT3B,CAAC,CACN5M,MAAOhB,EAAA,YAA0B,EAAW,wBAC5CK,QAAS,YACTuQ,QAAQ,EACRzQ,UAAW,2BACX0Q,QAAS,WAAF,OAAQnE,EAAakB,GAAO,EAAM,GAK/C,GAMF,CEauBkD,IAErB,EAAAC,EAAA,GAAmB,CAAEhR,MAAOC,EAAA,YAA0B,EAAW,eACjE,OAAoE,EAAAgR,EAAA,KAA5DC,EAAmB,EAAnBA,oBAAqBnE,EAAc,EAAdA,eAAgBoE,EAAkB,EAAlBA,mBAEvC9D,EAAc,kBAAkC+D,EAAA,iBAChDhE,EAAS,kBAA6BiE,EAAA,YAEtCpK,EAAa,SAACgD,GAClB,OAAOqH,EAAA,gBAAgCjE,EAAY9F,KAAKK,GAAIqC,EAC9D,EAEMX,EAAY,SAACW,GACjB,OAAO,aAAgBoG,EAAhB,CAA0BpJ,EAAWgD,GAC9C,EAEMsH,GAAeL,EAAoB,8BAAgD7D,EAAYvF,aAErG,IAII,SAA4ByJ,GAActK,EAAoBqC,EAQlE,SAAiBkI,EAAoBC,GACnC,GAAmB,IAAfD,EACF,OAAO,OAAgBC,GAEzBnB,EAAOoB,MAAMzR,EAAA,YAA0B,EAAW,SACpD,GAhBEuH,GAAK,GAALA,MACA8C,GAAO,GAAPA,QACAzC,GAAU,GAAVA,YAGF,EAAAoH,EAAA,GAAczH,IAEd,IAAMmK,IAAY,EAAArD,EAAA,KAEZ1C,IAAc,EAAAF,EAAA,GAAe,CAAEkG,KAAM3R,EAAA,YAA0B,EAAW,YAShF,IAA6B,EAAA4R,EAAA,GAAmC,QAAhB,EAAAxE,EAAY9F,YAAI,eAAEK,IAA1DkK,GAAK,GAALA,MACR,OADwB,GAATC,UAEN,iCAELb,EAAoB,6BACf,gBAACrB,EAA0B,MAGlC,gBAACmC,EAAA,WAA4B,CAACvC,MAAOc,GACnC,uBAAKnQ,UAAU,OACb,gBAACoC,EAAA,EAAY,CACXF,QAASrC,EAAA,YAA0B,EAAW,UAC9CwC,OAAQ,CAAEqB,IAAK6L,EAAA,2CACfxL,gBAAe,UAAK,SAAa,YACjCzB,YAAwB,QAAX,EAAA0K,EAAO7F,YAAI,eAAE7E,YAC1B6B,iBAAkB,WAAF,OACd,uBAAKnE,UAAU,yCACb,gBAAC8E,EAAA,EAAI,CAACtF,UAAW,EAAWuF,OAAO,SAASoD,QAAS,CAAE0J,WAAYH,MAC/D,IAG6C,cAAtDX,EAAmBe,EAAA,mBAAkD,gBAACnG,EAAA,EAAc,OACpFH,cAAW,EAAXA,GAAarJ,SACZ,uBAAKnC,UAAU,sBACb,gBAAC+R,EAAA,GAAW,CAACvG,YAAaA,MAKvBpE,GAGAA,GAAMjF,OAIT,uBAAKnC,UAAU,QACb,gBAACgS,EAAA,GAAS,CACRC,OAAQ7K,GACR8K,gBAAiBC,EAAA,aACjBxF,eAAgBA,EAChByF,sBAAuBb,GAAUpK,KACjCkL,2BAA4B,SAAAC,GAAW,OAAIC,EAAA,6BAA8CD,EAAY,EACrGhF,iBAAkBA,KAElBpD,IAAWzC,KAAe,gBAAC+K,EAAA,EAAoB,CAAC/K,WAAYA,GAAYyB,UAAWA,KAZhF,gBAACkG,EAAoB,MAHrB,gBAACqD,EAAA,EAAgB,OAsBpC,C,2xBCrIM,SAAUhB,EAAmBiB,G,sBAE3BC,EAAuB,kBAA8CD,GACzE,6BAA2CA,IACvCE,EAAsB,kBAA8CF,GACxE,4BAA0CA,IACtCG,EAA6B,kBAA8CH,GAC/E,mCAAiDA,IAYnD,MAAO,CACLhB,OAX0C,QAAzB,EAAAiB,EAAqBxL,YAAI,eAAEuK,QACX,QAA/B,EAAAmB,EAA2B1L,YAAI,eAAEuK,QACT,QAAxB,EAAAkB,EAAoBzL,YAAI,eAAEuK,OAU5BoB,WARiB,GAAH,UACe,QAAzB,EAAAH,EAAqBxL,YAAI,eAAEA,OAAQ,IAAE,GACb,QAAxB,EAAAyL,EAAoBzL,YAAI,eAAEA,OAAQ,IAAE,GACL,QAA/B,EAAA0L,EAA2B1L,YAAI,eAAEA,OAAQ,KAM7CwK,YAAqC,QAAzB,EAAAgB,EAAqBxL,YAAI,eAAEA,SACT,QAAxB,EAAAyL,EAAoBzL,YAAI,eAAEA,SACK,QAA/B,EAAA0L,EAA2B1L,YAAI,eAAEA,MAE3C,C","sources":["file:///app/packages/libs/shared/src/apps/calendar/components/coming-soon-tag/coming-soon-tag.scss","file:///app/packages/libs/shared/src/apps/calendar/components/coming-soon-tag/ComingSoonTag.tsx","file:///app/packages/libs/shared/src/apps/calendar/components/generic-calendar-date/generic-calendar-date.scss","file:///app/packages/libs/shared/src/apps/calendar/components/generic-calendar-date/GenericCalendarDate.tsx","file:///app/packages/libs/shared/src/components/back-button/BackButton.tsx","file:///app/packages/libs/shared/src/components/banner-header/banner-header.scss","file:///app/packages/libs/shared/src/components/banner-header/BannerHeader.tsx","file:///app/packages/libs/shared/src/errors/handlers/HttpErrorHandlers.ts","file:///app/packages/libs/shared/src/hooks/UseBatchFetch.ts","file:///app/packages/libs/shared/src/hooks/UseInfiniteScroll.ts","file:///app/packages/libs/shared/src/hooks/UseInfiniteList.ts","file:///app/packages/libs/shared/src/hooks/useBreadcrumbs.ts","file:///app/packages/projects/lite/src/apps/sign-up/components/soft-gate-banner/SoftGateBanner.tsx","file:///app/packages/projects/lite/src/shared/hooks/useCommonVideoProps.ts","file:///app/packages/projects/lite/src/shared/hooks/usePresentationAudiences.ts","file:///app/packages/projects/lite/src/shared/hooks/useVideoMixin.ts","file:///app/packages/projects/lite/src/shared/views/favourites/empty-state/favourites-empty-state.scss","file:///app/packages/projects/lite/src/shared/views/favourites/empty-state/FavouritesEmptyState.tsx","file:///app/packages/projects/lite/src/shared/views/favourites/FavouritesViewUtils.ts","file:///app/packages/projects/lite/src/shared/views/favourites/favourites-view.scss","file:///app/packages/projects/lite/src/shared/views/favourites/FavouritesView.tsx","file:///app/packages/projects/lite/src/shared/views/favourites/hooks/useFavouritesCount.ts"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport default {\"tag\":\"XRj8d\",\"tooltip\":\"X6mLk\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './coming-soon-tag.scss';\n\nconst namespace = 'specialEventCalendar.comingSoonTag';\n\ninterface ComingSoonProps {\n className?: string;\n onlyIcon?: boolean;\n}\n\nexport function ComingSoonTag(props: ComingSoonProps): JSX.Element {\n return (\n <Tooltip title={LanguageService.getPhrase(namespace, 'tooltip')} spanHackClassName={`d-block ${styles.tooltip}`} spanHack>\n <div className={`d-flex text-dark align-items-center ${styles.tag} ${props.className}`}>\n <SvgContainer svgName={cvSvgLibrary.Timer} />\n {!props.onlyIcon && LanguageService.getPhrase(namespace, 'comingSoon')}\n </div>\n </Tooltip>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"dateItem\":\"I3SBm\",\"label\":\"PRORs\",\"body\":\"RfiM_\",\"bodyDay\":\"ZOVny\",\"bodyRange\":\"vYhXN\",\"bodyMonth\":\"mYslO\",\"month\":\"EPkkQ\"};","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { CalendarTheme } from 'libs/shared/apps/calendar/interfaces/CalendarTheme';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\n\nimport styles from './generic-calendar-date.scss';\n\nexport interface GenericCalendarDateProps {\n label?: string;\n body: {\n type: 'month' | 'range' | 'day';\n text: string;\n };\n month?: string;\n getAppLink?: () => Core.AppLink;\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n className?: string;\n theme?: CalendarTheme;\n}\n\nexport function GenericCalendarDate(props: GenericCalendarDateProps): JSX.Element {\n function getBodyClass(): string {\n switch (props.body.type) {\n case 'range':\n return styles.bodyRange;\n case 'day':\n return styles.bodyDay;\n case 'month':\n return styles.bodyMonth;\n }\n }\n\n return (\n <AppLink\n appLink={props.getAppLink?.()}\n className={`text-decoration-none text-center bg-white text-dark border border-3 ${props.theme?.border} rounded-3 d-block fw-semibold ${props.className}`}\n analyticsData={props.analyticsData}\n analyticsOptions={props.analyticsOptions}\n >\n <div className={`position-relative ${styles.dateItem}`}>\n <div className={`${props.theme?.background} py-1 ${styles.label} d-flex align-items-center justify-content-center`}>\n {props.label ? props.label : <> </>}\n </div>\n <div className={`${getBodyClass()} ${styles.body} my-2`}>\n {props.body.text}\n </div>\n <div className={`mb-0 ${styles.month}`}>\n {props.month}\n </div>\n </div>\n </AppLink>\n );\n}","import * as React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nconst namespace = 'shared.backButton';\n\ninterface BackButtonProps {\n appLink: Core.AppLink;\n backToName?: string;\n color?: 'black' | 'white';\n extraClasses?: string;\n /**\n * Whether or not the button text has a text shadow. Defaults to true\n */\n textShadow?: boolean;\n}\n\nBackButton.defaultProps = {\n color: 'black',\n extraClasses: ''\n};\n\nexport function BackButton(props: BackButtonProps): React.ReactElement {\n const { backToName, appLink, color, extraClasses, textShadow } = {\n textShadow: true,\n ...props\n };\n\n const backPhrase = backToName\n ? LanguageService.getPhrase(namespace, 'backTo', { backToName })\n : LanguageService.getPhrase(namespace, 'back');\n\n const colorClass = color === 'black' ? '' : 'text-white';\n const textShadowClass = textShadow ? 'text-shadow' : '';\n\n return (\n <AppLink\n appLink={appLink}\n className={`d-inline-flex align-items-center h5 mb-0 ${extraClasses} ${colorClass} ${textShadowClass}`}\n >\n <SvgContainer svgName={cvSvgLibrary.ChevronLeft} size={SvgContainerSize.Medium} />\n <span className='ms-1'>{backPhrase}</span>\n </AppLink>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"bannerContent\":\"sSCTB\",\"actionsContainer\":\"Z5WI2\",\"bannerContentWithLogo\":\"rgs7Q\",\"container\":\"M51HJ\",\"logoContainer\":\"vkeJk\",\"logoContainerLeft\":\"M3U9B\",\"logoHeading\":\"EtRwC\",\"specialEventContainer\":\"rOxDc\",\"headingLarge\":\"_8pnV\",\"heading\":\"JXVBH\"};","import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\nimport { PortalHelper } from 'libs/common/react/utils/PortalHelper';\n\nimport { ComingSoonTag } from 'libs/shared/apps/calendar/components/coming-soon-tag/ComingSoonTag';\nimport { GenericCalendarDate } from 'libs/shared/apps/calendar/components/generic-calendar-date/GenericCalendarDate';\nimport { CalendarTheme } from 'libs/shared/apps/calendar/interfaces/CalendarTheme';\nimport { ActionOptions, Actions } from 'libs/shared/components/actions/Actions';\nimport { BackButton } from 'libs/shared/components/back-button/BackButton';\nimport { LazyImage } from 'libs/shared/components/lazy-image/LazyImage';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { BG_COLOUR_CLASS_NAMES } from 'libs/shared/constants/ColourClassNames';\nimport { ImageMinDimensions } from 'libs/shared/constants/ImageSizes';\nimport { BannerPortalContext } from 'libs/shared/context/BannerPortalContext';\nimport { ImageSize, ImageType, ResizeType } from 'libs/shared/enums/Images';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { Banner, CalendarEvent, Logo } from 'libs/shared/interfaces';\nimport { getBgColorClass } from 'libs/shared/utils/getBgColorClass';\nimport { ImageHelper, ImageOptions } from 'libs/shared/utils/ImageHelper';\n\nimport styles from './banner-header.scss';\n\nconst RATIO = `${ImageMinDimensions[ImageType.Banners].width}:${ImageMinDimensions[ImageType.Banners].height}`;\nconst DEFAULT_WIDTH = 1200; // This is ImageSize.Large for a Banner.\nconst LARGE_SCREEN_WIDTH = 1920;\n\nfunction useGetImageWidth(): number {\n const breakpoints = useBreakpoints();\n\n if (breakpoints.xxl)\n return LARGE_SCREEN_WIDTH;\n\n return DEFAULT_WIDTH;\n}\n\nfunction getSizeClass(heading: string): string {\n if (heading.length < 160)\n return 'h1';\n\n return styles.headingLarge;\n}\n\ninterface BannerHeaderProps {\n heading: string;\n banner?: Banner;\n bannerClassName?: string;\n imageCdnUrl?: string;\n logo?: Logo;\n logoBgColour?: string;\n actions?: ActionOptions[];\n specialEvent?: CalendarEvent;\n backButtonAppLink?: Core.AppLink;\n backButtonText?: string;\n backButtonClasses?: string;\n sortComponent?: JSX.Element;\n blockColourClass?: string;\n actionsDropdownClassName?: string;\n detailsComponent?: () => React.ReactElement;\n imageOptions?: ImageOptions;\n showComingSoon?: boolean;\n alignLogoLeft?: boolean;\n calendarTheme?: CalendarTheme;\n}\n\nconst namespace = 'shared.bannerHeader';\n\nexport const BannerHeader = React.memo(function(props: React.PropsWithChildren<BannerHeaderProps>): React.ReactElement {\n const { heading, banner, imageCdnUrl, actions, sortComponent, blockColourClass, specialEvent } = props;\n\n const portalContainerContext = React.useContext(BannerPortalContext);\n\n const imageWidth = useGetImageWidth();\n\n const specialEventIsToday = React.useMemo(() => {\n if (!specialEvent || props.showComingSoon)\n return false;\n\n const today = DateHelper.format(new Date(), 'YYYY-MM-DD');\n\n if (!specialEvent.endDate)\n return specialEvent.startDate === today;\n\n return specialEvent.startDate <= today && specialEvent.endDate >= today;\n }, [specialEvent]);\n\n function getSpecialEventMonthText(specialEvent: CalendarEvent): string {\n if (!specialEvent.endDate)\n return DateHelper.format(specialEvent.startDate, 'MMMM');\n\n if (DateHelper.isSame(specialEvent.startDate, specialEvent.endDate, 'month'))\n return DateHelper.format(specialEvent.startDate, 'MMMM');\n\n return `${DateHelper.format(specialEvent.startDate, 'MMM')} - ${DateHelper.format(specialEvent.endDate, 'MMM')}`;\n }\n\n const imageOptions = props.imageOptions || {\n width: imageWidth,\n ratio: RATIO,\n resizeType: ResizeType.Cover\n };\n\n const url = !!banner && !!imageCdnUrl && ImageHelper.createBannerUrl(banner, {\n fallbackBaseUrl: imageCdnUrl,\n fallbackCategoryName: heading,\n type: ImageType.Banners\n }, imageOptions);\n\n const containerProps: React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement> = {\n className: `banner banner-header ${props.bannerClassName}`,\n style: url ? { backgroundImage: `url('${url}')` } : {}\n };\n\n if (!banner && blockColourClass) {\n delete containerProps.style;\n containerProps.className += ` ${blockColourClass}`;\n }\n\n const DetailsComponent = props.detailsComponent;\n\n const logoFallbackBgClassName = getBgColorClass(props.heading, BG_COLOUR_CLASS_NAMES);\n\n return PortalHelper.renderInPortalIfExists(\n // \"banner\" is used in playlists in Online. banner-header is used by all other projects\n <header {...containerProps}>\n <div className={`container ${styles.container} position-relative inner-banner`}>\n {props.backButtonAppLink && (\n <div className='pt-3'>\n <BackButton\n appLink={props.backButtonAppLink}\n backToName={props.backButtonText}\n extraClasses={props.backButtonClasses}\n color='white'\n />\n </div>\n )}\n \n <div className={`${props.alignLogoLeft ? 'position-absolute top-50 start-0 translate-middle-y w-100 ps-4' : `${styles.bannerContent} px-2 ${props.logo?.url ? styles.bannerContentWithLogo : ''}`}`}>\n {!!specialEvent && (\n <div className={`position-relative ${styles.specialEventContainer}`}>\n <GenericCalendarDate\n body={{\n type: specialEvent.endDate ? 'range' : 'day',\n text: specialEvent.endDate\n ? `${DateHelper.format(specialEvent.startDate, 'DD')}-${DateHelper.format(specialEvent.endDate, 'DD')}`\n : DateHelper.format(specialEvent.startDate, 'DD')\n }}\n month={getSpecialEventMonthText(specialEvent)}\n theme={props.calendarTheme}\n />\n </div>\n )}\n <div>\n {specialEventIsToday && (\n <div className='rounded-pill py-1 px-2 my-1 me-1 fw-semibold bg-light-blue lh-1 d-inline-block'>\n <Text namespace={namespace} phrase='onToday' />\n </div>\n )}\n {props.showComingSoon && (\n <ComingSoonTag className='pe-2 fw-semibold mb-1 rounded-pill justify-content-start text-nowrap' />\n )}\n <div className='d-flex align-items-center'>\n {props.alignLogoLeft && props.logo?.url &&\n <div className={`${styles.logoContainerLeft} d-none d-md-block rounded-circle overflow-hidden me-3 ${logoFallbackBgClassName}`}>\n <LazyImage\n src={ImageHelper.createUrl(props.logo?.url, { size: ImageSize.Medium })}\n style={{ backgroundColor: props.logoBgColour }}\n />\n </div>\n }\n <h1 className={`text-white text-shadow pe-3 position-static ${styles.heading} ${getSizeClass(heading)} ${props.alignLogoLeft ? 'w-50' : ''}`}>\n {heading}\n {DetailsComponent && <DetailsComponent />}\n </h1>\n </div>\n </div>\n {!!actions && (\n <div className={styles.actionsContainer}>\n <Actions\n actions={actions}\n sortComponent={sortComponent}\n actionsDropdownClassName={props.actionsDropdownClassName}\n />\n </div>\n )}\n </div>\n {!props.alignLogoLeft && !!props.logo?.url &&\n <div className={styles.logoContainer}>\n <img\n src={ImageHelper.createUrl(props.logo.url, { size: ImageSize.Medium })}\n className='rounded-circle'\n />\n </div>\n }\n </div>\n </header>,\n portalContainerContext?.container\n );\n}, (prevProps, nextProps): boolean => (\n prevProps.actions === nextProps.actions\n && prevProps.heading === nextProps.heading\n && prevProps.logo?.url === nextProps.logo?.url\n));\n\nexport function PartialBannerHeader(): JSX.Element {\n const portalContainerContext = React.useContext(BannerPortalContext);\n\n return PortalHelper.renderInPortalIfExists(\n <div className={`partial-banner partial-loading-background ${styles.banner}`} />,\n portalContainerContext?.container\n );\n}","import { BaseError } from 'libs/common/backbone/core/BaseError';\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { Xhr } from 'libs/common/backbone/interfaces';\nimport { Core } from 'libs/common/core';\n\nimport { NotFoundError } from 'libs/shared/errors/general/not-found/NotFoundError';\nimport { PrivateResourceError } from 'libs/shared/errors/general/private-resource/PrivateResourceError';\nimport { RegionLockedResourceError } from 'libs/shared/errors/general/region-locked-resource/RegionLockedResourceError';\nimport { UnspecifiedError } from 'libs/shared/errors/general/unspecified-error/UnspecifiedError';\nimport { VideoTypes } from 'libs/shared/interfaces';\n\nexport interface HttpErrorMap {\n notFound?: new () => BaseError;\n forbidden?: {\n rating?: new (description: string) => BaseError;\n yearLevel?: new (description: string) => BaseError;\n region?: new () => BaseError;\n privacy?: new (video?: VideoTypes) => BaseError;\n };\n badRequest?: new () => BaseError;\n internalServerError?: new () => BaseError;\n}\n\nexport type IgnoreHttpErrorMap = {\n [key in keyof HttpErrorMap]: boolean;\n};\n\nconst defaultErrors: HttpErrorMap = {\n notFound: NotFoundError,\n forbidden: {\n rating: PrivateResourceError,\n yearLevel: PrivateResourceError,\n region: RegionLockedResourceError,\n privacy: PrivateResourceError\n },\n badRequest: UnspecifiedError,\n internalServerError: UnspecifiedError\n};\n\nexport function handleHttpError(\n info: HttpStatus | Xhr,\n customErrorMap: HttpErrorMap = {},\n /**\n * Prevent certain errors in the errorMap from being thrown\n * so that you may implement your own handler\n */\n ignoreMap: IgnoreHttpErrorMap = {}\n): void {\n if (!info)\n return;\n\n let statusCode: HttpStatus;\n\n if (typeof(info) === 'number') {\n statusCode = info;\n } else {\n statusCode = info.status;\n }\n\n const errorMap = {\n ...defaultErrors,\n ...customErrorMap\n };\n\n if (!statusCode)\n return;\n\n if (!Core.ErrorHelper.isStatusCodeError(statusCode))\n return;\n\n if (statusCode === HttpStatus.InternalServer) {\n if (!ignoreMap.internalServerError)\n Core.ErrorHelper.throw(new UnspecifiedError());\n return;\n }\n\n if (statusCode === HttpStatus.NotFound) {\n if (!ignoreMap.notFound)\n Core.ErrorHelper.throw(new errorMap.notFound());\n return;\n }\n\n if (statusCode === HttpStatus.Forbidden) {\n /**\n * TODO: Work out how to go about handling all forbidden errors, such as region locking, year levels,\n * ratings, and privacy.\n */\n if (!ignoreMap.forbidden)\n Core.ErrorHelper.throw(new errorMap.forbidden.privacy());\n return;\n }\n\n if (!ignoreMap.badRequest)\n Core.ErrorHelper.throw(new errorMap.badRequest());\n}\n\nexport function handleXhrError(xhr: Xhr, customErrorMap?: HttpErrorMap): void {\n handleHttpError(xhr.status, customErrorMap);\n}","import React from 'react';\n\nimport { Flight } from 'libs/common/flight';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { BaseObject } from 'libs/shared/interfaces';\n\nconst CHUNK_SIZE = 50;\n\nexport interface UseBatchFetchResult<T extends BaseObject> {\n itemsArr: T[];\n items: { [key: string]: T} | null;\n isFetching: boolean;\n hasCompleted: boolean;\n}\n\n/**\n * Used to fetch multiple items by id with Flight. Will fetch 25 items at a time firing off multiple\n * requests if there are more than 25 items.\n * This will return items as null until we have all our items. Items will be returned as an object with\n * their ids as they key for easy mapping\n * \n * @param itemIds \n * @param getRequest \n */\nexport function useBatchFetch<T extends BaseObject>(\n itemIds: string[],\n getRequest: (ids: string[]) => Flight.Request\n): UseBatchFetchResult<T> {\n const chunks = ArrayHelper.chunk<string>(itemIds, CHUNK_SIZE);\n\n const requests = chunks.map(chunk => getRequest(ArrayHelper.uniq(chunk)));\n\n const responses = Flight.useBasicFetchAll<T[]>(requests);\n\n const itemsArr = ArrayHelper.flatten(responses.data);\n const items = responses.data.length\n ? itemsArr.reduce((acc, item) => ({ ...acc, [item.id]: item }), {})\n : null;\n\n return {\n itemsArr,\n items,\n isFetching: responses.isFetching,\n hasCompleted: responses.hasCompleted\n };\n}\n\n/**\n * When you need the useBatchFetch() behavior, but your list of objects to hydrate\n * will grow, such as on a scrolling page. useGrowingBatchFetch() will use local state\n * to determine what we've already built a request for and what items are new\n * as to not re-fetch items - Sha\n */\nexport function useGrowingBatchFetch<TResponse, TObjects = string>(\n objs: TObjects[],\n getRequest: (items: TObjects[]) => Flight.Request,\n _getKey?: (obj: TObjects) => string\n) {\n const getKey = _getKey ?? ((obj: any) => {\n if (typeof obj === 'object')\n return obj.id;\n\n return obj;\n });\n\n const { fetchItems, ...data } = useGrowingBatchFetchFunc<TResponse, TObjects>({ getRequest, _getKey });\n\n React.useEffect(() => {\n if (!objs?.length)\n return;\n\n fetchItems(objs);\n }, [objs?.map(getKey).join(',')]);\n\n return data;\n}\n\ninterface UseGrowingBatchFetchFuncOptions<TObjects> {\n getRequest: (items: TObjects[]) => Flight.Request;\n _getKey?: (obj: TObjects) => string;\n}\n\n/**\n * When you need the useGrowingBatchFetch() behaviour, but need to trigger the\n * fetch manually and update the objects - Nish \n */\nexport function useGrowingBatchFetchFunc<TResponse, TObjects = string>(\n options: UseGrowingBatchFetchFuncOptions<TObjects>\n) {\n const getKey = options._getKey ?? ((obj: any) => {\n if (typeof obj === 'object')\n return obj.id;\n\n return obj;\n });\n\n const fetchedItems = React.useRef<Set<string>>(new Set<string>());\n const [ requests, setRequests ] = React.useState<Flight.Request[]>([]);\n\n function fetchItems(objs: TObjects[]) {\n if (!objs?.length)\n return;\n\n const unfetchedItems: TObjects[] = [];\n \n objs.forEach(obj => {\n const key = getKey(obj);\n\n if (fetchedItems.current.has(key))\n return;\n\n unfetchedItems.push(obj);\n fetchedItems.current.add(key);\n });\n \n if (!unfetchedItems.length)\n return;\n \n setRequests(r => ([ ...r, ...ArrayHelper.chunk<TObjects>(unfetchedItems, CHUNK_SIZE).map(options.getRequest) ]));\n }\n\n const responses = Flight.useBasicFetchAll<TResponse[]>(requests);\n const itemsArr = ArrayHelper.flatten(responses.data);\n const items = responses.data.length\n ? itemsArr.reduce<Record<string, TResponse>>((acc, item) => ({ ...acc, [getKey(item)]: item }), {})\n : null;\n\n return {\n hasFirstRequestCompleted: !!responses.responses?.[0]?.hasCompleted,\n itemsArr,\n items,\n isFetching: responses.isFetching,\n fetchItems\n };\n}\n","import { useEffect } from 'react';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\n\nconst SCROLL_TOLERANCE = 400; // value in px\n\ninterface UseInfiniteScrollOptions {\n fetchNextPage: () => void;\n hasMore: boolean;\n isFetching: boolean;\n scrollContainer?: HTMLElement;\n}\n\nexport function useInfiniteScroll(options: UseInfiniteScrollOptions): void {\n const handleScroll = (): void => {\n if (options.isFetching)\n return;\n\n if (!options.scrollContainer) {\n const currentScrollHeight = window.innerHeight + document.documentElement.scrollTop;\n \n const totalHeight = document.documentElement.scrollHeight - SCROLL_TOLERANCE;\n \n if (currentScrollHeight < totalHeight)\n return;\n } else {\n const { scrollContainer } = options;\n const currentScrollHeight = scrollContainer.getBoundingClientRect().height + scrollContainer.scrollTop;\n \n const totalHeight = scrollContainer.scrollHeight - SCROLL_TOLERANCE;\n \n if (currentScrollHeight < totalHeight)\n return;\n }\n\n options.fetchNextPage();\n };\n\n useEffect(() => {\n const onScroll = FunctionHelper.throttle(handleScroll, 200);\n\n const scrollContainer = options.scrollContainer || window;\n\n if (options.hasMore)\n scrollContainer.addEventListener('scroll', onScroll);\n\n return () => scrollContainer.removeEventListener('scroll', onScroll);\n }, [ options.hasMore, options.fetchNextPage, options.scrollContainer ]);\n}","import { useEffect, useState } from 'react';\n\nimport { HttpStatus, HttpStatusClass } from 'libs/common/backbone/enums/HttpStatus';\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { Flight } from 'libs/common/flight';\n\nimport { BaseObject, BasePaginatedCollection } from 'libs/shared/interfaces';\n\nimport { useInfiniteScroll } from './UseInfiniteScroll';\nimport { useSelectAllPages } from './UseSelectAllPages';\n\nexport interface UseInfiniteListResult<T extends BaseObject> {\n items: T[];\n hasMore: boolean;\n isFetching: boolean;\n nextCursor: string;\n totalItems?: number;\n hasFirstPageCompleted: boolean;\n}\n\n/**\n * Hook to extract an infinite list from the application state,\n * save it locally in state and only update when new data\n * is fetched.\n * \n * @param getRequest - callback function to get the request for each page.\n * Can be false if the request requires data that hasn't yet been fetched - e.g. user id.\n * \n * @param fetchNext - callback function to fetch a page.\n * Can be false if the request requires data that hasn't yet been fetched - e.g. user id.\n */\nexport function useInfiniteList<TObject = BaseObject, TResponse = BasePaginatedCollection<TObject>>(\n getRequest: ((cursor?: string) => Flight.Request) | false,\n fetchNext: ((cursor?: string) => void) | false,\n onError?: (pageNumber: number, statusCode: HttpStatus) => void,\n getItems?: (responseData: TResponse) => TObject[],\n getCursor?: (responseData: TResponse) => string,\n scrollContainer?: HTMLElement\n): UseInfiniteListResult<TObject> {\n const [ pagesFetched, setPagesFetched ] = useState(0);\n\n const fetchNextFn = fetchNext as (cursor?: string) => void;\n\n function getKey(cursor?: string): string {\n if (!getRequest)\n return null;\n\n const request = getRequest(cursor);\n\n if (!request)\n return null;\n\n return request.key;\n }\n\n const response = useSelectAllPages<TObject, TResponse>(\n getKey,\n getItems,\n getCursor\n );\n\n function fetchNextPage(): void {\n if (!fetchNext || !getRequest || !response)\n return;\n\n setPagesFetched(currentVal => currentVal + 1);\n return fetchNextFn(response.nextCursor);\n }\n\n useInfiniteScroll({\n fetchNextPage,\n hasMore: !!response?.nextCursor,\n isFetching: response?.isFetching,\n scrollContainer\n });\n\n useEffect(() => {\n if (!response)\n return;\n\n if (response.shouldInitialFetch && fetchNext) {\n fetchNextFn();\n setPagesFetched(currentVal => currentVal + 1);\n }\n }, [ response?.shouldInitialFetch, fetchNext ]);\n\n useEffect(() => {\n if (!response?.statusCode || !FunctionHelper.isFunction(onError))\n return;\n\n const httpStatusClass: HttpStatusClass = +(response.statusCode?.toString()?.substr(0, 1));\n\n if (httpStatusClass !== HttpStatusClass.ClientError && httpStatusClass !== HttpStatusClass.ServerError)\n return;\n\n onError(pagesFetched, response.statusCode);\n }, [response?.statusCode]);\n\n return {\n items: response?.items,\n hasMore: !!response?.nextCursor,\n nextCursor: response?.nextCursor,\n isFetching: response?.isFetching,\n totalItems: response?.totalItems,\n hasFirstPageCompleted: response?.hasFirstPageCompleted\n };\n}","import React from 'react';\n\nimport { Breadcrumb } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { BreadcrumbService } from 'libs/shared/services/BreadcrumbService';\n\nexport function useBreadcrumbs(current: Breadcrumb): Breadcrumb[] {\n const [ match, useBuilder ] = React.useMemo(() => BreadcrumbService.getBuilder(), []);\n\n const breadcrumbs = useBuilder(match);\n\n if (!breadcrumbs || !current)\n return breadcrumbs;\n\n return [ ...breadcrumbs, { ...current, active: true }];\n}\n\n","import React from 'react';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nconst namespace = 'signUp.softGateBanner';\n\nexport function SoftGateBanner(): JSX.Element {\n return (\n <div role='alert' className='bg-light-indigo text-indigo rounded p-2 mb-4 d-flex align-items-center'>\n <SvgContainer svgName={cvSvgLibrary.StarOutline} size={SvgContainerSize.Large} />\n <Text namespace={namespace} phrase='softGate' /> \n <AppLink\n appLink={{\n application: AppChannels.SIGN_UP,\n action: Actions.SignUp.PREMIUM_FEATURES\n }}\n className='indigo-link text-indigo text-underline d-inline'\n >\n <Text namespace={namespace} phrase='learnMore' />\n </AppLink>\n </div>\n );\n}","import { Core } from 'libs/common/backbone/index';\nimport { Flight } from 'libs/common/react/index';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { Config, CurrentUser, VideoTypes, YearGroup } from 'libs/shared/interfaces';\nimport { CommonVideoProps } from 'libs/shared/interfaces/CommonVideoProps';\n\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\n\nimport { SeriesAppLinkHelper } from 'apps/series/SeriesAppLinkHelper';\n\nimport { usePluginHelper } from './use-plugin-helper/usePluginHelper';\nimport { useLiteFavourites } from './useLiteFavourites';\n\ninterface UseCommonVideoPropsResult {\n hasCommonVideoPropsCompleted: boolean;\n commonVideoProps: CommonVideoProps;\n}\n\ninterface UseCommonVideoPropsOptions {\n locationContext: LocationContext,\n mtv?: boolean;\n flightNamespace?: string;\n sharedPlaylist?: boolean;\n}\n\nexport function useCommonVideoProps(options: UseCommonVideoPropsOptions): UseCommonVideoPropsResult {\n const { locationContext, mtv, flightNamespace, sharedPlaylist } = options || {};\n\n const { isPlugin, params } = usePluginHelper();\n const { setFavourite, canFavourite } = useLiteFavourites(locationContext, flightNamespace);\n const { hasTopicDirectories, isLoadingSettings } = useSettings(null);\n const { hasPermissions, isLoaded: hasLoadedPermissions } = usePermissions();\n const hasStudentExperience = hasPermissions(PermissionName.StudentExperience);\n const hasGuestExperience = hasPermissions(PermissionName.GuestExperience);\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const yearGroups = Flight.useBasicFetch<YearGroup[]>(\n currentUser.data?.isAuthenticated && CustomerRequests.yearGroups(currentUser.data.customerId)\n );\n\n function getSubTextAppLink(video: VideoTypes): Core.AppLink {\n if (!('series' in video))\n return null;\n\n /**\n * We do not allow navigating to series on shared playlists when the user is not signed in\n * because most series are customer created and will be empty for public users\n * \n * We do not have to do this for shared series, because all the series links are self referencing\n * - Sha\n */\n if (sharedPlaylist && !currentUser.data?.isAuthenticated)\n return null;\n \n return SeriesAppLinkHelper.getSeriesAppLink(video.series, { mtv });\n }\n\n const hasCommonVideoPropsCompleted = (\n !isLoadingSettings &&\n hasLoadedPermissions &&\n config.hasCompleted &&\n currentUser.hasCompleted &&\n (!currentUser.data?.isAuthenticated || yearGroups.hasCompleted)\n );\n\n return {\n hasCommonVideoPropsCompleted,\n commonVideoProps: {\n subTextType: 'series',\n getSubTextAppLink,\n isPlugin,\n isPluginPopup: !!params?.popup,\n canFavourite,\n setFavourite,\n imageCdnUrl: config.data?.imageCdnUrl,\n yearGroups: yearGroups.data,\n getClassroomGuideAppLink: VideoAppLinkHelper.getClassroomGuideAppLink,\n getInteractiveGuidanceAppLink: VideoAppLinkHelper.getInteractiveGuidanceAppLink,\n getResourceGuidanceAppLink: VideoAppLinkHelper.getResourceGuidanceAppLink,\n showNewVideoIndicator: hasTopicDirectories,\n companyLogoFallbackUrl: null,\n hasStudentExperience,\n hasGuestExperience\n }\n };\n}","import { Flight } from 'libs/common/react/index';\n\nimport { AudienceRequests } from 'libs/shared/flight-requests/AudienceRequests';\nimport { PresentationAudience } from 'libs/shared/interfaces';\n\nimport { usePresentation } from 'shared/hooks/usePresentation';\n\nexport const usePresentationAudiences = () => {\n const { activePresentation, getFallbackPresentation } = usePresentation({ redirectOnError: true });\n\n const presentation = activePresentation || getFallbackPresentation();\n\n const audiences = Flight.useBasicFetch<PresentationAudience[]>(\n !!presentation &&\n AudienceRequests.presentationAudiences(presentation.id)\n );\n\n return audiences;\n};","import { Flight } from 'libs/common/react/index';\n\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { useGrowingBatchFetch, useGrowingBatchFetchFunc } from 'libs/shared/hooks/UseBatchFetch';\nimport { Clip, ClipCollection, Video, VideoCollection } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\ntype Types = Video[] | VideoCollection | Clip[] | ClipCollection;\n\nfunction getValidObjects(objects: Types): (Video | Clip)[] {\n if (!objects)\n return [];\n\n if (Array.isArray(objects))\n return objects.filter(o => !!o && (VideoHelper.isVideo(o) || VideoHelper.isClip(o)));\n\n if ('data' in objects)\n return objects.data.filter(o => !!o && (VideoHelper.isVideo(o) || VideoHelper.isClip(o)));\n\n return [];\n}\n\ninterface VideoMixinOptions {\n /**\n * If the videos that are having new data mixed into are sitting on an explicit Flight namespace,\n * providing that namespace here is required\n */\n flightNamespace?: string;\n}\n\nexport function useVideoMixin(objects: Types, options: VideoMixinOptions = {}) {\n const videoIds = getValidObjects(objects).map(v => v.id);\n\n useGrowingBatchFetch(\n videoIds,\n ids => VideoRequests.videoMixinAssocs(ids, options.flightNamespace),\n null\n );\n}\n\nexport function useVideoMixinFunc(options: VideoMixinOptions = {}) {\n function getRequest(ids: string[]): Flight.Request {\n return VideoRequests.videoMixinAssocs(ids, options.flightNamespace);\n }\n \n function fetchObjects(items: Types) {\n return fetchItems(getValidObjects(items).map(v => v.id));\n }\n\n const { fetchItems } = useGrowingBatchFetchFunc({ getRequest });\n\n return { fetchObjects };\n}","// extracted by mini-css-extract-plugin\nexport default {\"image\":\"ZfpQv\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EntityType, LocationContext, SignUpDescriptors, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport styles from './favourites-empty-state.scss';\n\nconst namespace = 'shared.favouritesEmptyState';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function FavouritesEmptyState(): JSX.Element {\n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n <EmptyState>\n <EmptyState.Image\n src={ImageUrls.EmptyStates.FAVOURITED_VIDEOS}\n altText={getPhrase('info')}\n className={styles.image}\n />\n\n <EmptyState.Heading className='h3'>\n <Text phrase='heading' />\n </EmptyState.Heading>\n\n <EmptyState.Info><Text phrase='info' /></EmptyState.Info>\n\n <EmptyState.Cta\n text={LanguageService.getPhrase(namespace, 'cta')}\n appLink={{\n application: AppChannels.DASHBOARD,\n action: Actions.Dashboard.HOME\n }}\n />\n </EmptyState>\n </LanguageNamespaceContext.Provider>\n );\n}\n\nexport function FavouritesPublicEmptyState(): JSX.Element {\n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n <EmptyState>\n <EmptyState.Image src={ImageUrls.EmptyStates.FAVOURITED_VIDEOS_PUBLIC} altText={getPhrase('publicInfo')} />\n <EmptyState.Heading><Text phrase='publicHeading' /></EmptyState.Heading>\n <EmptyState.Info><Text phrase='publicInfo' /></EmptyState.Info>\n <EmptyState.Cta\n text={LanguageService.getPhrase(namespace, 'publicCta')}\n appLink={{\n application: AppChannels.SIGN_UP,\n action: Actions.SignUp.SIGN_UP\n }}\n analyticsData={{}}\n analyticsOptions={{\n actionType: UserAction.Click,\n location: LocationContext.MyFavouritesLanding,\n entity: EntityType.AppLink,\n workflowPhase: WorkflowPhase.Start,\n descriptor: SignUpDescriptors.SignUp\n }}\n />\n </EmptyState>\n </LanguageNamespaceContext.Provider>\n );\n}","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { VideoTypes } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { useVideoActions, VideoActionsLocation } from 'shared/hooks/use-video-actions/useVideoActions';\nimport { useLiteFavourites } from 'shared/hooks/useLiteFavourites';\n\nconst namespace = 'shared.favourites';\n\nexport function useFavouritesVideoActions() {\n const videoActions = useVideoActions({ location: VideoActionsLocation.VideoItem });\n const { setFavourite } = useLiteFavourites(LocationContext.VideoThumbnail);\n\n const getVideoActions = (video: VideoTypes) => {\n const { canConsume } = VideoHelper.getCanBeConsumed(video);\n\n if (!canConsume) {\n return [{\n label: LanguageService.getPhrase(namespace, 'removeFromFavourites'),\n svgName: cvSvgLibrary.Delete,\n button: false,\n className: 'btn btn-link text-danger',\n onClick: () => setFavourite(video, false)\n }];\n }\n\n return videoActions.getVideoActions(video);\n };\n\n return {\n ...videoActions,\n getVideoActions\n };\n}","// extracted by mini-css-extract-plugin\nexport default {\"banner\":\"FEWd3\"};","import * as React from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { BannerHeader } from 'libs/shared/components/banner-header/BannerHeader';\nimport { Breadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { InfiniteScrollFooter } from 'libs/shared/components/infinite-scroll-footer/InfiniteScrollFooter';\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 } from 'libs/shared/context/VideoActionsContext';\nimport { LocalPermissionName, PermissionName } from 'libs/shared/enums/PermissionName';\nimport { handleHttpError } from 'libs/shared/errors/handlers/HttpErrorHandlers';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { FavouriteRequests } from 'libs/shared/flight-requests/FavouriteRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { useBreadcrumbs } from 'libs/shared/hooks/useBreadcrumbs';\nimport { useInfiniteList } from 'libs/shared/hooks/UseInfiniteList';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { Config, CurrentUser, VideoTypes } from 'libs/shared/interfaces';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { useCommonVideoProps } from 'shared/hooks/useCommonVideoProps';\nimport { usePresentationAudiences } from 'shared/hooks/usePresentationAudiences';\nimport { useVideoMixin } from 'shared/hooks/useVideoMixin';\nimport { InteractiveHelpers } from 'shared/utils/InteractiveHelper';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\n\nimport { SoftGateBanner } from 'apps/sign-up/components/soft-gate-banner/SoftGateBanner';\n\nimport { FavouritesEmptyState, FavouritesPublicEmptyState } from './empty-state/FavouritesEmptyState';\nimport { useFavouritesCount } from './hooks/useFavouritesCount';\nimport { useFavouritesVideoActions } from './FavouritesViewUtils';\n\nimport styles from './favourites-view.scss';\n\nconst namespace = 'shared.favourites';\n\nexport function FavouritesView(): JSX.Element {\n const dispatch = useDispatch();\n const alerts = useAlerts();\n\n const { commonVideoProps } = useCommonVideoProps({ locationContext: LocationContext.VideoThumbnail });\n const videoActions = useFavouritesVideoActions();\n\n useSetPageMetadata({ title: LanguageService.getPhrase(namespace, 'pageTitle') });\n const { hasLocalPermissions, hasPermissions, getGatedPermission } = usePermissions();\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n const getRequest = (cursor?: string) => {\n return FavouriteRequests.getFavourites(currentUser.data.id, cursor);\n };\n\n const fetchNext = (cursor?: string) => {\n return Flight.getFetch(dispatch)(getRequest(cursor));\n };\n\n const shouldFetch = !hasLocalPermissions(LocalPermissionName.ViewMyFavouritesLanding) && currentUser.hasCompleted;\n\n const {\n items,\n hasMore,\n isFetching\n } = useInfiniteList<VideoTypes>(shouldFetch ? getRequest : false, fetchNext, onError);\n\n useVideoMixin(items);\n \n const audiences = usePresentationAudiences();\n\n const breadcrumbs = useBreadcrumbs({ name: LanguageService.getPhrase(namespace, 'header') });\n\n function onError(pageNumber: number, httpStatus: HttpStatus): void {\n if (pageNumber === 1)\n return handleHttpError(httpStatus);\n\n alerts.error(LanguageService.getPhrase(namespace, 'error'));\n }\n\n const { count, isLoading } = useFavouritesCount(currentUser.data?.id);\n if (isLoading)\n return <></>;\n\n if (hasLocalPermissions(LocalPermissionName.ViewMyFavouritesLanding))\n return <FavouritesPublicEmptyState />;\n\n return (\n <VideoActionsContext.Provider value={videoActions}>\n <div className='p-3'>\n <BannerHeader\n heading={LanguageService.getPhrase(namespace, 'header')}\n banner={{ url: ImageUrls.FAVOURITES_PLAYLIST.FAV_PLAYLIST_BANNER }}\n bannerClassName={`${styles.banner} bg-pink`}\n imageCdnUrl={config.data?.imageCdnUrl}\n detailsComponent={() => (\n <div className='mb-n1 font-size-normal fw-normal mt-1'>\n <Text namespace={namespace} phrase='videos' options={{ smartCount: count }} />\n </div>\n )}\n />\n {getGatedPermission(PermissionName.FavouriteVideo) === 'soft-gate' && <SoftGateBanner />}\n {breadcrumbs?.length &&\n <div className='border-bottom pb-3'>\n <Breadcrumbs breadcrumbs={breadcrumbs} />\n </div>\n }\n \n {(() => {\n if (!items)\n return <PartialVideoList />;\n\n if (!items.length)\n return <FavouritesEmptyState />;\n\n return (\n <div className='mt-2'>\n <VideoList\n videos={items}\n getVideoAppLink={VideoAppLinkHelper.getAppLink}\n hasPermissions={hasPermissions}\n presentationAudiences={audiences.data}\n getPreviewQuestionsAppLink={interactive => InteractiveHelpers.getPreviewQuestionsAppLink(interactive)}\n commonVideoProps={commonVideoProps}\n />\n {(hasMore || isFetching) && <InfiniteScrollFooter isFetching={isFetching} fetchNext={fetchNext} />}\n </div>\n );\n })()}\n </div>\n </VideoActionsContext.Provider>\n );\n}","\nimport { Flight } from 'libs/common/flight';\n\nimport { FavouriteRequests } from 'libs/shared/flight-requests/FavouriteRequests';\nimport { FavouritesCountResponse } from 'libs/shared/interfaces';\n\nexport function useFavouritesCount(userId?: string) {\n// todo there is a beckend bug that we cannot group fetch these three number\n const favouriteVideosCount = Flight.useBasicFetch<FavouritesCountResponse>(userId &&\n FavouriteRequests.getFavouritesVideosCount(userId));\n const favouriteClipsCount = Flight.useBasicFetch<FavouritesCountResponse>(userId &&\n FavouriteRequests.getFavouritesClipsCount(userId));\n const favouriteInteractivesCount = Flight.useBasicFetch<FavouritesCountResponse>(userId &&\n FavouriteRequests.getFavouritesInteractivesCount(userId));\n \n const totalCount = favouriteVideosCount.data?.count\n + favouriteInteractivesCount.data?.count\n + favouriteClipsCount.data?.count;\n\n const favourites = [\n ...(favouriteVideosCount.data?.data || []),\n ...(favouriteClipsCount.data?.data || []),\n ...(favouriteInteractivesCount.data?.data || [])\n ];\n\n return {\n count: totalCount,\n favourites,\n isLoading: !favouriteVideosCount.data?.data\n || !favouriteClipsCount.data?.data\n || !favouriteInteractivesCount.data?.data\n };\n}"],"names":["namespace","ComingSoonTag","props","Tooltip","title","LanguageService","spanHackClassName","spanHack","className","SvgContainer","svgName","onlyIcon","GenericCalendarDate","AppLink","appLink","getAppLink","theme","border","analyticsData","analyticsOptions","background","label","body","type","getBodyClass","text","month","BackButton","textShadow","backToName","color","extraClasses","backPhrase","colorClass","textShadowClass","size","S","defaultProps","RATIO","width","height","getSizeClass","heading","length","BannerHeader","banner","imageCdnUrl","actions","sortComponent","blockColourClass","specialEvent","portalContainerContext","BannerPortalContext","imageWidth","useBreakpoints","xxl","specialEventIsToday","showComingSoon","today","DateHelper","Date","endDate","startDate","imageOptions","ratio","resizeType","url","ImageHelper","fallbackBaseUrl","fallbackCategoryName","containerProps","bannerClassName","style","backgroundImage","DetailsComponent","detailsComponent","logoFallbackBgClassName","getBgColorClass","PortalHelper","backButtonAppLink","backButtonText","backButtonClasses","alignLogoLeft","logo","getSpecialEventMonthText","calendarTheme","Text","phrase","LazyImage","src","backgroundColor","logoBgColour","Actions","actionsDropdownClassName","container","prevProps","nextProps","PartialBannerHeader","defaultErrors","notFound","forbidden","rating","yearLevel","region","privacy","badRequest","internalServerError","handleHttpError","info","customErrorMap","ignoreMap","statusCode","status","errorMap","CHUNK_SIZE","useBatchFetch","itemIds","getRequest","requests","map","chunk","responses","itemsArr","data","items","reduce","acc","item","id","isFetching","hasCompleted","useGrowingBatchFetch","objs","_getKey","getKey","obj","useGrowingBatchFetchFunc","fetchItems","join","options","fetchedItems","Set","setRequests","hasFirstRequestCompleted","unfetchedItems","forEach","key","current","has","push","add","r","SCROLL_TOLERANCE","useInfiniteList","fetchNext","onError","getItems","getCursor","scrollContainer","handleScroll","useState","pagesFetched","setPagesFetched","fetchNextFn","response","cursor","request","fetchNextPage","currentVal","nextCursor","hasMore","getBoundingClientRect","scrollTop","scrollHeight","window","innerHeight","document","documentElement","useEffect","onScroll","FunctionHelper","addEventListener","removeEventListener","shouldInitialFetch","httpStatusClass","toString","substr","HttpStatus","totalItems","hasFirstPageCompleted","useBreadcrumbs","match","breadcrumbs","useBuilder","active","SoftGateBanner","role","application","action","useCommonVideoProps","locationContext","mtv","flightNamespace","sharedPlaylist","isPlugin","params","u","setFavourite","canFavourite","hasTopicDirectories","isLoadingSettings","hasPermissions","hasLoadedPermissions","isLoaded","hasStudentExperience","hasGuestExperience","config","currentUser","yearGroups","isAuthenticated","customerId","hasCommonVideoPropsCompleted","commonVideoProps","subTextType","getSubTextAppLink","video","series","isPluginPopup","popup","getClassroomGuideAppLink","getInteractiveGuidanceAppLink","getResourceGuidanceAppLink","showNewVideoIndicator","companyLogoFallbackUrl","usePresentationAudiences","redirectOnError","activePresentation","getFallbackPresentation","presentation","getValidObjects","objects","Array","isArray","filter","o","useVideoMixin","videoIds","v","ids","useVideoMixinFunc","fetchObjects","getPhrase","FavouritesEmptyState","value","EmptyState","ImageUrls","altText","FavouritesPublicEmptyState","actionType","location","entity","workflowPhase","descriptor","SignUp","FavouritesView","dispatch","alerts","videoActions","useVideoActions","useLiteFavourites","getVideoActions","VideoHelper","canConsume","button","onClick","useFavouritesVideoActions","useSetPageMetadata","usePermissions","hasLocalPermissions","getGatedPermission","UserRequests","ConfigRequests","FavouriteRequests","shouldFetch","pageNumber","httpStatus","error","audiences","name","useFavouritesCount","count","isLoading","VideoActionsContext","smartCount","PermissionName","Breadcrumbs","VideoList","videos","getVideoAppLink","VideoAppLinkHelper","presentationAudiences","getPreviewQuestionsAppLink","interactive","InteractiveHelper","InfiniteScrollFooter","PartialVideoList","userId","favouriteVideosCount","favouriteClipsCount","favouriteInteractivesCount","favourites"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[7401],{1619:(e,t,n)=>{n.d(t,{e:()=>h});var a=n(32735),r=n(23481),i=n(31453),s=n(12528),o=n(83914),l=n(35223),c=n(33518),u=n(2510);function m(e){return m="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},m(e)}function p(e,t,n){return(t=function(e){var t=function(e){if("object"!=m(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=m(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==m(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var d=r.T.encloseNamespace("sharev2.shareAvatar"),v=p(p(p(p(p({},u.y.Open,l.vn.Classrooms),u.y.Link,l.vn.Link),u.y.Classroom,l.vn.Classrooms),u.y.Live,l.vn.Play),u.y.LegacyDirect,l.vn.Share),y=p(p(p(p(p({},u.y.Open,"blue"),u.y.Link,"black"),u.y.Classroom,"purple"),u.y.Live,"purple"),u.y.LegacyDirect,"indigo"),f=p(p(p(p(p({},u.y.Open,"openShareType"),u.y.Link,"linkShareType"),u.y.Classroom,"classroomShareType"),u.y.Live,"liveShareType"),u.y.LegacyDirect,"legacyDirectShareType");function h(e){var t,n,r=function(e){var t=e.type,n=e.classroomName,a=e.additionalTitleText,r=e.openClassroomName;if(t===u.y.Open&&r)return r;if(t===u.y.Classroom&&n)return n;var i=d(f[t]);return a&&(i+=" "+a),i}(e);return a.createElement("div",{className:(0,i.A)("d-flex align-items-center gap-2",e.className)},a.createElement("div",null,a.createElement(s.f,{svgName:v[e.type],variant:y[e.type],textVariant:"white",svgWrapperClassName:"p-1",svgSize:null!==(t=e.svgSize)&&void 0!==t?t:o.S.Standard})),a.createElement("div",{className:"d-flex flex-column"},a.createElement("p",{className:(0,i.A)("m-0",e.titleClassName),title:r},r),!e.hideSubtitle&&a.createElement("span",{className:"text-secondary"},null!==(n=e.subtitleText)&&void 0!==n?n:function(e){var t=e.type,n=e.privacy,a=e.studentCount,r=void 0===a?0:a,i=e.classroomGroupCount,s=void 0===i?0:i;switch(t){case u.y.Classroom:return function(e,t){return e&&t?"".concat(d("classroomGroupCount",{smartCount:e}),", ").concat(d("studentSubTitle",{smartCount:t})):e?d("groupSubTitle",{smartCount:e}):t?d("studentSubTitle",{smartCount:t}):d("allStudentsSubTitle")}(s,r);case u.y.Open:return d("openShareTypeSubTitle");case u.y.Link:return function(e){return[c.e.JustMySchool,c.e.Protected].includes(e)?d("respectRatingsSubTitle"):e===c.e.JustMySchoolOverrideRestriction?d("anyoneInSchoolSubTitle"):e===c.e.ProtectedOverrideRestriction?d("anyoneSignedInSubTitle"):e===c.e.Public?d("anyoneWithLinkSubTitle"):e===c.e.PinCode?d("anyoneWithPinSubTitle"):void 0}(n);case u.y.Live:return d("liveShareTypeSubTitle");case u.y.LegacyDirect:return d("legacyDirectTypeSubTitle");default:return d("publicShareTypeSubTitle")}}(e))))}},33518:(e,t,n)=>{var a;n.d(t,{e:()=>a}),function(e){e.Public="Public",e.PinCode="PinCode",e.PasswordProtected="PasswordProtected",e.ProtectedOverrideRestriction="ProtectedOverrideRestriction",e.JustMySchoolOverrideRestriction="JustMySchoolOverrideRestriction",e.Protected="Protected",e.JustMySchool="JustMySchool",e.Direct="Direct"}(a||(a={}))},8233:(e,t,n)=>{n.d(t,{R:()=>d});var a=n(23481),r=n(110),i=n(33518),s=n(4594),o=n(49080),l=n(26361),c=n(35223),u=n(31908);function m(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var p=a.T.encloseNamespace("sharev2.utils"),d={getPrivateIconAndText:function(e){var t=e.entityTypeId,n=e.privacy,a=e.hasStudentExp,r=e.entity,o=e.yearGroups;if(t===s.E.Topic||t===s.E.Series)return{icon:c.vn.VisibleOn,text:p(a?"justMySchoolTeachers":"justMySchoolDescription")};if(!Array.isArray(n))switch(n){case i.e.Public:return{icon:c.vn.VisibleOn,text:p("publicDescription")};case i.e.ProtectedOverrideRestriction:return{icon:c.vn.VisibleOn,text:p("clickViewOnly")};case i.e.Protected:return{icon:c.vn.Lock,text:d.getRespectRatingText(r,o,a)};case i.e.JustMySchoolOverrideRestriction:return{icon:c.vn.Lock,text:p(a?"justMySchoolTeachers":"justMySchoolDescription")};case i.e.JustMySchool:return{icon:c.vn.Lock,text:d.getRespectRatingText(r,o,a)};case i.e.PinCode:return{icon:c.vn.Lock,text:p("pinDescription")};case i.e.PasswordProtected:return{icon:c.vn.Lock,text:p("password")};default:return{}}},getIconAndText:function(e){var t=e.linkExpireDate,n=e.isPasswordProtected,a=e.status;if(!t&&!n)return d.getPrivateIconAndText(e);if(!t)return{icon:c.vn.Lock,text:p("password")};var i=r.O.isToday(t),s=r.O.diffBetween(t,new Date,"day");if(!n){var l=i?p("expiryToday"):p("expiry",{days:s});return a===o.F.Expired&&(l=p("expired")),{icon:c.vn.Timer,text:l}}var u=i?p("passwordExpiryToday"):p("passwordExpiry",{days:s});return a===o.F.Expired&&(u=p("passwordExpired")),{icon:c.vn.Lock,text:u}},getRespectRatingText:function(e,t,n){var a;if(!e||!t)return null;if(n)return p("justMySchoolTeachers");if(!u.M.isVideoType(e))return p("collectionRating");var r=l.l.getWeightedRestriction(null===(a=e._restrictions)||void 0===a?void 0:a.value);if(r&&!r.yearGroup)return p("onlyAdmins");var i,s,o,c=u.M.getRating(e),d=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return m(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)?m(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var a=0,r=function(){};return{s:r,n:function(){return a>=e.length?{done:!0}:{done:!1,value:e[a++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,s=!0,o=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){o=!0,i=e},f:function(){try{s||null==n.return||n.return()}finally{if(o)throw i}}}}(t);try{for(d.s();!(o=d.n()).done;){var v=o.value;(!i||v.value>i.value)&&(i=v),r&&v.value<=r.yearGroup||c&&v.rating.value<c.value||(!s||v.value<s.value)&&(s=v)}}catch(e){d.e(e)}finally{d.f()}return s?1===t.length?p("clickViewOnly"):s.value===i.value?p("maxYearGroup",{yearGroup:i.name}):p("yearGroupRange",{yearGroup:s.name}):p("onlyStaff")},getShareLinkAccessType:function(e){return e.isTvContent||e.isClickViewContent?"protected":e.canManageAccess?"owner":"private"}}},38502:(e,t,n)=>{n.d(t,{r:()=>m});var a=n(32735),r=n(49985),i=n(15611),s=n(18559),o=n(11607),l=n(83914),c=n(22771);function u(e){return a.createElement(a.Fragment,null,!!e.tab.svgName&&a.createElement("div",{className:e.tab.name?"pe-1":""},a.createElement(l.x,{svgName:e.tab.svgName})),e.tab.name,"number"==typeof e.tab.count&&a.createElement("div",{className:"ps-2"},a.createElement(s.C,{type:s.g.Count,data:e.tab.count})))}function m(e){var t;return a.createElement("nav",{className:null!==(t=e.className)&&void 0!==t?t:"",ref:e.containerRef},a.createElement("ul",{className:"\n list-unstyled d-inline-block m-0 ".concat(c.Z.pillTabSelector,"\n ").concat(e.borderRadius?c.Z.radiusSmall:"","\n ").concat(e.listClassName,"\n ")},e.tabs.map(function(e,t){return a.createElement("li",{className:"\n p-0 ".concat(c.Z.tab," ").concat(e.active?"btn btn-dark":"btn btn-outline-dark","\n ").concat(e.name?c.Z.minWidth:""," ").concat(e.className,"\n "),key:t},e.appLink?a.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(c.Z.tabLink,"\n ")},a.createElement(u,{tab:e})):a.createElement(o.L,{className:"\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ".concat(c.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)}},a.createElement(u,{tab:e})))})))}m.defaultProps={borderRadius:"lg"}},93322:(e,t,n)=>{n.d(t,{F:()=>i});var a=n(32735),r=n(13126);function i(){a.useEffect(function(){return r.e.lockContentWidth(),function(){return r.e.unlockContentWidth()}},[])}},99746:(e,t,n)=>{n.d(t,{p:()=>v});var a=n(32735),r=n(57900),i=n(97395),s=n(2948),o=n(91693),l=n(83345),c=n(4594),u=n(35223),m=n(86702);function p(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var d="lite.insightsAdminAlert";function v(e){var t,n,v=(t=(0,s.D)(m.y.INSIGHTS_ADMIN_ALERT,!0,{storage:r.Z1.LocalStorage}),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 a,r,i,s,o=[],l=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(a=i.call(n)).done)&&(o.push(a.value),o.length!==t);l=!0);}catch(e){c=!0,r=e}finally{try{if(!l&&null!=n.return&&(s=n.return(),Object(s)!==s))return}finally{if(c)throw r}}return o}}(t,n)||function(e,t){if(e){if("string"==typeof e)return p(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?p(e,t):void 0}}(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),y=v[0],f=v[1];return e.hasAnalytics&&y?a.createElement("div",{role:"alert",className:"d-flex justify-content-between align-items-center bg-light-blue rounded p-2 mb-4"},a.createElement("div",null,a.createElement(l.x,{namespace:d,phrase:"adminAlert"}),a.createElement("a",{className:"text-info",href:function(){if(!e.video)return e.analyticsUrl;var t="";return e.video.typeId===c.E.Interactive&&(t="/interactives/".concat(e.video.id,"/views")),e.video.typeId===c.E.Video&&(t="/videos/".concat(e.video.id,"/views")),e.video.typeId===c.E.Clip&&(t="/clips/".concat(e.video.id,"/views")),i._.safeUrlConcat(e.analyticsUrl,t)}(),target:"_blank"},a.createElement(l.x,{namespace:d,phrase:"analytics"})),"."),a.createElement(o.h,{svgName:u.vn.Close,className:"text-blue",onClick:function(){f(!1)}})):a.createElement(a.Fragment,null)}},74049:(e,t,n)=>{n.d(t,{j:()=>Q});var a=n(32735),r=n(23481),i=n(57900),s=n(2948),o=n(31453),l=n(2510),c=n(76306),u=n(49935),m=n(91693),p=n(38502),d=n(83914),v=n(83345),y=n(83523),f=n(36532),h=n(38143),E=n(4594),S=n(16714),g=n(22902),b=n(70227),N=n(35223),O=n(14070),A=n(97291),T=n(86702),k=n(46390),x=n(99998),C=n(86099),L=n(22490),R=n(99746),I=n(1619),w=n(41889),M=n(21789),P=n(8233);const _={shareAvatar:"dW1Zw",shareAvatarTitle:"WfiUS"};function D(e){var t;if(!e.sharedObject)return a.createElement(a.Fragment,null);var n=M.x.hasShareExpired(e.share),r=P.R.getPrivateIconAndText({privacy:e.share.privacy,entityTypeId:e.sharedObject.typeId,hasStudentExp:!1,entity:e.entity,yearGroups:e.yearGroups}).text;return a.createElement("div",{className:(0,o.A)("d-flex flex-row align-items-center gap-1",e.className)},a.createElement(w.B,{share:e.share,markingRequired:e.markingRequired,className:"cursor-default",hasData:e.hasData}),a.createElement(I.e,{className:(0,o.A)("ps-2 me-1",_.shareAvatar),titleClassName:(0,o.A)("text-truncate",_.shareAvatarTitle),privacy:e.share.privacy,type:e.share.type,classroomName:e.classroomName,openClassroomName:null===(t=e.share.options)||void 0===t?void 0:t.openClassroomName,hideSubtitle:!0,svgSize:d.S.Small}),!n&&!!r&&a.createElement("div",{className:"d-flex align-items-center gap-2"},a.createElement("span",{className:"d-inline-block"},"•"),a.createElement("p",{className:"mb-0"},r)))}var j=n(69003),U=n(15611),G="signUp.hardGateBanner";function V(){return a.createElement("div",{role:"alert",className:"bg-light-indigo text-indigo rounded p-3 mb-4"},a.createElement(v.x,{namespace:G,phrase:"hardGate"})," ",a.createElement(U.F,{appLink:{application:A.O.SIGN_UP,action:O.e.SignUp.INVITE_COLLEAGUE},className:"indigo-link text-underline d-inline"},a.createElement(v.x,{namespace:G,phrase:"hardGateCta"})))}var H=n(12909);const W={withDivider:"ZSzT3"};function F(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,i,s,o=[],l=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(a=i.call(n)).done)&&(o.push(a.value),o.length!==t);l=!0);}catch(e){c=!0,r=e}finally{try{if(!l&&null!=n.return&&(s=n.return(),Object(s)!==s))return}finally{if(c)throw r}}return o}}(e,t)||Y(e,t)||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.")}()}function Y(e,t){if(e){if("string"==typeof e)return Z(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)?Z(e,t):void 0}}function Z(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var q="insights.header",J=r.T.encloseNamespace(q);function z(e){return a.createElement("div",null,a.createElement("label",{htmlFor:"anonymiseNames",className:"mb-0 pe-3"},a.createElement(v.x,{namespace:q,phrase:"anonymiseNames"})),a.createElement(y.Z,{id:"anonymiseNames",on:e.anonymiseUsers,onClick:e.toggleAnonymiseUsers}))}function B(){var e=F((0,s.D)(T.y.HIDE_STAFF_RESULTS,!1),2),t=e[0],n=e[1];return a.createElement("span",{onClick:function(e){e.stopPropagation(),n(!t)}},a.createElement(d.x,{svgName:N.vn.Staff,className:"d-inline-block svg-container me-2 align-middle"}),a.createElement("span",{className:"d-inline-block align-middle"},a.createElement("span",{className:"me-3"},J("hideStaff")),a.createElement(y.Z,{on:t,onClick:function(){}})))}function $(e){return a.createElement(f.u,{id:"audienceFilter",title:J("demoOnly"),spanHack:e.isDemo},a.createElement("div",{className:e.isDemo?"pointer-events-none":""},e.children))}function Q(e){var t,n,r=F((0,s.D)(h.g.ANONYMISE_USERS,!1,{storage:i.Z1.LocalStorage}),2),y=r[0],T=r[1],I=(0,k.G)().isPlugin,w=(0,g.T)().hasPermissions,M=(0,x.R)().experience,P=w(S.C.ViewAnalyticsProduct)&&w(S.C.ViewCustomerAnalytics),_=(0,C.Zm)(e.share),U=(0,C.wY)(e.share,"insights");return a.createElement("div",null,"soft-gate"===e.viewInsightsGatedPermission&&a.createElement(H.H,null),"hard-gate"===e.viewInsightsGatedPermission&&a.createElement(V,null),"soft-gate"!==e.viewInsightsGatedPermission&&"hard-gate"!==e.viewInsightsGatedPermission&&a.createElement(R.p,{analyticsUrl:e.analyticsWebUrl,hasAnalytics:e.hasAnalytics,video:e.video}),a.createElement("section",{className:"mb-4"},a.createElement("div",{className:"d-flex justify-content-between mb-3"},a.createElement("div",{className:"me-2"},e.video&&a.createElement(a.Fragment,null,a.createElement("h1",{className:"mb-0 d-inline me-2"},e.video.name),!e.isDemo&&a.createElement(f.u,{title:J(e.video.typeId===E.E.Interactive?"viewInteractive":e.video.typeId===E.E.Clip?"viewClip":"viewVideo"),type:"text",spanHack:!0,spanHackClassName:"d-inline-block align-text-bottom"},a.createElement(m.h,{svgName:N.vn.NewWindow,appLink:L.W.getAppLink(e.video),svgSize:d.S.Large,className:"d-inline-block",customSize:!0}))),!e.video&&a.createElement("h1",{className:"partial-loading-background",style:{width:"20rem"}}," ")),a.createElement("div",{className:"d-flex gap-2"},!I&&_&&a.createElement($,{isDemo:e.isDemo},a.createElement(m.h,{svgName:N.vn.Share,className:"btn btn-outline-dark",appLink:_},a.createElement(v.x,{namespace:q,phrase:e.share.type===l.y.Link?"share":"shareOptions"}))),!I&&U&&(null===(t=e.video)||void 0===t?void 0:t.typeId)===E.E.Interactive&&a.createElement($,{isDemo:e.isDemo},a.createElement(m.h,{svgName:N.vn.Edit,className:"btn btn-outline-dark",appLink:U},a.createElement(v.x,{namespace:q,phrase:"editSettings"}))),a.createElement($,{isDemo:e.isDemo},a.createElement(c.m,{dropdownToggleClassName:"btn btn-outline-dark",actions:function(){var t,n,r=[];return(null===(t=e.video)||void 0===t?void 0:t.typeId)===E.E.Interactive&&(r.push({label:function(){return a.createElement(B,null)}}),r.push({label:J("generateReport"),svgName:N.vn.Print,appLink:{application:A.O.MY_SHARES,action:O.e.MyShares.INTERACTIVE_GENERATE_REPORT,args:[e.video.id]}})),P&&r.push({label:J("viewInAnalytics"),svgName:N.vn.Analytics,href:b.c.getObjectUrl(e.analyticsWebUrl,e.video,!0),openInNewTab:!0}),[].concat(r,function(e){if(Array.isArray(e))return Z(e)}(n=(0,j.sD)({share:e.share,sharedObject:e.video,isPlugin:I,hideShareOptionsActions:!0}))||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(n)||Y(n)||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.")}())}()})))),a.createElement("div",{className:"d-flex justify-content-between mb-3"},e.video?a.createElement(u.Oo,{breadcrumbs:function(){if(!e.video||!e.share)return[];var t,n=[(t=e.share.type===l.y.Classroom?{name:J("classrooms"),appLink:{application:A.O.CLASSROOMS,action:O.e.Classrooms.HOME}}:e.share.type===l.y.Open?{name:J("openClassrooms"),appLink:{application:A.O.CLASSROOMS,action:O.e.Classrooms.OPEN_CLASSROOMS}}:{name:J("shares"),appLink:{application:A.O.MY_SHARES,action:O.e.MyShares.HOME}},"minimal"===M&&(t=Object.assign(Object.assign({},t),{appLink:{application:A.O.CLASSROOMS,action:O.e.Classrooms.HOME}})),t)];return e.share.type===l.y.Classroom&&e.classroom&&n.push({name:e.classroom.name,appLink:{application:A.O.CLASSROOMS,action:O.e.Classrooms.CLASSROOM_HOME,args:[e.classroom.id]}}),n.push({name:e.video.name,active:!0}),n}()}):a.createElement(u.b2,null)),a.createElement("div",{className:(0,o.A)("d-flex flex-row align-items-center mb-3",W.withDivider)},a.createElement(D,{sharedObject:e.video,share:e.share,entity:e.video,yearGroups:e.yearGroups,classroomName:null===(n=e.classroom)||void 0===n?void 0:n.name,markingRequired:e.markingRequired,hasData:e.hasData})),a.createElement("div",{className:"d-flex align-items-center justify-content-between mb-4"},"hard-gate"!==e.viewInsightsGatedPermission&&a.createElement(p.r,{tabs:e.tabs}),a.createElement("div",null,e.hasData&&a.createElement(z,{anonymiseUsers:y,toggleAnonymiseUsers:function(){return T(!y)}})))))}},10447:(e,t,n)=>{n.d(t,{$6:()=>c,aq:()=>m,kj:()=>u});var a=n(23481),r=n(2510),i=n(14070),s=n(97291),o=n(86099),l=a.T.encloseNamespace("shared.insightsUtils");function c(e,t,n){return[{name:l("insights"),active:"insights"===t,appLink:(0,o.pY)(e,n)},{name:l("heatmap"),active:"heatmap"===t,appLink:(0,o.Rv)(e,n)}]}function u(e,t){return[{name:l("insights"),active:"insights"===t,appLink:(0,o.pY)(e)},{name:l("results"),active:"results"===t,appLink:(0,o.rq)(e)},{name:l("questions"),active:"questions"===t,appLink:(0,o.Sj)(e)},{name:l("heatmap"),active:"heatmap"===t,appLink:(0,o.Rv)(e)}]}function m(e,t,n,a){return a===r.y.Open?[{name:l("insights"),active:"insights"===t,appLink:{application:s.O.MY_SHARES,action:i.e.MyShares.INTERACTIVE_OVERVIEW_OPEN_CLASSROOM_DEMO,args:[e],params:n}},{name:l("results"),active:"results"===t,appLink:{application:s.O.MY_SHARES,action:i.e.MyShares.INTERACTIVE_STUDENTS_OPEN_CLASSROOM_DEMO,args:[e],params:n}},{name:l("questions"),active:"questions"===t,appLink:{application:s.O.MY_SHARES,action:i.e.MyShares.INTERACTIVE_QUESTIONS_OPEN_CLASSROOM_DEMO,args:[e],params:n}},{name:l("heatmap"),active:"heatmap"===t,appLink:{application:s.O.MY_SHARES,action:i.e.MyShares.INTERACTIVE_HEATMAP_OPEN_CLASSROOM_DEMO,args:[e],params:n}}]:[{name:l("insights"),active:"insights"===t,appLink:{application:s.O.MY_SHARES,action:i.e.MyShares.INTERACTIVE_OVERVIEW_DEMO,args:[e],params:n}},{name:l("results"),active:"results"===t,appLink:{application:s.O.MY_SHARES,action:i.e.MyShares.INTERACTIVE_STUDENTS_DEMO,args:[e],params:n}},{name:l("questions"),active:"questions"===t,appLink:{application:s.O.MY_SHARES,action:i.e.MyShares.INTERACTIVE_QUESTIONS_DEMO,args:[e],params:n}},{name:l("heatmap"),active:"heatmap"===t,appLink:{application:s.O.MY_SHARES,action:i.e.MyShares.INTERACTIVE_HEATMAP_DEMO,args:[e],params:n}}]}},12909:(e,t,n)=>{n.d(t,{H:()=>m});var a=n(32735),r=n(15611),i=n(83914),s=n(83345),o=n(35223),l=n(14070),c=n(97291),u="signUp.softGateBanner";function m(){return a.createElement("div",{role:"alert",className:"bg-light-indigo text-indigo rounded p-2 mb-4 d-flex align-items-center"},a.createElement(i.x,{svgName:o.vn.StarOutline,size:i.S.Large}),a.createElement(s.x,{namespace:u,phrase:"softGate"})," ",a.createElement(r.F,{appLink:{application:c.O.SIGN_UP,action:l.e.SignUp.PREMIUM_FEATURES},className:"indigo-link text-indigo text-underline d-inline"},a.createElement(s.x,{namespace:u,phrase:"learnMore"})))}},22771:(e,t,n)=>{n.d(t,{Z:()=>a});const a={pillTabSelector:"Hdi6o",tab:"RvNxr",minWidth:"GHSz9",radiusSmall:"VhJJa",tabLink:"WFyvo"}}}]);
|
|
2
|
-
//# sourceMappingURL=7401-833bc4a088-lite.chunk.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scripts/7401-833bc4a088-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/apps/share-v2/components/share-avatar/ShareAvatar.tsx","file:///app/packages/libs/shared/src/apps/share-v2/enums/SharePrivacy.ts","file:///app/packages/libs/shared/src/apps/share-v2/utils/ShareLinkHelper.ts","file:///app/packages/libs/shared/src/components/pill-tab-selector/PillTabSelector.tsx","file:///app/packages/libs/shared/src/hooks/useLockContentWidth.ts","file:///app/packages/projects/lite/src/apps/my-shares/components/insights-admin-alert/InsightsAdminAlert.tsx","file:///app/packages/projects/lite/src/apps/my-shares/components/share-info/share-info.scss","file:///app/packages/projects/lite/src/apps/my-shares/components/share-info/ShareInfo.tsx","file:///app/packages/projects/lite/src/apps/sign-up/components/hard-gate-banner/HardGateBanner.tsx","file:///app/packages/projects/lite/src/apps/my-shares/components/insights-header/insights-header.scss","file:///app/packages/projects/lite/src/apps/my-shares/components/insights-header/InsightsHeader.tsx","file:///app/packages/projects/lite/src/apps/my-shares/utils/InsightsAppLinkUtils.ts","file:///app/packages/projects/lite/src/apps/sign-up/components/soft-gate-banner/SoftGateBanner.tsx","file:///app/packages/libs/shared/src/components/pill-tab-selector/pill-tab-selector.scss"],"sourcesContent":["import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { classNames } from 'libs/common/react/utils/ClassNameHelper';\n\nimport { IconCircle } from 'libs/shared/components/icon-circle/IconCircle';\nimport { SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { SharePrivacy } from '../../enums/SharePrivacy';\nimport { ShareType } from '../../enums/ShareType';\n\nconst namespace = 'sharev2.shareAvatar';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst icons = {\n [ShareType.Open]: cvSvgLibrary.Classrooms,\n [ShareType.Link]: cvSvgLibrary.Link,\n [ShareType.Classroom]: cvSvgLibrary.Classrooms,\n [ShareType.Live]: cvSvgLibrary.Play,\n [ShareType.LegacyDirect]: cvSvgLibrary.Share\n};\n\nconst iconColours = {\n [ShareType.Open]: 'blue',\n [ShareType.Link]: 'black',\n [ShareType.Classroom]: 'purple',\n [ShareType.Live]: 'purple',\n [ShareType.LegacyDirect]: 'indigo'\n};\n\nconst shareTypeTitlePhraseMap = {\n [ShareType.Open]: 'openShareType',\n [ShareType.Link]: 'linkShareType',\n [ShareType.Classroom]: 'classroomShareType',\n [ShareType.Live]: 'liveShareType',\n [ShareType.LegacyDirect]: 'legacyDirectShareType'\n};\n\nfunction getTitle({ type, classroomName, additionalTitleText, openClassroomName }: ShareAvatarProps) {\n if (type === ShareType.Open && openClassroomName)\n return openClassroomName;\n \n if (type === ShareType.Classroom && classroomName)\n return classroomName;\n\n let title = getPhrase(shareTypeTitlePhraseMap[type]);\n\n if (additionalTitleText)\n title += ' ' + additionalTitleText;\n\n return title;\n}\n\nfunction getClassroomSubtitle(classroomGroupCount: number, studentCount: number): string {\n if (classroomGroupCount && studentCount)\n return `${getPhrase('classroomGroupCount', { smartCount: classroomGroupCount })}, ${getPhrase('studentSubTitle', { smartCount: studentCount })}`;\n\n if (classroomGroupCount)\n return getPhrase('groupSubTitle', { smartCount: classroomGroupCount });\n\n if (studentCount)\n return getPhrase('studentSubTitle', { smartCount: studentCount });\n\n return getPhrase('allStudentsSubTitle');\n}\n\nfunction getLinkSubtitle(privacy: SharePrivacy) {\n if ([ SharePrivacy.JustMySchool, SharePrivacy.Protected ].includes(privacy))\n return getPhrase('respectRatingsSubTitle');\n\n if (privacy === SharePrivacy.JustMySchoolOverrideRestriction)\n return getPhrase('anyoneInSchoolSubTitle');\n\n if (privacy === SharePrivacy.ProtectedOverrideRestriction)\n return getPhrase('anyoneSignedInSubTitle');\n\n if (privacy === SharePrivacy.Public)\n return getPhrase('anyoneWithLinkSubTitle');\n\n if (privacy === SharePrivacy.PinCode)\n return getPhrase('anyoneWithPinSubTitle');\n}\n\nfunction getSubtitle({ type, privacy, studentCount = 0, classroomGroupCount = 0 }: ShareAvatarProps) {\n switch (type) {\n case ShareType.Classroom:\n return getClassroomSubtitle(classroomGroupCount, studentCount);\n\n case ShareType.Open:\n return getPhrase('openShareTypeSubTitle');\n\n case ShareType.Link:\n return getLinkSubtitle(privacy);\n \n case ShareType.Live:\n return getPhrase('liveShareTypeSubTitle');\n\n case ShareType.LegacyDirect:\n return getPhrase('legacyDirectTypeSubTitle');\n\n default:\n return getPhrase('publicShareTypeSubTitle');\n }\n}\n\ninterface ShareAvatarProps {\n type: ShareType;\n privacy: SharePrivacy;\n studentCount?: number;\n classroomGroupCount?: number;\n classroomName?: string;\n openClassroomName?: string;\n hideSubtitle?: boolean;\n subtitleText?: string;\n svgSize?: SvgContainerSize;\n additionalTitleText?: string;\n className?: string;\n titleClassName?: string;\n showIconCircle?: boolean;\n}\n\nexport function ShareAvatar(props: ShareAvatarProps): JSX.Element {\n const title = getTitle(props);\n return (\n <div className={classNames('d-flex align-items-center gap-2', props.className)}>\n <div>\n <IconCircle\n svgName={icons[props.type]}\n variant={iconColours[props.type]}\n textVariant={'white'}\n svgWrapperClassName='p-1'\n svgSize={props.svgSize ?? SvgContainerSize.Standard}\n />\n </div>\n <div className='d-flex flex-column'>\n <p className={classNames('m-0', props.titleClassName)} title={title}>{title}</p>\n {!props.hideSubtitle && <span className='text-secondary'>{props.subtitleText ?? getSubtitle(props)}</span>}\n </div>\n </div>\n );\n}","export enum SharePrivacy {\n Public = 'Public',\n PinCode = 'PinCode',\n PasswordProtected = 'PasswordProtected',\n ProtectedOverrideRestriction = 'ProtectedOverrideRestriction',\n JustMySchoolOverrideRestriction = 'JustMySchoolOverrideRestriction',\n Protected = 'Protected',\n JustMySchool = 'JustMySchool',\n Direct = 'Direct'\n}","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { SharePrivacy } from 'libs/shared/apps/share-v2/enums/SharePrivacy';\nimport type { SharePrivacyResponse } from 'libs/shared/apps/share-v2/interfaces/SharePrivacyResponse';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { ShareLinkStatus } from 'libs/shared/enums/ShareLinkStatus';\nimport type { BaseObject, YearGroup } from 'libs/shared/interfaces';\nimport { RestrictionHelper } from 'libs/shared/utils/RestrictionHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nconst namespace = 'sharev2.utils';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface GetIconAndTextOptions {\n linkExpireDate: string;\n isPasswordProtected: boolean;\n privacy: SharePrivacy;\n status: ShareLinkStatus;\n entityTypeId: MasterType;\n hasStudentExp: boolean;\n entity: BaseObject;\n yearGroups: YearGroup[];\n}\n\ninterface GetPrivateIconAndTextOptions {\n privacy: SharePrivacy;\n entityTypeId: MasterType;\n hasStudentExp: boolean;\n entity: BaseObject;\n yearGroups: YearGroup[];\n}\n\nexport const ShareLinkHelper = {\n getPrivateIconAndText: (options: GetPrivateIconAndTextOptions) => {\n const { entityTypeId, privacy, hasStudentExp, entity, yearGroups } = options;\n \n if (entityTypeId === MasterType.Topic || entityTypeId === MasterType.Series)\n return { icon: cvSvgLibrary.VisibleOn, text: getPhrase(hasStudentExp ? 'justMySchoolTeachers' : 'justMySchoolDescription') };\n \n /**\n * This is mainly for typescript, privacy will be an array for playlists\n * but that is handled above\n */\n if (Array.isArray(privacy))\n return;\n \n switch (privacy) {\n case SharePrivacy.Public:\n return { icon: cvSvgLibrary.VisibleOn, text: getPhrase('publicDescription') };\n case SharePrivacy.ProtectedOverrideRestriction:\n return { icon: cvSvgLibrary.VisibleOn, text: getPhrase('clickViewOnly') };\n case SharePrivacy.Protected:\n return {\n icon: cvSvgLibrary.Lock,\n text: ShareLinkHelper.getRespectRatingText(entity, yearGroups, hasStudentExp)\n };\n case SharePrivacy.JustMySchoolOverrideRestriction:\n return { icon: cvSvgLibrary.Lock, text: getPhrase(hasStudentExp ? 'justMySchoolTeachers' : 'justMySchoolDescription') };\n case SharePrivacy.JustMySchool:\n return {\n icon: cvSvgLibrary.Lock,\n text: ShareLinkHelper.getRespectRatingText(entity, yearGroups, hasStudentExp)\n };\n case SharePrivacy.PinCode:\n return { icon: cvSvgLibrary.Lock, text: getPhrase('pinDescription') };\n case SharePrivacy.PasswordProtected:\n return { icon: cvSvgLibrary.Lock, text: getPhrase('password') };\n default:\n return {};\n }\n },\n\n getIconAndText: (options: GetIconAndTextOptions) => {\n const { linkExpireDate, isPasswordProtected, status } = options;\n if (!linkExpireDate && !isPasswordProtected)\n return ShareLinkHelper.getPrivateIconAndText(options);\n \n if (!linkExpireDate)\n return { icon: cvSvgLibrary.Lock, text: getPhrase('password') };\n \n const isToday = DateHelper.isToday(linkExpireDate);\n const dayDifference = DateHelper.diffBetween(linkExpireDate, new Date(), 'day');\n \n if (!isPasswordProtected) {\n let text = isToday\n ? getPhrase('expiryToday')\n : getPhrase('expiry', { days: dayDifference });\n \n if (status === ShareLinkStatus.Expired)\n text = getPhrase('expired');\n \n return { icon: cvSvgLibrary.Timer, text };\n }\n \n let text = isToday\n ? getPhrase('passwordExpiryToday')\n : getPhrase('passwordExpiry', { days: dayDifference });\n \n if (status === ShareLinkStatus.Expired)\n text = getPhrase('passwordExpired');\n \n return { icon: cvSvgLibrary.Lock, text };\n },\n\n getRespectRatingText(video: BaseObject, yearGroups: YearGroup[], hasStudentExp: boolean) {\n if (!video || !yearGroups)\n return null;\n \n if (hasStudentExp)\n return getPhrase('justMySchoolTeachers');\n \n if (!VideoHelper.isVideoType(video))\n return getPhrase('collectionRating');\n \n const restriction = RestrictionHelper.getWeightedRestriction(video._restrictions?.value);\n \n /**\n * Restrictions without a year level are teacher restricitons, which means only admins can see it.\n */\n if (restriction && !restriction.yearGroup)\n return getPhrase('onlyAdmins');\n \n const rating = VideoHelper.getRating(video);\n \n let maxYearGroup: YearGroup;\n let minAllowedYearGroup: YearGroup;\n \n for (const yearGroup of yearGroups) {\n /**\n * If our year level is our new highest so far, save it\n */\n if (!maxYearGroup || yearGroup.value > maxYearGroup.value)\n maxYearGroup = yearGroup;\n \n /**\n * If the restriction is higher than this year level, skip it.\n */\n if (restriction && yearGroup.value <= restriction.yearGroup)\n continue;\n \n /**\n * If therating is higher than this year level's rating value, skip it.\n */\n if (rating && yearGroup.rating.value < rating.value)\n continue;\n \n /**\n * If our year level is the new lowest so far, save it\n */\n if (!minAllowedYearGroup || yearGroup.value < minAllowedYearGroup.value)\n minAllowedYearGroup = yearGroup;\n }\n \n /**\n * If no year levels are allowed, then it's staff only.\n */\n if (!minAllowedYearGroup)\n return getPhrase('onlyStaff');\n \n \n /**\n * If there's only one year level, and it's allowed, then we can just\n * say that everyone in your school can access it.\n */\n if (yearGroups.length === 1)\n return getPhrase('clickViewOnly');\n \n /**\n * We differentiate the copy if it's the highest year level or not. \n * Basically if we need to say \"X and above\" or not.\n */\n if (minAllowedYearGroup.value === maxYearGroup.value)\n return getPhrase('maxYearGroup', { yearGroup: maxYearGroup.name });\n \n return getPhrase('yearGroupRange', { yearGroup: minAllowedYearGroup.name });\n },\n\n getShareLinkAccessType(privacy: SharePrivacyResponse): 'private' | 'owner' | 'protected' {\n /**\n * If an entity is not a ClickView content and they cannot manage access\n * settings of the entity (which they can if its their private entity)\n * it means that its a TV content\n */\n if (privacy.isTvContent || privacy.isClickViewContent)\n return 'protected';\n\n if (privacy.canManageAccess)\n return 'owner';\n\n return 'private';\n }\n};","import React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Badge, BadgeType } from 'libs/shared/components/badges/Badge';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\n\nimport { SvgContainer } from '../svg-container/SvgContainer';\n\nimport styles from './pill-tab-selector.scss';\n\ninterface TabContentsProps {\n tab: PillTab;\n}\n\nfunction TabContents(props: TabContentsProps): JSX.Element {\n return (\n <>\n {!!props.tab.svgName && (\n <div className={props.tab.name ? 'pe-1' : ''}>\n <SvgContainer svgName={props.tab.svgName} />\n </div>\n )}\n\n {props.tab.name}\n\n {typeof (props.tab.count) === 'number' && (\n <div className='ps-2'>\n <Badge type={BadgeType.Count} data={props.tab.count} />\n </div>\n )}\n </>\n );\n}\n\nexport interface PillTab {\n name: string;\n active: boolean;\n svgName?: string;\n\n className?: string;\n\n appLink?: Core.AppLink;\n onSelect?: () => void;\n\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n\n count?: number;\n}\n\ninterface PillTabSelectorProps {\n tabs: PillTab[];\n containerRef?: (el: HTMLElement) => void;\n listClassName?: string;\n className?: string;\n borderRadius?: 'sm' | 'lg'\n}\n\nPillTabSelector.defaultProps = {\n borderRadius: 'lg'\n};\n\nexport function PillTabSelector(props: PillTabSelectorProps): JSX.Element {\n function onSelectTab(tab: PillTab): void {\n if (tab.active || !tab.onSelect)\n return;\n\n tab.onSelect();\n\n if (tab.analyticsData && tab.analyticsOptions)\n AnalyticsHelper.logUserAction(tab.analyticsData, tab.analyticsOptions);\n }\n\n return (\n <nav className={props.className ?? ''} ref={props.containerRef}>\n <ul className={`\n list-unstyled d-inline-block m-0 ${styles.pillTabSelector}\n ${props.borderRadius ? styles.radiusSmall : ''}\n ${props.listClassName}\n `}>\n {props.tabs.map((tab, index) => {\n return (\n <li\n className={`\n p-0 ${styles.tab} ${tab.active ? 'btn btn-dark' : 'btn btn-outline-dark'}\n ${tab.name ? styles.minWidth : ''} ${tab.className}\n `}\n key={index}\n >\n {tab.appLink ? (\n <AppLink\n appLink={tab.appLink}\n analyticsData={tab.analyticsData}\n analyticsOptions={tab.analyticsOptions}\n className={`\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ${styles.tabLink}\n `}\n >\n <TabContents tab={tab} />\n </AppLink>\n ) : (\n <DivButton\n className={`\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ${styles.tabLink}\n `}\n onClick={() => onSelectTab(tab)}\n >\n <TabContents tab={tab} />\n </DivButton>\n )}\n </li>\n );\n })}\n </ul>\n </nav>\n );\n}\n","import React from 'react';\n\nimport { LayoutHelper } from 'libs/shared/utils/LayoutHelper';\n\nexport function useLockContentWidth(): void {\n React.useEffect(() => {\n LayoutHelper.lockContentWidth();\n return () => LayoutHelper.unlockContentWidth();\n }, []);\n}","import React from 'react';\n\nimport { StorageType } from 'libs/common/backbone/utils/LocalStorageHelper';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { useViewModel } from 'libs/common/react/hooks/UseViewModel';\n\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { VideoTypes } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { ViewModelKeys } from 'shared/constants/LiteViewModels';\n\nconst namespace = 'lite.insightsAdminAlert';\n\ninterface InsightsAdminAlertProps {\n hasAnalytics: boolean;\n analyticsUrl: string;\n video?: VideoTypes;\n}\n\n// eslint-disable-next-line rulesdir/require-view-title\nexport function InsightsAdminAlert(props: InsightsAdminAlertProps) {\n const [ show, setShow ] = useViewModel(\n ViewModelKeys.INSIGHTS_ADMIN_ALERT,\n true,\n { storage: StorageType.LocalStorage }\n );\n\n function onDismiss() {\n setShow(false);\n }\n\n function getAnalyticsUrl() {\n if (!props.video) return props.analyticsUrl;\n\n let videoRoute = '';\n\n if (props.video.typeId === MasterType.Interactive)\n videoRoute = `/interactives/${props.video.id}/views`;\n\n if (props.video.typeId === MasterType.Video)\n videoRoute = `/videos/${props.video.id}/views`;\n\n if (props.video.typeId === MasterType.Clip)\n videoRoute = `/clips/${props.video.id}/views`;\n\n return UrlHelper.safeUrlConcat(props.analyticsUrl, videoRoute);\n }\n\n if (!props.hasAnalytics || !show)\n return <></>;\n\n return (\n <div role='alert' className='d-flex justify-content-between align-items-center bg-light-blue rounded p-2 mb-4'>\n <div>\n <Text namespace={namespace} phrase='adminAlert' />\n <a className='text-info' href={getAnalyticsUrl()} target='_blank'>\n <Text namespace={namespace} phrase='analytics' />\n </a>.\n </div>\n <IconButton svgName={cvSvgLibrary.Close} className='text-blue' onClick={onDismiss} />\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"shareAvatar\":\"dW1Zw\",\"shareAvatarTitle\":\"WfiUS\"};","import React from 'react';\n\nimport { classNames } from 'libs/common/react/utils/ClassNameHelper';\n\nimport { ShareAvatar } from 'libs/shared/apps/share-v2/components/share-avatar/ShareAvatar';\nimport { ShareStatusIndicator } from 'libs/shared/apps/share-v2/components/share-status-indicator/ShareStatusIndicator';\nimport { Share } from 'libs/shared/apps/share-v2/interfaces/Share';\nimport { ShareHelper } from 'libs/shared/apps/share-v2/utils/ShareHelper';\nimport { ShareLinkHelper } from 'libs/shared/apps/share-v2/utils/ShareLinkHelper';\nimport { SharableEntity } from 'libs/shared/apps/share-v2/utils/ShareViewHelper';\nimport { SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { BaseObject, YearGroup } from 'libs/shared/interfaces';\n\nimport styles from './share-info.scss';\n\ninterface ShareInfoProps {\n sharedObject: SharableEntity;\n share: Share;\n entity: BaseObject;\n yearGroups: YearGroup[];\n className?: string;\n classroomName?: string;\n markingRequired?: boolean;\n hasData: boolean;\n}\n\nexport function ShareInfo(props: ShareInfoProps): JSX.Element {\n if (!props.sharedObject)\n return <></>;\n\n const hasExpired = ShareHelper.hasShareExpired(props.share);\n const { text: privacyText } = ShareLinkHelper.getPrivateIconAndText({\n privacy: props.share.privacy,\n entityTypeId: props.sharedObject.typeId,\n hasStudentExp: false,\n entity: props.entity,\n yearGroups: props.yearGroups\n });\n\n return (\n <div className={classNames('d-flex flex-row align-items-center gap-1', props.className)}>\n <ShareStatusIndicator\n share={props.share}\n markingRequired={props.markingRequired}\n className='cursor-default'\n hasData={props.hasData}\n />\n <ShareAvatar\n className={classNames('ps-2 me-1', styles.shareAvatar)}\n titleClassName={classNames('text-truncate', styles.shareAvatarTitle)}\n privacy={props.share.privacy}\n type={props.share.type}\n classroomName={props.classroomName}\n openClassroomName={props.share.options?.openClassroomName}\n hideSubtitle\n svgSize={SvgContainerSize.Small}\n />\n {!hasExpired && !!privacyText &&\n <div className='d-flex align-items-center gap-2'>\n <span className='d-inline-block'>•</span>\n <p className='mb-0'>{privacyText}</p>\n </div>\n }\n </div>\n );\n}","import React from 'react';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Text } from 'libs/shared/components/text/Text';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nconst namespace = 'signUp.hardGateBanner';\n\nexport function HardGateBanner(): JSX.Element {\n return (\n <div role='alert' className='bg-light-indigo text-indigo rounded p-3 mb-4'>\n <Text namespace={namespace} phrase='hardGate' /> \n <AppLink\n appLink={{\n application: AppChannels.SIGN_UP,\n action: Actions.SignUp.INVITE_COLLEAGUE\n }}\n className='indigo-link text-underline d-inline'\n >\n <Text namespace={namespace} phrase='hardGateCta' />\n </AppLink>\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"withDivider\":\"ZSzT3\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { StorageType } from 'libs/common/backbone/utils/LocalStorageHelper';\nimport { useViewModel } from 'libs/common/react/hooks/UseViewModel';\nimport { classNames } from 'libs/common/react/utils/ClassNameHelper';\n\nimport { DateRangeQueryParams } from 'libs/shared/apps/analytics/interfaces/DateRangeQueryParams';\nimport { ShareType } from 'libs/shared/apps/share-v2/enums/ShareType';\nimport { Share } from 'libs/shared/apps/share-v2/interfaces/Share';\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { ActionsDropdown } from 'libs/shared/components/actions/ActionsDropdown';\nimport { Breadcrumb, Breadcrumbs, PartialBreadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\nimport { PillTab, PillTabSelector } from 'libs/shared/components/pill-tab-selector/PillTabSelector';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { ToggleSwitch } from 'libs/shared/components/toggle-switch/ToggleSwitch';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { SharedViewModelKeys } from 'libs/shared/constants/SharedViewModelKeys';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { GatedPermission, PermissionName } from 'libs/shared/enums/PermissionName';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { Classroom, VideoTypes, YearGroup } from 'libs/shared/interfaces';\nimport { AnalyticsRouteHelper } from 'libs/shared/utils/AnalyticsRouteHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { ViewModelKeys } from 'shared/constants/LiteViewModels';\nimport { usePluginHelper } from 'shared/hooks/use-plugin-helper/usePluginHelper';\nimport { useClassroomExperience } from 'shared/hooks/useClassroomExperience';\nimport { getEditShareAppLink, getShareOptionsAppLink } from 'shared/utils/ObjectAppLinkHelper';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\n\nimport { InsightsAdminAlert } from 'apps/my-shares/components/insights-admin-alert/InsightsAdminAlert';\nimport { ShareInfo } from 'apps/my-shares/components/share-info/ShareInfo';\nimport { getShareObjectActions } from 'apps/my-shares/views/my-shares/MySharesViewUtils';\nimport { HardGateBanner } from 'apps/sign-up/components/hard-gate-banner/HardGateBanner';\nimport { SoftGateBanner } from 'apps/sign-up/components/soft-gate-banner/SoftGateBanner';\n\nimport styles from './insights-header.scss';\n\nconst namespace = 'insights.header';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface AnonymiseNamesToggleProps {\n anonymiseUsers: boolean;\n toggleAnonymiseUsers: () => void;\n}\n\nfunction AnonymiseNamesToggle(props: AnonymiseNamesToggleProps) {\n return (\n <div>\n <label htmlFor='anonymiseNames' className='mb-0 pe-3'><Text namespace={namespace} phrase='anonymiseNames' /></label>\n <ToggleSwitch id='anonymiseNames' on={props.anonymiseUsers} onClick={props.toggleAnonymiseUsers} />\n </div>\n );\n}\n\nfunction HideStaffToggle(): JSX.Element {\n const [ hideStaffResults, setHideStaffResults ] = useViewModel<boolean>(ViewModelKeys.HIDE_STAFF_RESULTS, false);\n\n return (\n <span\n onClick={event => {\n event.stopPropagation();\n setHideStaffResults(!hideStaffResults);\n }}\n >\n <SvgContainer svgName={cvSvgLibrary.Staff} className='d-inline-block svg-container me-2 align-middle' />\n <span className='d-inline-block align-middle'>\n <span className='me-3'>\n {getPhrase('hideStaff')}\n </span>\n <ToggleSwitch on={hideStaffResults} onClick={() => {}} />\n </span>\n </span>\n );\n}\n\ninterface DemoTooltipProps extends React.PropsWithChildren {\n isDemo: boolean;\n}\n\nfunction DemoTooltip(props: DemoTooltipProps) {\n return (\n <Tooltip\n id='audienceFilter'\n title={getPhrase('demoOnly')}\n spanHack={props.isDemo}\n >\n <div className={props.isDemo ? 'pointer-events-none' : ''}>\n {props.children}\n </div>\n </Tooltip>\n );\n}\n\ninterface InsightsHeaderProps {\n video: VideoTypes;\n hasClassrooms?: boolean;\n dateRangeAppLinkParams?: DateRangeQueryParams;\n tabs: PillTab[]\n isDemo?: boolean;\n analyticsWebUrl?: string;\n hasAnalytics?: boolean;\n share: Share;\n yearGroups: YearGroup[];\n classroom?: Classroom;\n markingRequired?: boolean;\n hasData: boolean;\n viewInsightsGatedPermission?: GatedPermission;\n}\n\nexport function InsightsHeader(props: InsightsHeaderProps) {\n const [ anonymiseUsers, setAnonymiseUsers ] = useViewModel<boolean>(\n SharedViewModelKeys.ANONYMISE_USERS,\n false,\n { storage: StorageType.LocalStorage }\n );\n\n const { isPlugin } = usePluginHelper();\n const { hasPermissions } = usePermissions();\n const { experience } = useClassroomExperience();\n\n const canViewSchoolAnalytics =\n hasPermissions(PermissionName.ViewAnalyticsProduct) &&\n hasPermissions(PermissionName.ViewCustomerAnalytics);\n\n const shareOptionsAppLink = getShareOptionsAppLink(props.share);\n const editShareAppLink = getEditShareAppLink(props.share, 'insights');\n\n function getRootBreadcrumb(): Breadcrumb {\n let breadcrumb: Breadcrumb;\n\n if (props.share.type === ShareType.Classroom) {\n breadcrumb = {\n name: getPhrase('classrooms'),\n appLink: {\n application: AppChannels.CLASSROOMS,\n action: Actions.Classrooms.HOME\n }\n };\n } else if (props.share.type === ShareType.Open) {\n breadcrumb = {\n name: getPhrase('openClassrooms'),\n appLink: {\n application: AppChannels.CLASSROOMS,\n action: Actions.Classrooms.OPEN_CLASSROOMS\n }\n };\n } else {\n breadcrumb = {\n name: getPhrase('shares'),\n appLink: {\n application: AppChannels.MY_SHARES,\n action: Actions.MyShares.HOME\n }\n };\n }\n\n if (experience === 'minimal') {\n breadcrumb = {\n ...breadcrumb,\n appLink: {\n application: AppChannels.CLASSROOMS,\n action: Actions.Classrooms.HOME\n }\n };\n }\n\n return breadcrumb;\n }\n\n function getBreadcrumbs(): Breadcrumb[] {\n if (!props.video || !props.share) return [];\n\n const breadcrumbs: Breadcrumb[] = [getRootBreadcrumb()];\n\n if (\n props.share.type === ShareType.Classroom &&\n props.classroom\n ) {\n breadcrumbs.push({\n name: props.classroom.name,\n appLink: {\n application: AppChannels.CLASSROOMS,\n action: Actions.Classrooms.CLASSROOM_HOME,\n args: [props.classroom.id]\n }\n });\n }\n\n breadcrumbs.push({\n name: props.video.name,\n active: true\n });\n\n return breadcrumbs;\n }\n\n function getActions() {\n const actions: ActionOptions[] = [];\n\n if (props.video?.typeId === MasterType.Interactive) {\n actions.push({\n label: () => <HideStaffToggle />\n });\n\n actions.push({\n label: getPhrase('generateReport'),\n svgName: cvSvgLibrary.Print,\n appLink: {\n application: AppChannels.MY_SHARES,\n action: Actions.MyShares.INTERACTIVE_GENERATE_REPORT,\n args: [props.video.id]\n }\n });\n }\n\n if (canViewSchoolAnalytics) {\n actions.push({\n label: getPhrase('viewInAnalytics'),\n svgName: cvSvgLibrary.Analytics,\n href: AnalyticsRouteHelper.getObjectUrl(props.analyticsWebUrl, props.video, true),\n openInNewTab: true\n });\n }\n\n return [ ...actions, ...getShareObjectActions({\n share: props.share,\n sharedObject: props.video,\n isPlugin,\n hideShareOptionsActions: true\n }) ];\n }\n\n function getVideoEntityPhrase() {\n if (props.video.typeId === MasterType.Interactive) return 'viewInteractive';\n if (props.video.typeId === MasterType.Clip) return 'viewClip';\n\n return 'viewVideo';\n }\n \n return (\n <div>\n {props.viewInsightsGatedPermission === 'soft-gate' && <SoftGateBanner />}\n {props.viewInsightsGatedPermission === 'hard-gate' && <HardGateBanner />}\n\n {(props.viewInsightsGatedPermission !== 'soft-gate' && props.viewInsightsGatedPermission !== 'hard-gate') && (\n <InsightsAdminAlert\n analyticsUrl={props.analyticsWebUrl}\n hasAnalytics={props.hasAnalytics}\n video={props.video}\n />\n )}\n \n <section className='mb-4'>\n <div className='d-flex justify-content-between mb-3'>\n <div className='me-2'>\n {props.video && (\n <>\n <h1 className='mb-0 d-inline me-2'>{props.video.name}</h1>\n {!props.isDemo &&\n <Tooltip title={getPhrase(getVideoEntityPhrase())} type='text' spanHack spanHackClassName='d-inline-block align-text-bottom'>\n <IconButton\n svgName={cvSvgLibrary.NewWindow}\n appLink={VideoAppLinkHelper.getAppLink(props.video)}\n svgSize={SvgContainerSize.Large}\n className='d-inline-block'\n customSize\n />\n </Tooltip>\n }\n </>\n )}\n {!props.video && <h1 className='partial-loading-background' style={{ width: '20rem' }}> </h1>}\n </div>\n \n <div className='d-flex gap-2'>\n {!isPlugin && shareOptionsAppLink &&\n <DemoTooltip isDemo={props.isDemo}>\n <IconButton svgName={cvSvgLibrary.Share} className='btn btn-outline-dark' appLink={shareOptionsAppLink}>\n <Text namespace={namespace} phrase={props.share.type === ShareType.Link ? 'share' : 'shareOptions'} />\n </IconButton>\n </DemoTooltip>\n }\n {!isPlugin && editShareAppLink && props.video?.typeId === MasterType.Interactive &&\n <DemoTooltip isDemo={props.isDemo}>\n <IconButton svgName={cvSvgLibrary.Edit} className='btn btn-outline-dark' appLink={editShareAppLink}>\n <Text namespace={namespace} phrase='editSettings' />\n </IconButton>\n </DemoTooltip>\n }\n <DemoTooltip isDemo={props.isDemo}>\n <ActionsDropdown\n dropdownToggleClassName='btn btn-outline-dark'\n actions={getActions()}\n />\n </DemoTooltip>\n </div>\n </div>\n \n <div className='d-flex justify-content-between mb-3'>\n {props.video\n ? <Breadcrumbs breadcrumbs={getBreadcrumbs()} />\n : <PartialBreadcrumbs />\n }\n </div>\n <div className={classNames('d-flex flex-row align-items-center mb-3', styles.withDivider)}>\n <ShareInfo\n sharedObject={props.video}\n share={props.share}\n entity={props.video}\n yearGroups={props.yearGroups}\n classroomName={props.classroom?.name}\n markingRequired={props.markingRequired}\n hasData={props.hasData}\n />\n </div>\n <div className='d-flex align-items-center justify-content-between mb-4'>\n {props.viewInsightsGatedPermission !== 'hard-gate' && <PillTabSelector tabs={props.tabs} />}\n <div>\n {props.hasData && (\n <AnonymiseNamesToggle\n anonymiseUsers={anonymiseUsers}\n toggleAnonymiseUsers={() => setAnonymiseUsers(!anonymiseUsers)}\n />\n )}\n </div>\n </div>\n </section>\n </div>\n );\n}","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { ShareType } from 'libs/shared/apps/share-v2/enums/ShareType';\nimport { Share } from 'libs/shared/apps/share-v2/interfaces/Share';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { getInsightsHeatmapAppLink, getInsightsOverviewAppLink, getInsightsQuestionsAppLink, getInsightsStudentsAppLink } from 'shared/utils/ObjectAppLinkHelper';\n\nconst namespace = 'shared.insightsUtils';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport type InsightsTabs = 'insights' | 'heatmap' | 'results' | 'questions';\n\nexport function getInsightsVideoTabs(share: Share, active: InsightsTabs, params?: HashObject) {\n return [\n {\n name: getPhrase('insights'),\n active: active === 'insights',\n appLink: getInsightsOverviewAppLink(share, params)\n },\n {\n name: getPhrase('heatmap'),\n active: active === 'heatmap',\n appLink: getInsightsHeatmapAppLink(share, params)\n }\n ];\n}\n\nexport function getInsightsInteractiveTabs(share: Share, active: InsightsTabs) {\n return [\n {\n name: getPhrase('insights'),\n active: active === 'insights',\n appLink: getInsightsOverviewAppLink(share)\n },\n {\n name: getPhrase('results'),\n active: active === 'results',\n appLink: getInsightsStudentsAppLink(share)\n },\n {\n name: getPhrase('questions'),\n active: active === 'questions',\n appLink: getInsightsQuestionsAppLink(share)\n },\n {\n name: getPhrase('heatmap'),\n active: active === 'heatmap',\n appLink: getInsightsHeatmapAppLink(share)\n }\n ];\n}\n\nexport function getInsightsDemoInteractiveTabs(id: string, active: InsightsTabs, params: HashObject, type?: ShareType) {\n if (type === ShareType.Open) {\n return [\n {\n name: getPhrase('insights'),\n active: active === 'insights',\n appLink: {\n application: AppChannels.MY_SHARES,\n action: Actions.MyShares.INTERACTIVE_OVERVIEW_OPEN_CLASSROOM_DEMO,\n args: [id],\n params\n }\n },\n {\n name: getPhrase('results'),\n active: active === 'results',\n appLink: {\n application: AppChannels.MY_SHARES,\n action: Actions.MyShares.INTERACTIVE_STUDENTS_OPEN_CLASSROOM_DEMO,\n args: [id],\n params\n }\n },\n {\n name: getPhrase('questions'),\n active: active === 'questions',\n appLink: {\n application: AppChannels.MY_SHARES,\n action: Actions.MyShares.INTERACTIVE_QUESTIONS_OPEN_CLASSROOM_DEMO,\n args: [id],\n params\n }\n },\n {\n name: getPhrase('heatmap'),\n active: active === 'heatmap',\n appLink: {\n application: AppChannels.MY_SHARES,\n action: Actions.MyShares.INTERACTIVE_HEATMAP_OPEN_CLASSROOM_DEMO,\n args: [id],\n params\n }\n }\n ];\n }\n\n return [\n {\n name: getPhrase('insights'),\n active: active === 'insights',\n appLink: {\n application: AppChannels.MY_SHARES,\n action: Actions.MyShares.INTERACTIVE_OVERVIEW_DEMO,\n args: [id],\n params\n }\n },\n {\n name: getPhrase('results'),\n active: active === 'results',\n appLink: {\n application: AppChannels.MY_SHARES,\n action: Actions.MyShares.INTERACTIVE_STUDENTS_DEMO,\n args: [id],\n params\n }\n },\n {\n name: getPhrase('questions'),\n active: active === 'questions',\n appLink: {\n application: AppChannels.MY_SHARES,\n action: Actions.MyShares.INTERACTIVE_QUESTIONS_DEMO,\n args: [id],\n params\n }\n },\n {\n name: getPhrase('heatmap'),\n active: active === 'heatmap',\n appLink: {\n application: AppChannels.MY_SHARES,\n action: Actions.MyShares.INTERACTIVE_HEATMAP_DEMO,\n args: [id],\n params\n }\n }\n ];\n}","import React from 'react';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nconst namespace = 'signUp.softGateBanner';\n\nexport function SoftGateBanner(): JSX.Element {\n return (\n <div role='alert' className='bg-light-indigo text-indigo rounded p-2 mb-4 d-flex align-items-center'>\n <SvgContainer svgName={cvSvgLibrary.StarOutline} size={SvgContainerSize.Large} />\n <Text namespace={namespace} phrase='softGate' /> \n <AppLink\n appLink={{\n application: AppChannels.SIGN_UP,\n action: Actions.SignUp.PREMIUM_FEATURES\n }}\n className='indigo-link text-indigo text-underline d-inline'\n >\n <Text namespace={namespace} phrase='learnMore' />\n </AppLink>\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"pillTabSelector\":\"Hdi6o\",\"tab\":\"RvNxr\",\"minWidth\":\"GHSz9\",\"radiusSmall\":\"VhJJa\",\"tabLink\":\"WFyvo\"};"],"names":["getPhrase","icons","iconColours","shareTypeTitlePhraseMap","ShareAvatar","props","title","type","classroomName","additionalTitleText","openClassroomName","getTitle","className","svgName","variant","textVariant","svgWrapperClassName","svgSize","S","titleClassName","hideSubtitle","subtitleText","privacy","studentCount","classroomGroupCount","smartCount","getClassroomSubtitle","includes","getLinkSubtitle","getSubtitle","SharePrivacy","ShareLinkHelper","getPrivateIconAndText","options","entityTypeId","hasStudentExp","entity","yearGroups","icon","text","Array","isArray","getRespectRatingText","getIconAndText","linkExpireDate","isPasswordProtected","status","isToday","dayDifference","Date","days","video","restriction","_restrictions","value","yearGroup","maxYearGroup","minAllowedYearGroup","rating","length","name","getShareLinkAccessType","isTvContent","isClickViewContent","canManageAccess","TabContents","tab","count","data","PillTabSelector","ref","containerRef","borderRadius","listClassName","tabs","map","index","active","key","appLink","analyticsData","analyticsOptions","onClick","onSelect","onSelectTab","defaultProps","useLockContentWidth","namespace","InsightsAdminAlert","storage","show","setShow","hasAnalytics","role","phrase","href","analyticsUrl","videoRoute","typeId","id","getAnalyticsUrl","target","ShareInfo","sharedObject","hasExpired","ShareHelper","share","privacyText","ShareStatusIndicator","markingRequired","hasData","SvgContainer","HardGateBanner","Text","AppLink","application","action","LanguageService","AnonymiseNamesToggle","htmlFor","ToggleSwitch","on","anonymiseUsers","toggleAnonymiseUsers","HideStaffToggle","hideStaffResults","setHideStaffResults","event","stopPropagation","DemoTooltip","Tooltip","spanHack","isDemo","children","InsightsHeader","SharedViewModelKeys","setAnonymiseUsers","isPlugin","usePluginHelper","hasPermissions","usePermissions","experience","useClassroomExperience","canViewSchoolAnalytics","PermissionName","shareOptionsAppLink","editShareAppLink","viewInsightsGatedPermission","SoftGateBanner","analyticsWebUrl","MasterType","spanHackClassName","IconButton","VideoAppLinkHelper","customSize","style","width","ShareType","ActionsDropdown","dropdownToggleClassName","actions","push","label","args","AnalyticsRouteHelper","openInNewTab","hideShareOptionsActions","getActions","Breadcrumbs","breadcrumbs","breadcrumb","classroom","getBreadcrumbs","getInsightsVideoTabs","params","getInsightsInteractiveTabs","getInsightsDemoInteractiveTabs","size"],"sourceRoot":""}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
/*! For license information please see 7604-f664281904-lite.chunk.js.LICENSE.txt */
|
|
2
|
-
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[7604,3105],{51182:(e,t,n)=>{n.d(t,{l:()=>r.l});var r=n(72632)},29923:(e,t,n)=>{n.d(t,{F:()=>s});var r=n(32735),a=n(23481),o=n(89965),i=n(13876);function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var c=a.T.encloseNamespace("sharev2.deleteShareContent");function s(e){var t,n,a,s=(n=r.useState(!1),a=2,function(e){if(Array.isArray(e))return e}(n)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,o,i,l=[],c=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=o.call(n)).done)&&(l.push(r.value),l.length!==t);c=!0);}catch(e){s=!0,a=e}finally{try{if(!c&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(s)throw a}}return l}}(n,a)||function(e,t){if(e){if("string"==typeof e)return l(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?l(e,t):void 0}}(n,a)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),u=s[0],p=s[1];return r.createElement("div",{className:"d-flex flex-column gap-3"},r.createElement("p",{className:"m-0"},e.phrases.leadingSentence),r.createElement("ul",{className:"m-0"},e.phrases.bulletPoints.map(function(e,t){return r.createElement("li",{key:t},e)})),r.createElement(o.X,{id:"ack",checked:u,onChange:function(e){return p(e.target.checked)},label:e.phrases.acknowledgement}),r.createElement(i.u,null,e.onBack&&r.createElement(i.u.Cancel,{onClick:e.onBack,text:null!==(t=e.phrases.backButton)&&void 0!==t?t:c("backButton"),variant:"link"}),r.createElement(i.u.Submit,{onClick:function(){u&&!e.loading&&e.onDelete()},text:e.phrases.deleteButton,variant:"danger",disabled:!u||e.loading,showSpinner:e.loading})))}},25752:(e,t,n)=>{n.d(t,{q:()=>p});var r=n(32735),a=n(33518),o=n(8233),i=n(83914),l=n(35223),c=n(31138);const s={active:"NV2KW"};function u(e){var t=e.activePrivacy===e.sharePrivacy;return r.createElement("li",null,r.createElement("button",{className:"".concat(t?s.active:""," dropdown-item d-flex align-items-center justify-content-between py-2"),onClick:function(){t||e.onClick(e.sharePrivacy)}},r.createElement("div",{className:"me-4"},r.createElement("p",{className:"font-label mb-1"},e.title),r.createElement("p",{className:"font-size-sm mb-0"},e.description)),t&&r.createElement(i.x,{svgName:l.vn.Check})))}function p(e){var t=e.shareOverrideRestrictions&&!e.hasStudentExp,n=(0,c.f)({entity:e.entity,entityPrivacy:e.entityPrivacy,hasStudentExp:e.hasStudentExp,yearGroups:e.yearGroups,_showPasswordProtected:e.sharePrivacy===a.e.PasswordProtected}),l=o.R.getPrivateIconAndText({privacy:e.sharePrivacy,entityTypeId:e.entityTypeId,hasStudentExp:e.hasStudentExp,entity:e.entity,yearGroups:e.yearGroups}),s=l.icon,p=l.text;return t?r.createElement("div",{className:"btn-group"},r.createElement("button",{className:"btn border-0 info-link dropdown-toggle p-1 bg-light-blue-hover","data-bs-toggle":"dropdown"},r.createElement(i.x,{svgName:s,className:"svg-container me-1"}),r.createElement("span",{className:"me-1"},p)),r.createElement("ul",{className:"dropdown-menu cursor-pointer"},Object.values(a.e).map(function(t){var a=n[t],o=a.title,i=a.description;if((0,a.predicate)())return r.createElement(u,{key:t,sharePrivacy:t,activePrivacy:e.sharePrivacy,title:o,description:i,onClick:e.onClickSavePrivacy})}))):r.createElement("div",{className:"d-flex align-items-center"},r.createElement(i.x,{svgName:s,className:"svg-container me-1"}),r.createElement("span",null,p))}},31138:(e,t,n)=>{n.d(t,{B:()=>d,f:()=>p});var r=n(23481),a=n(75896),o=n(33518),i=n(8233);function l(e){return l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},l(e)}function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function s(e,t,n){return(t=function(e){var t=function(e){if("object"!=l(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=l(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==l(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var u=r.T.encloseNamespace("sharev2.getSharePrivacyConfig");function p(e){var t=i.R.getShareLinkAccessType(e.entityPrivacy),n=i.R.getRespectRatingText(e.entity,e.yearGroups,e.hasStudentExp);return s(s(s(s(s(s(s(s({},o.e.JustMySchool,{title:u("respectRatings"),description:n,predicate:function(){return"protected"!==t}}),o.e.Protected,{title:u("respectRatings"),description:n,predicate:function(){return"protected"===t}}),o.e.JustMySchoolOverrideRestriction,{title:u("justMySchool"),description:u("justMySchoolDescription"),predicate:function(){return"protected"!==t}}),o.e.ProtectedOverrideRestriction,{title:u("justMySchool"),description:u("clickViewOnly"),predicate:function(){return"protected"===t}}),o.e.Public,{title:u("public"),description:u("publicDescription"),predicate:function(){return"owner"===t}}),o.e.Direct,{title:"",description:"",predicate:function(){return!1}}),o.e.PasswordProtected,{title:u("passwordProtectedTitle"),description:u("passwordProtectedDescription"),predicate:function(){return e._showPasswordProtected}}),o.e.PinCode,{title:u("pinCode"),description:u("pinCodeDescription"),predicate:function(){return!1}})}function d(e){var t=p(e),n=Object.entries(t).filter(function(e){return(t=e,n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,o,i,l=[],c=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=o.call(n)).done)&&(l.push(r.value),l.length!==t);c=!0);}catch(e){s=!0,a=e}finally{try{if(!c&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(s)throw a}}return l}}(t,n)||function(e,t){if(e){if("string"==typeof e)return c(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?c(e,t):void 0}}(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.")}())[1].predicate();var t,n});if(n.length)return a.m.first(n)[0]}},89701:(e,t,n)=>{n.r(t),n.d(t,{DeleteShareLinkConfirmationView:()=>f});var r=n(32735),a=n(6044),o=n(23481),i=n(65858),l=n(29923),c=n(93563),s=n(87265),u=n(31121),p=n(9111),d=n(69883);function m(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 y=o.T.encloseNamespace("sharev2.deleteShareLinkConfirmation");function f(e){var t,n,o=(0,d.Z)(),f=(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,a,o,i,l=[],c=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=o.call(n)).done)&&(l.push(r.value),l.length!==t);c=!0);}catch(e){s=!0,a=e}finally{try{if(!c&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(s)throw a}}return l}}(t,n)||function(e,t){if(e){if("string"==typeof e)return m(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)?m(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.")}()),g=f[0],h=f[1],v=(0,s.s)({entityId:e.entityId,entityType:e.entityType}),b=v.share,S=v.entity,T=(0,c._)({entityId:e.entityId}).deleteShareLink,E=(0,u.j)({data:{entity:{id:e.entityId,type:e.entityType}},analyticsOptions:{location:i.LZ.Popup,eventVersion:i.eq.V3}}).log,k=!!b.data&&!!S.data;return r.createElement(p.G,{title:y("title"),closePopup:e.closePopup,showLoadingSpinner:!k||e.loading,animation:e.animate},r.createElement(l.F,{loading:g,phrases:{leadingSentence:y("intro"),bulletPoints:[y("loseAccessInfo"),y("loseAccessUsage")],acknowledgement:y("acknowledgement"),backButton:y("back"),deleteButton:y("delete")},onDelete:function(){var t;h(!0),T(null===(t=b.data)||void 0===t?void 0:t.shareId).then(function(){E({type:"delete-share-link",share:b.data}),h(!1),o.success(y("deleteSuccess")),e.closePopup(),e.previousAppLink&&a.C$.trigger(e.previousAppLink)}).catch(function(){o.error(y("deleteFailed",{name:S.data.name,escapeText:!0}))}).finally(function(){h(!1)})},onBack:e.goToSettingsStep?e.goToSettingsStep:void 0}))}},28161:(e,t,n)=>{n.d(t,{F:()=>h});var r=n(23481),a=n(20354),o=n(93563),i=n(87265),l=n(2267),c=n(16714),s=n(1666),u=n(69883),p=n(22902),d=n(37802);function m(){var e,t,n="function"==typeof Symbol?Symbol:{},r=n.iterator||"@@iterator",a=n.toStringTag||"@@toStringTag";function o(n,r,a,o){var c=r&&r.prototype instanceof l?r:l,s=Object.create(c.prototype);return y(s,"_invoke",function(n,r,a){var o,l,c,s=0,u=a||[],p=!1,d={p:0,n:0,v:e,a:m,f:m.bind(e,4),d:function(t,n){return o=t,l=0,c=e,d.n=n,i}};function m(n,r){for(l=n,c=r,t=0;!p&&s&&!a&&t<u.length;t++){var a,o=u[t],m=d.p,y=o[2];n>3?(a=y===r)&&(c=o[(l=o[4])?5:(l=3,3)],o[4]=o[5]=e):o[0]<=m&&((a=n<2&&m<o[1])?(l=0,d.v=r,d.n=o[1]):m<y&&(a=n<3||o[0]>r||r>y)&&(o[4]=n,o[5]=r,d.n=y,l=0))}if(a||n>1)return i;throw p=!0,r}return function(a,u,y){if(s>1)throw TypeError("Generator is already running");for(p&&1===u&&m(u,y),l=u,c=y;(t=l<2?e:c)||!p;){o||(l?l<3?(l>1&&(d.n=-1),m(l,c)):d.n=c:d.v=c);try{if(s=2,o){if(l||(a="next"),t=o[a]){if(!(t=t.call(o,c)))throw TypeError("iterator result is not an object");if(!t.done)return t;c=t.value,l<2&&(l=0)}else 1===l&&(t=o.return)&&t.call(o),l<2&&(c=TypeError("The iterator does not provide a '"+a+"' method"),l=1);o=e}else if((t=(p=d.n<0)?c:n.call(r,d))!==i)break}catch(t){o=e,l=1,c=t}finally{s=1}}return{value:t,done:p}}}(n,a,o),!0),s}var i={};function l(){}function c(){}function s(){}t=Object.getPrototypeOf;var u=[][r]?t(t([][r]())):(y(t={},r,function(){return this}),t),p=s.prototype=l.prototype=Object.create(u);function d(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,s):(e.__proto__=s,y(e,a,"GeneratorFunction")),e.prototype=Object.create(p),e}return c.prototype=s,y(p,"constructor",s),y(s,"constructor",c),c.displayName="GeneratorFunction",y(s,a,"GeneratorFunction"),y(p),y(p,a,"Generator"),y(p,r,function(){return this}),y(p,"toString",function(){return"[object Generator]"}),(m=function(){return{w:o,m:d}})()}function y(e,t,n,r){var a=Object.defineProperty;try{a({},"",{})}catch(e){a=0}y=function(e,t,n,r){if(t)a?a(e,t,{value:n,enumerable:!r,configurable:!r,writable:!r}):e[t]=n;else{var o=function(t,n){y(e,t,function(e){return this._invoke(t,n,e)})};o("next",0),o("throw",1),o("return",2)}},y(e,t,n,r)}var f=function(e,t,n,r){return new(n||(n=Promise))(function(a,o){function i(e){try{c(r.next(e))}catch(e){o(e)}}function l(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?a(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(i,l)}c((r=r.apply(e,t||[])).next())})},g=r.T.encloseNamespace("sharev2.useMainShareData");function h(e){var t=(0,u.Z)(),n=(0,p.T)().hasPermissions,r=(0,d.r)(null),y=r.shareToGoogleClassroom,h=r.shareToMicrosoftTeams,v=r.isLoadingSettings,b=r.shareOverrideRestrictions,S=(0,i.s)({entityId:e.entityId,entityType:e.entityType}),T=S.currentUser,E=S.entity,k=S.privacy,C=S.share,w=S.config,I=(0,o._)({entityId:e.entityId}),x=I.loaded,P=I.updateShareLink,A=a.a.useBasicFetch(T.data&&s.h.yearGroups(T.data.customerId)),N=l.I.canEmbed(e.entityType),O=l.I.getEnabledIntegrations(y,h),L=n(c.C.ManageIntegrations),j=n(c.C.StudentExperience),G=n(c.C.ManageShareLinkSettings),F=C.data&&l.I.canAddPolicies(e.entityType),M=x&&!!C.data&&!!E.data&&!!k.data&&!!w.data&&!!T.data&&!!A&&!v;return{data:{share:C,loaded:M,entity:E,privacy:k,config:w,yearGroups:A,shareOverrideRestrictions:b,currentUser:T},canEmbed:N,integrations:O,hasStudentExp:j,canAccessSettings:F,hasManageShareLinkSettings:G,hasManageIntegrationsPermission:L,onClickSavePrivacy:function(n){return f(this,void 0,void 0,m().m(function r(){var a;return m().w(function(r){for(;;)switch(r.n){case 0:return r.p=0,r.n=1,P(C.data.shareId,{privacy:n});case 1:a=r.v,e.log({type:"update-share-link",share:a}),t.success(g("privaciesSuccess",{name:E.data.name,escapeText:!0})),r.n=3;break;case 2:r.p=2,r.v,t.error(g("privaciesError",{name:E.data.name,escapeText:!0}));case 3:return r.a(2)}},r,null,[[0,2]])}))}}}},70791:(e,t,n)=>{n.d(t,{L:()=>i});var r=n(14292),a=n(97395),o="toolbar=0,location=0,menubar=0,width=600,height=600",i={launchGoogleClassroom:function(e){var t=a._.urlBuilder("https://classroom.google.com/share",{link:e});r.A.PageLoad(t,!0,o)},launchMicrosoftTeams:function(e){var t=a._.urlBuilder("https://teams.microsoft.com/share",{href:e,preview:!1,referrer:r.A.GetCurrentHostname(),s:Date.now()});r.A.PageLoad(t,!0,o)}}},89067:(e,t,n)=>{n.d(t,{r:()=>o});var r=n(32735);function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function o(e){var t,n,o,i,l=(o=r.useState(null===(t=e.animate)||void 0===t||t),i=2,function(e){if(Array.isArray(e))return e}(o)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,o,i,l=[],c=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=o.call(n)).done)&&(l.push(r.value),l.length!==t);c=!0);}catch(e){s=!0,a=e}finally{try{if(!c&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(s)throw a}}return l}}(o,i)||function(e,t){if(e){if("string"==typeof e)return a(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)?a(e,t):void 0}}(o,i)||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.")}()),c=l[0],s=l[1],u=e.steps[e.step],p=void 0!==e.loading?{loading:e.loading}:{},d=Object.assign(Object.assign(Object.assign({},e.data),p),{animate:null!==(n=e.animate)&&void 0!==n?n:c,closePopup:function(){e.closePopup()},setStep:function(t){s(!1),e.setStep(t)}});if(!u)return r.createElement(r.Fragment,null);var m=u.view;return r.createElement(m,Object.assign({},d))}},57724:(e,t,n)=>{n.d(t,{g:()=>l});var r=n(32735),a=n(31453),o=n(83345),i="shared.newBadge";function l(e){return r.createElement("span",{className:(0,a.A)("badge badge-wrapper rounded-pill d-flex justify-content-center","fw-medium text-blue","sm"===e.size?"badge-sm":"badge-std",e.invert?"bg-white":"bg-light-blue",e.className)},e.text||r.createElement(o.x,{phrase:"new",namespace:i}))}},16412:(e,t,n)=>{n.r(t),n.d(t,{ShareView:()=>we});var r=n(32735),a=n(99706),o=n(87265),i=n(2267),l=n(23481),c=n(20354),s=n(65858),u=n(51182),p=n(18488),d=n(31121),m=n(9111),y=n(13876),f=l.T.encloseNamespace("sharev2.copyEmbed");function g(e){var t=c.a.useGetFetch(),n=(0,o.s)({entityId:e.entityId,entityType:e.entityType}),a=n.config,i=n.share,l=n.entity,g=(0,d.j)({data:{entity:{id:e.entityId,type:e.entityType}},analyticsOptions:{location:s.LZ.Popup,eventVersion:s.eq.V3}}).log,h=!!i.data&&!!a.data;return r.createElement(m.G,{title:f("title"),closePopup:e.closePopup,showLoadingSpinner:!h||e.loading,animation:e.animate},h&&r.createElement(r.Fragment,null,r.createElement("div",{className:"mb-3"},r.createElement(u.l,{analyticsOptions:{},entity:l.data,embedUrl:i.data.link.shortenedEmbedUrl,entityId:e.entityId,entityType:e.entityType,liteUrl:a.data.liteUrl,shareId:i.data.shareId,onCopy:function(n){g({type:"copy-embed-html",id:e.entityId,shareId:i.data.shareId,shareType:i.data.type,embedDetails:n}),t(p.o.updateDateShared(i.data.shareId))},showEmbedCopiedText:e.showEmbedCopiedText,styling:"normal-v2"})),r.createElement(y.u,null,r.createElement(y.u.Cancel,{variant:"link",onClick:e.goToShareLinkStep,text:f("back")}))))}var h=n(70791),v=n(41635),b=n(41661);const S={integration:"pIUQ7"};function T(e){return e.integrations.length?r.createElement("div",{className:"d-flex gap-1 align-items-start"},e.integrations.includes(b.D.GoogleClassroom)&&r.createElement("button",{type:"button",onClick:e.onClickGoogleClassroom,className:S.integration,style:{backgroundImage:"url(".concat(e.googleClassroomIcon,")")}}),e.integrations.includes(b.D.MicrosoftTeams)&&r.createElement("button",{type:"button",onClick:e.onClickMicrosoftTeams,className:"".concat(S.integration," rounded"),style:{backgroundImage:"url(".concat(e.microsoftTeamsIcon,")")}})):r.createElement(r.Fragment,null)}var E=n(11607),k=n(83914),C=n(83345),w=n(35223),I="sharev2.sharePermanentLinkDelete";function x(e){return r.createElement("div",{className:"d-flex flex-row justify-content-between align-items-center"},r.createElement(E.L,{onClick:e.onClick,className:"d-inline-block p-1 pe-2 rounded-1 hover-bg-light-blue"},r.createElement("div",{className:"d-flex align-items-center"},r.createElement("div",{className:"me-2"},r.createElement(k.x,{svgName:w.vn.Delete,size:k.S.Standard})),r.createElement(C.x,{namespace:I,phrase:"deleteLink"}))))}var P="sharev2.sharePermanentLinkSetting";function A(e){return e.manageShareLinkSettings?r.createElement("div",{className:"d-flex flex-row justify-content-between align-items-center"},r.createElement(E.L,{onClick:e.onClickEditSettings,className:"d-inline-block p-1 pe-2 rounded-1 hover-bg-light-blue"},r.createElement("div",{className:"d-flex align-items-center"},r.createElement("div",{className:"me-2"},r.createElement(k.x,{svgName:w.vn.Cog,size:k.S.Standard})),r.createElement(C.x,{namespace:P,phrase:"editSettings"})))):null}function N(e){return r.createElement("div",{className:"d-flex flex-row justify-content-between gap-2"},r.createElement("div",null,e.canEmbed&&r.createElement(v.R,{onClickGetEmbedCode:e.onClickGetEmbedCode,minimal:!0}),!e.hideSettings&&(e.canAccessSettings?r.createElement(A,{manageShareLinkSettings:e.hasManageShareLinkSettings,onClickEditSettings:e.goToSettingsStep}):r.createElement(x,{onClick:e.goToDeleteStep}))),r.createElement("div",null,e.showIntegrations&&!!e.integrations.length&&r.createElement(T,{integrations:e.integrations,onClickGoogleClassroom:e.onClickGoogleClassroom,onClickMicrosoftTeams:e.onClickMicrosoftTeams,googleClassroomIcon:e.googleClassroomIcon,microsoftTeamsIcon:e.microsoftTeamsIcon})))}var O=n(93563),L=n(16714),j=n(22902),G=n(37802),F=n(2102),M=n(69883);function U(){var e,t,n="function"==typeof Symbol?Symbol:{},r=n.iterator||"@@iterator",a=n.toStringTag||"@@toStringTag";function o(n,r,a,o){var c=r&&r.prototype instanceof l?r:l,s=Object.create(c.prototype);return D(s,"_invoke",function(n,r,a){var o,l,c,s=0,u=a||[],p=!1,d={p:0,n:0,v:e,a:m,f:m.bind(e,4),d:function(t,n){return o=t,l=0,c=e,d.n=n,i}};function m(n,r){for(l=n,c=r,t=0;!p&&s&&!a&&t<u.length;t++){var a,o=u[t],m=d.p,y=o[2];n>3?(a=y===r)&&(c=o[(l=o[4])?5:(l=3,3)],o[4]=o[5]=e):o[0]<=m&&((a=n<2&&m<o[1])?(l=0,d.v=r,d.n=o[1]):m<y&&(a=n<3||o[0]>r||r>y)&&(o[4]=n,o[5]=r,d.n=y,l=0))}if(a||n>1)return i;throw p=!0,r}return function(a,u,y){if(s>1)throw TypeError("Generator is already running");for(p&&1===u&&m(u,y),l=u,c=y;(t=l<2?e:c)||!p;){o||(l?l<3?(l>1&&(d.n=-1),m(l,c)):d.n=c:d.v=c);try{if(s=2,o){if(l||(a="next"),t=o[a]){if(!(t=t.call(o,c)))throw TypeError("iterator result is not an object");if(!t.done)return t;c=t.value,l<2&&(l=0)}else 1===l&&(t=o.return)&&t.call(o),l<2&&(c=TypeError("The iterator does not provide a '"+a+"' method"),l=1);o=e}else if((t=(p=d.n<0)?c:n.call(r,d))!==i)break}catch(t){o=e,l=1,c=t}finally{s=1}}return{value:t,done:p}}}(n,a,o),!0),s}var i={};function l(){}function c(){}function s(){}t=Object.getPrototypeOf;var u=[][r]?t(t([][r]())):(D(t={},r,function(){return this}),t),p=s.prototype=l.prototype=Object.create(u);function d(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,s):(e.__proto__=s,D(e,a,"GeneratorFunction")),e.prototype=Object.create(p),e}return c.prototype=s,D(p,"constructor",s),D(s,"constructor",c),c.displayName="GeneratorFunction",D(s,a,"GeneratorFunction"),D(p),D(p,a,"Generator"),D(p,r,function(){return this}),D(p,"toString",function(){return"[object Generator]"}),(U=function(){return{w:o,m:d}})()}function D(e,t,n,r){var a=Object.defineProperty;try{a({},"",{})}catch(e){a=0}D=function(e,t,n,r){if(t)a?a(e,t,{value:n,enumerable:!r,configurable:!r,writable:!r}):e[t]=n;else{var o=function(t,n){D(e,t,function(e){return this._invoke(t,n,e)})};o("next",0),o("throw",1),o("return",2)}},D(e,t,n,r)}function R(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 B=function(e,t,n,r){return new(n||(n=Promise))(function(a,o){function i(e){try{c(r.next(e))}catch(e){o(e)}}function l(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?a(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(i,l)}c((r=r.apply(e,t||[])).next())})};function _(){var e,t,n=this,a=(e=(0,r.useState)(null),t=2,function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,o,i,l=[],c=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=o.call(n)).done)&&(l.push(r.value),l.length!==t);c=!0);}catch(e){s=!0,a=e}finally{try{if(!c&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(s)throw a}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return R(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)?R(e,t):void 0}}(e,t)||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.")}()),o=a[0],i=a[1];return{copiedText:o,copyToClipboard:(0,r.useCallback)(function(e){return B(n,void 0,void 0,U().m(function t(){var n;return U().w(function(t){for(;;)switch(t.n){case 0:return t.p=0,t.n=1,V(e);case 1:return i(e),t.a(2,!0);case 2:return t.p=2,n=t.v,console.warn("Copy failed",n),i(null),t.a(2,!1)}},t,null,[[0,2]])}))},[])}}function V(e){if(navigator.clipboard)return navigator.clipboard.writeText(e);var t=document.createElement("span");t.textContent=e,t.style.whiteSpace="pre",document.body.appendChild(t);var n=window.getSelection();if(!n)return Promise.reject();var r=window.document.createRange();n.removeAllRanges(),r.selectNode(t),n.addRange(r);try{window.document.execCommand("copy")}catch(e){return Promise.reject()}return n.removeAllRanges(),window.document.body.removeChild(t),Promise.resolve()}var z=n(80783),Z=n(26450),$=n(31453),W=n(15611),q=n(57724);const H={assignPrompt:"R73Xv",badge:"urP15"};var J="sharev2.assignPrompt",X=l.T.encloseNamespace(J);function Y(e){return r.createElement(W.F,{appLink:e.appLink,className:(0,$.A)("d-flex flex-row gap-3 p-3 justify-content-between rounded-3 bg-white hover-bg-light-blue",H.assignPrompt)},r.createElement("div",{className:"d-flex flex-row gap-2 align-items-center fw-medium"},r.createElement(C.x,{namespace:J,phrase:"title"}),r.createElement(q.g,{size:"sm",text:X("badgeText"),className:H.badge})),r.createElement("div",null,r.createElement(k.x,{svgName:w.vn.ChevronRight})))}const K={input:"mc17h"};function Q(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 ee="sharev2.createShare",te=l.T.encloseNamespace(ee),ne="https://clickv.ie/...";function re(e){var t,n,a=(0,M.Z)(),l=_().copyToClipboard,c=function(e){var t=(0,j.T)().hasPermissions,n=(0,G.r)(null),r=n.shareToGoogleClassroom,a=n.shareToMicrosoftTeams,l=n.hasClassrooms,c=n.isLoadingSettings,s=i.I.canEmbed(e.entityType),u=i.I.getEnabledIntegrations(r,a),p=(0,o.s)({entityId:e.entityId,entityType:e.entityType}),d=p.entity,m=p.share,y=p.currentUser,f=p.config,g=(0,O._)({entityId:e.entityId}),h=g.loaded,v=g.createShareLink,b=t(L.C.StudentExperience);return{data:{entity:d,share:m,currentUser:y,config:f,loaded:!(c||!d.data||!y.data||!f.data||!h)},hasClassrooms:l,hasStudentExp:b,canEmbed:s,integrations:u,createShareLink:v}}({entityId:e.entityId,entityType:e.entityType}),u=c.data,p=c.hasClassrooms,y=c.hasStudentExp,f=c.canEmbed,g=c.integrations,v=c.createShareLink,b=u.entity,S=u.share,T=u.currentUser,E=u.config,I=u.loaded,x=(0,d.j)({data:{entity:{id:e.entityId,type:e.entityType}},analyticsOptions:{location:s.LZ.Popup,eventVersion:s.eq.V4}}).log,P=(t=r.useState(null),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,o,i,l=[],c=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=o.call(n)).done)&&(l.push(r.value),l.length!==t);c=!0);}catch(e){s=!0,a=e}finally{try{if(!c&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(s)throw a}}return l}}(t,n)||function(e,t){if(e){if("string"==typeof e)return Q(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)?Q(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.")}()),A=P[0],U=P[1];function D(t){var n;l(null===(n=t.link)||void 0===n?void 0:n.shortenedUrl).then(function(n){n?(x({type:"copy-share-link",id:b.data.id,shareId:t.shareId,shareType:t.type}),e.setShowCopiedText(!0),setTimeout(function(){return e.setShowCopiedText(!1)},3e3)):a.success(te("createSuccess",{name:b.data.name,escapeText:!0}))}).finally(function(){e.goToShareLinkStep()})}function R(t){var n=Z.i.getEmbedResolutions(),r=Z.i.buildEmbedUrl({embedUrl:t.link.shortenedEmbedUrl,host:E.data.liteUrl,shareId:t.shareId,autoplay:!1}),o=Z.i.getEmbedString({url:r,size:n[0]});l(o).then(function(r){r?(x({type:"copy-embed-html",id:e.entityId,shareId:t.shareId,shareType:t.type,embedDetails:{size:n[0],autoplay:!1}}),e.setShowEmbedCopiedText(!0),setTimeout(function(){return e.setShowEmbedCopiedText(!1)},3e3)):a.success(te("createSuccess",{name:b.data.name,escapeText:!0}))}).finally(function(){e.goToCopyEmbedStep()})}function B(t){h.L.launchGoogleClassroom(t.link.shortenedUrl),e.goToShareLinkStep()}function V(t){h.L.launchMicrosoftTeams(t.link.shortenedUrl),e.goToShareLinkStep()}function $(e){return function(){U("link"===e?"copy":"create"),v().then(function(t){return function(e,t){x({type:"create-share-link",share:e}),{link:D,embed:R,"google-classroom":B,"microsoft-teams":V}[t](e)}(t,e)}).catch(function(){a.error(te("createError",{name:b.data.name,escapeText:!0}))}).finally(function(){U(null)})}}r.useEffect(function(){S.data&&e.goToShareLinkStep()},[S.data]);var W=z.z.hideAssignButtonOnVideoActions(T.data)&&p&&!y,q=W&&I?{popupContentClassName:"bg-transparent border-0",popupBodyClassName:"p-0",topContentClassName:"bg-white rounded-bottom-3 p-3 mb-3 d-flex flex-column gap-2"}:{topContentClassName:"d-flex flex-column gap-2"};return r.createElement(m.G,{title:te("title"),closePopup:e.closePopup,showLoadingSpinner:!I||e.loading,animation:e.animate,contentClassName:null==q?void 0:q.popupContentClassName,bodyClassName:null==q?void 0:q.popupBodyClassName},r.createElement("div",{className:null==q?void 0:q.topContentClassName},r.createElement("p",{className:"mb-2"},r.createElement(C.x,{namespace:ee,phrase:"info"})),r.createElement("div",{className:"d-flex gap-2 position-relative w-100"},r.createElement("input",{type:"text",autoComplete:"off",className:"form-control ".concat(K.input),spellCheck:!1,placeholder:ne,readOnly:!0}),r.createElement(F.m,{variant:"dark",showSpinner:!!A,className:"text-nowrap d-flex align-items-center gap-1",onClick:$("link"),spinnerText:te("copy"===A?"buttonLoading":"buttonLoadingCreate")},r.createElement(k.x,{svgName:w.vn.Link}),r.createElement(C.x,{namespace:ee,phrase:"button"}))),r.createElement(N,{canEmbed:f,integrations:g,canAccessSettings:!1,showIntegrations:e.enableIntegrationBanner,hasManageShareLinkSettings:!1,goToDeleteStep:null,goToSettingsStep:null,onClickGetEmbedCode:$("embed"),onClickGoogleClassroom:$("google-classroom"),onClickMicrosoftTeams:$("microsoft-teams"),hideSettings:!0,googleClassroomIcon:e.googleClassroomIcon,microsoftTeamsIcon:e.microsoftTeamsIcon})),W&&e.assignFlowSelectorAppLink&&r.createElement(Y,{appLink:e.assignFlowSelectorAppLink}))}var ae=n(89701),oe=n(25752),ie=n(66257);function le(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function ce(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,a,o,i,l=[],c=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=o.call(n)).done)&&(l.push(r.value),l.length!==t);c=!0);}catch(e){s=!0,a=e}finally{try{if(!c&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(s)throw a}}return l}}(t,n)||function(e,t){if(e){if("string"==typeof e)return le(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)?le(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.")}()),o=a[0],i=a[1];return r.createElement("div",{className:"d-flex justify-content-start align-items-start flex-column gap-2"},r.createElement(oe.q,{sharePrivacy:e.share.privacy,entityPrivacy:e.privacy,entityTypeId:e.entity.typeId,entity:e.entity,yearGroups:e.yearGroups,hasStudentExp:e.hasStudentExp,shareOverrideRestrictions:e.shareOverrideRestrictions,onClickSavePrivacy:e.onClickSavePrivacy}),r.createElement(ie.k,{styling:"normal-v2",value:e.share.link.shortenedUrl,showCopiedText:e.showCopiedText,onCopy:function(){o||(i(!0),"function"==typeof e.onCopy&&e.onCopy())}}))}var se=n(10628),ue=n(28161),pe=l.T.encloseNamespace("sharev2.mainShareView");function de(e){var t=c.a.useGetFetch(),n=(0,G.r)(null).hasClassrooms,a=(0,j.T)().hasPermissions,o=(0,d.j)({data:{entity:{id:e.entityId,type:e.entityType}},analyticsOptions:{eventVersion:s.eq.V3,location:s.LZ.Popup}}).log,i=(0,ue.F)({entityId:e.entityId,entityType:e.entityType,log:o}),l=i.data,u=i.canEmbed,y=i.integrations,f=i.hasStudentExp,g=i.canAccessSettings,v=i.hasManageShareLinkSettings,b=i.hasManageIntegrationsPermission,S=i.onClickSavePrivacy,T=l.share,E=l.loaded,k=l.entity,C=l.privacy,w=l.yearGroups,I=l.shareOverrideRestrictions,x=l.currentUser,P=z.z.hideAssignButtonOnVideoActions(x.data)&&n&&!a(L.C.StudentExperience),A=P&&E?{popupContentClassName:"bg-transparent border-0",popupBodyClassName:"p-0",topContentClassName:"bg-white rounded-bottom-3 p-3 mb-3"}:null,O=b?e.integrationSettingAppLink:e.messagePopupAppLink;return r.createElement(m.G,{animation:e.animate,title:pe("title"),closePopup:e.closePopup,showLoadingSpinner:!E||e.loading,contentClassName:null==A?void 0:A.popupContentClassName,bodyClassName:null==A?void 0:A.popupBodyClassName},r.createElement("div",{className:(0,$.A)("d-flex flex-column gap-2",null==A?void 0:A.topContentClassName)},r.createElement(ce,{share:T.data,entity:k.data,privacy:C.data,yearGroups:w.data,entityType:e.entityType,hasStudentExp:f,showCopiedText:e.showCopiedText,shareOverrideRestrictions:I,onCopy:function(){o({type:"copy-share-link",id:k.data.id,shareId:T.data.shareId,shareType:T.data.type}),t(p.o.updateDateShared(T.data.shareId))},onClickSavePrivacy:S}),r.createElement(N,{canEmbed:u,integrations:y,canAccessSettings:g,showIntegrations:e.enableIntegrationBanner,hasManageShareLinkSettings:v,goToDeleteStep:e.goToDeleteStep,goToSettingsStep:e.goToSettingsStep,onClickGetEmbedCode:e.goToCopyEmbedStep,onClickGoogleClassroom:function(){return h.L.launchGoogleClassroom(T.data.link.shortenedUrl)},onClickMicrosoftTeams:function(){return h.L.launchMicrosoftTeams(T.data.link.shortenedUrl)},googleClassroomIcon:e.googleClassroomIcon,microsoftTeamsIcon:e.microsoftTeamsIcon}),e.enableIntegrationBanner&&!y.length&&r.createElement(se.H,{normalText:!0,hideDismiss:!0,hideBackground:!0,appLink:O,closePopup:e.closePopup})),P&&e.assignFlowSelectorAppLink&&r.createElement(Y,{appLink:e.assignFlowSelectorAppLink}))}var me=n(81192),ye=n(2867),fe=l.T.encloseNamespace("sharev2.shareSettingsView");function ge(e){var t=(0,d.j)({data:{entity:{id:e.entityId,type:e.entityType}},analyticsOptions:{location:s.LZ.Popup,eventVersion:s.eq.V3}}).log,n=(0,ye.W)({entityId:e.entityId,entityType:e.entityType,log:t}),a=n.initialValues,o=n.onClickSaveLink,l=i.I.getEnabledSettingsField(e.entityType),c=l.showImmediateFeedbackField,u=l.showPreventScrubbingField;return r.createElement(m.G,{title:fe("title"),showLoadingSpinner:e.loading,closePopup:e.closePopup,animation:e.animate},r.createElement(me.Z,{initialValues:a,onSubmit:function(e,t){o({options:{immediateFeedback:e.immediateFeedback,preventScrubbing:e.preventScrubbing}},t)},onClickDelete:e.goToDeleteStep,showImmediateFeedbackField:c,showPreventScrubbingField:u}),r.createElement(y.u,{className:"mt-3"},r.createElement(y.u.Cancel,{onClick:e.goToShareLinkStep,text:fe("back"),variant:"link"})))}var he=n(89067);function ve(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,o,i,l=[],c=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=o.call(n)).done)&&(l.push(r.value),l.length!==t);c=!0);}catch(e){s=!0,a=e}finally{try{if(!c&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(s)throw a}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return be(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)?be(e,t):void 0}}(e,t)||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.")}()}function be(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function Se(e){var t=(0,o.s)({entityId:e.entityId,entityType:e.entityType}).share,n=ve(r.useState(!0),2),a=n[0],l=n[1],c=ve(r.useState(t.data?"share-link":"create-link"),2),s=c[0],u=c[1],p=ve(r.useState(!1),2),d=p[0],m=p[1],y=ve(r.useState(!1),2),f=y[0],h=y[1],v=i.I.canAddPolicies(e.entityType);function b(e){l(!1),u(e)}var S={entityId:e.entityId,entityType:e.entityType,showCopiedText:d,showEmbedCopiedText:f,messagePopupAppLink:e.messagePopupAppLink,enableIntegrationBanner:e.enableIntegrationBanner,integrationSettingAppLink:e.integrationSettingAppLink,assignFlowSelectorAppLink:e.assignFlowSelectorAppLink,goToShareLinkStep:function(){return b("share-link")},goToDeleteStep:function(){return b("delete-confirmation")},goToCopyEmbedStep:function(){return b("copy-embed")},goToSettingsStep:function(){b(v?"link-settings":"share-link")},closePopup:e.closePopup,setShowCopiedText:m,setShowEmbedCopiedText:h,googleClassroomIcon:e.googleClassroomIcon,microsoftTeamsIcon:e.microsoftTeamsIcon};return r.createElement(he.r,{step:s,animate:a,setStep:b,loading:!t.hasCompleted,closePopup:e.closePopup,data:S,steps:{"create-link":{view:re},"share-link":{view:de},"link-settings":{view:ge},"copy-embed":{view:g},"delete-confirmation":{view:ae.DeleteShareLinkConfirmationView}}})}var Te=n(99742),Ee=n(14070),ke=n(97291),Ce=n(40254);function we(e){var t=(0,G.r)(null),n=t.hasShareFlowV2;if(t.isLoadingSettings)return r.createElement(r.Fragment,null);if(!n)return r.createElement(a.ShareView,{entityId:e.entityId,entityType:e.entityType,closePopup:e.closePopup,emptyStateImageUrl:Te.W.EmptyStates.TYPEAHEAD_RESULTS,errorStateImageUrl:Te.W.TYPEAHEAD_ERROR,messagePopupAppLink:{application:ke.O.DEFAULT,action:Ee.e.Default.INTEGRATIONS_INFO},integrationSettingAppLink:{application:ke.O.SETTINGS,action:Ee.e.Settings.INTEGRATIONS},enableIntegrationBanner:e.enableIntegrationBanner});var o="series"===e.entityType?Ce.W.existingClassroom({entityType:"series",objectId:e.entityId}):Ce.W.flowSelector({entityType:e.entityType,objectId:e.entityId});return r.createElement(Se,{entityId:e.entityId,entityType:e.entityType,closePopup:e.closePopup,messagePopupAppLink:{application:ke.O.DEFAULT,action:Ee.e.Default.INTEGRATIONS_INFO},integrationSettingAppLink:{application:ke.O.SETTINGS,action:Ee.e.Settings.INTEGRATIONS},enableIntegrationBanner:e.enableIntegrationBanner,assignFlowSelectorAppLink:o,googleClassroomIcon:Te.W.ShareIntegrations.GoogleClassroom,microsoftTeamsIcon:Te.W.ShareIntegrations.MicrosoftTeams})}}}]);
|
|
3
|
-
//# sourceMappingURL=7604-f664281904-lite.chunk.js.map
|