@clickview/lite 0.77.0-rc.0 → 0.77.0-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundles.json +1 -1
- package/dist/languages/en.json +1 -1
- package/dist/scripts/{3700-1b514ad83f-lite.chunk.js → 3700-8530427309-lite.chunk.js} +3 -3
- package/dist/scripts/{3700-1b514ad83f-lite.chunk.js.map → 3700-8530427309-lite.chunk.js.map} +1 -1
- package/dist/scripts/{3811-133acc9140-lite.chunk.js → 3811-b39bb39668-lite.chunk.js} +3 -3
- package/dist/scripts/{3811-133acc9140-lite.chunk.js.map → 3811-b39bb39668-lite.chunk.js.map} +1 -1
- package/dist/scripts/4300-7147c77234-lite.chunk.js +2 -0
- package/dist/scripts/4300-7147c77234-lite.chunk.js.map +1 -0
- package/dist/scripts/8139-5a213506ea-lite.chunk.js +2 -0
- package/dist/scripts/8139-5a213506ea-lite.chunk.js.map +1 -0
- package/dist/scripts/9701-d86dfbee0c-lite.chunk.js +2 -0
- package/dist/scripts/9701-d86dfbee0c-lite.chunk.js.map +1 -0
- package/dist/scripts/{bundle-22a4a075fe.min.js → bundle-7d9d34118d.min.js} +3 -3
- package/dist/scripts/{bundle-22a4a075fe.min.js.map → bundle-7d9d34118d.min.js.map} +1 -1
- package/package.json +1 -1
- package/dist/scripts/4300-e884613b63-lite.chunk.js +0 -2
- package/dist/scripts/4300-e884613b63-lite.chunk.js.map +0 -1
- package/dist/scripts/8139-f8ce3266c8-lite.chunk.js +0 -2
- package/dist/scripts/8139-f8ce3266c8-lite.chunk.js.map +0 -1
- package/dist/scripts/9701-dfa0ccbf3a-lite.chunk.js +0 -2
- package/dist/scripts/9701-dfa0ccbf3a-lite.chunk.js.map +0 -1
- /package/dist/scripts/{3700-1b514ad83f-lite.chunk.js.LICENSE.txt → 3700-8530427309-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{3811-133acc9140-lite.chunk.js.LICENSE.txt → 3811-b39bb39668-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{bundle-22a4a075fe.min.js.LICENSE.txt → bundle-7d9d34118d.min.js.LICENSE.txt} +0 -0
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/*! For license information please see 3811-
|
|
2
|
-
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[3811,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),i=n(89965),o=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,i,o,l=[],c=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=i.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&&(o=n.return(),Object(o)!==o))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(i.X,{id:"ack",checked:u,onChange:function(e){return p(e.target.checked)},label:e.phrases.acknowledgement}),r.createElement(o.u,null,e.onBack&&r.createElement(o.u.Cancel,{onClick:e.onBack,text:null!==(t=e.phrases.backButton)&&void 0!==t?t:c("backButton"),variant:"link"}),r.createElement(o.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),i=n(8233),o=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(o.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=i.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(o.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],i=a.title,o=a.description;if((0,a.predicate)())return r.createElement(u,{key:t,sharePrivacy:t,activePrivacy:e.sharePrivacy,title:i,description:o,onClick:e.onClickSavePrivacy})}))):r.createElement("div",{className:"d-flex align-items-center"},r.createElement(o.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),i=n(33518),o=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=o.R.getShareLinkAccessType(e.entityPrivacy),n=o.R.getRespectRatingText(e.entity,e.yearGroups,e.hasStudentExp);return s(s(s(s(s(s(s(s({},i.e.JustMySchool,{title:u("respectRatings"),description:n,predicate:function(){return"protected"!==t}}),i.e.Protected,{title:u("respectRatings"),description:n,predicate:function(){return"protected"===t}}),i.e.JustMySchoolOverrideRestriction,{title:u("justMySchool"),description:u("justMySchoolDescription"),predicate:function(){return"protected"!==t}}),i.e.ProtectedOverrideRestriction,{title:u("justMySchool"),description:u("clickViewOnly"),predicate:function(){return"protected"===t}}),i.e.Public,{title:u("public"),description:u("publicDescription"),predicate:function(){return"owner"===t}}),i.e.Direct,{title:"",description:"",predicate:function(){return!1}}),i.e.PasswordProtected,{title:u("passwordProtectedTitle"),description:u("passwordProtectedDescription"),predicate:function(){return e._showPasswordProtected}}),i.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,i,o,l=[],c=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=i.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&&(o=n.return(),Object(o)!==o))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),i=n(23481),o=n(65858),l=n(29923),c=n(93563),s=n(87265),u=n(31121),p=n(9111),d=n(69883);function y(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var m=i.T.encloseNamespace("sharev2.deleteShareLinkConfirmation");function f(e){var t,n,i=(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,i,o,l=[],c=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=i.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&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw a}}return l}}(t,n)||function(e,t){if(e){if("string"==typeof e)return y(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)?y(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.")}()),v=f[0],g=f[1],h=(0,s.s)({entityId:e.entityId,entityType:e.entityType}),b=h.share,S=h.entity,E=(0,c._)({entityId:e.entityId}).deleteShareLink,w=(0,u.j)({data:{entity:{id:e.entityId,type:e.entityType}},analyticsOptions:{location:o.LZ.Popup,eventVersion:o.eq.V3}}).log,k=!!b.data&&!!S.data;return r.createElement(p.G,{title:m("title"),closePopup:e.closePopup,showLoadingSpinner:!k||e.loading,animation:e.animate},r.createElement(l.F,{loading:v,phrases:{leadingSentence:m("intro"),bulletPoints:[m("loseAccessInfo"),m("loseAccessUsage")],acknowledgement:m("acknowledgement"),backButton:m("back"),deleteButton:m("delete")},onDelete:function(){var t;g(!0),E(null===(t=b.data)||void 0===t?void 0:t.shareId).then(function(){w({type:"delete-share-link",share:b.data}),g(!1),i.success(m("deleteSuccess")),e.closePopup(),e.previousAppLink&&a.C$.trigger(e.previousAppLink)}).catch(function(){i.error(m("deleteFailed",{name:S.data.name,escapeText:!0}))}).finally(function(){g(!1)})},onBack:e.goToSettingsStep?e.goToSettingsStep:void 0}))}},28161:(e,t,n)=>{n.d(t,{F:()=>g});var r=n(23481),a=n(20354),i=n(93563),o=n(87265),l=n(2267),c=n(16714),s=n(1666),u=n(69883),p=n(22902),d=n(37802);function y(){var e,t,n="function"==typeof Symbol?Symbol:{},r=n.iterator||"@@iterator",a=n.toStringTag||"@@toStringTag";function i(n,r,a,i){var c=r&&r.prototype instanceof l?r:l,s=Object.create(c.prototype);return m(s,"_invoke",function(n,r,a){var i,l,c,s=0,u=a||[],p=!1,d={p:0,n:0,v:e,a:y,f:y.bind(e,4),d:function(t,n){return i=t,l=0,c=e,d.n=n,o}};function y(n,r){for(l=n,c=r,t=0;!p&&s&&!a&&t<u.length;t++){var a,i=u[t],y=d.p,m=i[2];n>3?(a=m===r)&&(c=i[(l=i[4])?5:(l=3,3)],i[4]=i[5]=e):i[0]<=y&&((a=n<2&&y<i[1])?(l=0,d.v=r,d.n=i[1]):y<m&&(a=n<3||i[0]>r||r>m)&&(i[4]=n,i[5]=r,d.n=m,l=0))}if(a||n>1)return o;throw p=!0,r}return function(a,u,m){if(s>1)throw TypeError("Generator is already running");for(p&&1===u&&y(u,m),l=u,c=m;(t=l<2?e:c)||!p;){i||(l?l<3?(l>1&&(d.n=-1),y(l,c)):d.n=c:d.v=c);try{if(s=2,i){if(l||(a="next"),t=i[a]){if(!(t=t.call(i,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=i.return)&&t.call(i),l<2&&(c=TypeError("The iterator does not provide a '"+a+"' method"),l=1);i=e}else if((t=(p=d.n<0)?c:n.call(r,d))!==o)break}catch(t){i=e,l=1,c=t}finally{s=1}}return{value:t,done:p}}}(n,a,i),!0),s}var o={};function l(){}function c(){}function s(){}t=Object.getPrototypeOf;var u=[][r]?t(t([][r]())):(m(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,m(e,a,"GeneratorFunction")),e.prototype=Object.create(p),e}return c.prototype=s,m(p,"constructor",s),m(s,"constructor",c),c.displayName="GeneratorFunction",m(s,a,"GeneratorFunction"),m(p),m(p,a,"Generator"),m(p,r,function(){return this}),m(p,"toString",function(){return"[object Generator]"}),(y=function(){return{w:i,m:d}})()}function m(e,t,n,r){var a=Object.defineProperty;try{a({},"",{})}catch(e){a=0}m=function(e,t,n,r){if(t)a?a(e,t,{value:n,enumerable:!r,configurable:!r,writable:!r}):e[t]=n;else{var i=function(t,n){m(e,t,function(e){return this._invoke(t,n,e)})};i("next",0),i("throw",1),i("return",2)}},m(e,t,n,r)}var f=function(e,t,n,r){return new(n||(n=Promise))(function(a,i){function o(e){try{c(r.next(e))}catch(e){i(e)}}function l(e){try{c(r.throw(e))}catch(e){i(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(o,l)}c((r=r.apply(e,t||[])).next())})},v=r.T.encloseNamespace("sharev2.useMainShareData");function g(e){var t=(0,u.Z)(),n=(0,p.T)().hasPermissions,r=(0,d.r)(null),m=r.shareToGoogleClassroom,g=r.shareToMicrosoftTeams,h=r.isLoadingSettings,b=r.shareOverrideRestrictions,S=(0,o.s)({entityId:e.entityId,entityType:e.entityType}),E=S.currentUser,w=S.entity,k=S.privacy,T=S.share,C=S.config,I=(0,i._)({entityId:e.entityId}),P=I.loaded,x=I.updateShareLink,A=a.a.useBasicFetch(E.data&&s.h.yearGroups(E.data.customerId)),N=l.I.canEmbed(e.entityType),O=l.I.getEnabledIntegrations(m,g),j=n(c.C.ManageIntegrations),L=n(c.C.StudentExperience),G=n(c.C.ManageShareLinkSettings),F=T.data&&l.I.canAddPolicies(e.entityType),R=P&&!!T.data&&!!w.data&&!!k.data&&!!C.data&&!!E.data&&!!A&&!h;return{data:{share:T,loaded:R,entity:w,privacy:k,config:C,yearGroups:A,shareOverrideRestrictions:b,currentUser:E},canEmbed:N,integrations:O,hasStudentExp:L,canAccessSettings:F,hasManageShareLinkSettings:G,hasManageIntegrationsPermission:j,onClickSavePrivacy:function(n){return f(this,void 0,void 0,y().m(function r(){var a;return y().w(function(r){for(;;)switch(r.n){case 0:return r.p=0,r.n=1,x(T.data.shareId,{privacy:n});case 1:a=r.v,e.log({type:"update-share-link",share:a}),t.success(v("privaciesSuccess",{name:w.data.name,escapeText:!0})),r.n=3;break;case 2:r.p=2,r.v,t.error(v("privaciesError",{name:w.data.name,escapeText:!0}));case 3:return r.a(2)}},r,null,[[0,2]])}))}}}},89067:(e,t,n)=>{n.d(t,{r:()=>i});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 i(e){var t,n,i,o,l=(i=r.useState(null===(t=e.animate)||void 0===t||t),o=2,function(e){if(Array.isArray(e))return e}(i)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,o,l=[],c=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=i.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&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw a}}return l}}(i,o)||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}}(i,o)||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 y=u.view;return r.createElement(y,Object.assign({},d))}},57724:(e,t,n)=>{n.d(t,{g:()=>l});var r=n(32735),a=n(31453),i=n(83345),o="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(i.x,{phrase:"new",namespace:o}))}},84728:(e,t,n)=>{n.r(t),n.d(t,{ShareView:()=>ge});var r=n(32735),a=n(99706),i=n(87265),o=n(2267),l=n(23481),c=n(65858),s=n(51182),u=n(31121),p=n(9111),d=n(13876),y=l.T.encloseNamespace("sharev2.copyEmbed");function m(e){var t=(0,i.s)({entityId:e.entityId,entityType:e.entityType}),n=t.config,a=t.share,o=t.entity,l=(0,u.j)({data:{entity:{id:e.entityId,type:e.entityType}},analyticsOptions:{location:c.LZ.Popup,eventVersion:c.eq.V3}}).log,m=!!a.data&&!!n.data;return r.createElement(p.G,{title:y("title"),closePopup:e.closePopup,showLoadingSpinner:!m||e.loading,animation:e.animate},r.createElement("div",{className:"mb-3"},r.createElement(s.l,{analyticsOptions:{},entity:o.data,embedUrl:a.data.link.shortenedEmbedUrl,entityId:e.entityId,entityType:e.entityType,liteUrl:n.data.liteUrl,shareId:a.data.shareId,onCopy:function(e){l({type:"copy-embed-html",share:a.data,embedDetails:e})}})),r.createElement(d.u,null,r.createElement(d.u.Cancel,{variant:"link",onClick:e.goToShareLinkStep,text:y("back")})))}var f=n(93563),v=n(2102),g=n(83914),h=n(83345),b=n(69883);function S(){var e,t,n="function"==typeof Symbol?Symbol:{},r=n.iterator||"@@iterator",a=n.toStringTag||"@@toStringTag";function i(n,r,a,i){var c=r&&r.prototype instanceof l?r:l,s=Object.create(c.prototype);return E(s,"_invoke",function(n,r,a){var i,l,c,s=0,u=a||[],p=!1,d={p:0,n:0,v:e,a:y,f:y.bind(e,4),d:function(t,n){return i=t,l=0,c=e,d.n=n,o}};function y(n,r){for(l=n,c=r,t=0;!p&&s&&!a&&t<u.length;t++){var a,i=u[t],y=d.p,m=i[2];n>3?(a=m===r)&&(c=i[(l=i[4])?5:(l=3,3)],i[4]=i[5]=e):i[0]<=y&&((a=n<2&&y<i[1])?(l=0,d.v=r,d.n=i[1]):y<m&&(a=n<3||i[0]>r||r>m)&&(i[4]=n,i[5]=r,d.n=m,l=0))}if(a||n>1)return o;throw p=!0,r}return function(a,u,m){if(s>1)throw TypeError("Generator is already running");for(p&&1===u&&y(u,m),l=u,c=m;(t=l<2?e:c)||!p;){i||(l?l<3?(l>1&&(d.n=-1),y(l,c)):d.n=c:d.v=c);try{if(s=2,i){if(l||(a="next"),t=i[a]){if(!(t=t.call(i,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=i.return)&&t.call(i),l<2&&(c=TypeError("The iterator does not provide a '"+a+"' method"),l=1);i=e}else if((t=(p=d.n<0)?c:n.call(r,d))!==o)break}catch(t){i=e,l=1,c=t}finally{s=1}}return{value:t,done:p}}}(n,a,i),!0),s}var o={};function l(){}function c(){}function s(){}t=Object.getPrototypeOf;var u=[][r]?t(t([][r]())):(E(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,E(e,a,"GeneratorFunction")),e.prototype=Object.create(p),e}return c.prototype=s,E(p,"constructor",s),E(s,"constructor",c),c.displayName="GeneratorFunction",E(s,a,"GeneratorFunction"),E(p),E(p,a,"Generator"),E(p,r,function(){return this}),E(p,"toString",function(){return"[object Generator]"}),(S=function(){return{w:i,m:d}})()}function E(e,t,n,r){var a=Object.defineProperty;try{a({},"",{})}catch(e){a=0}E=function(e,t,n,r){if(t)a?a(e,t,{value:n,enumerable:!r,configurable:!r,writable:!r}):e[t]=n;else{var i=function(t,n){E(e,t,function(e){return this._invoke(t,n,e)})};i("next",0),i("throw",1),i("return",2)}},E(e,t,n,r)}function w(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 k=function(e,t,n,r){return new(n||(n=Promise))(function(a,i){function o(e){try{c(r.next(e))}catch(e){i(e)}}function l(e){try{c(r.throw(e))}catch(e){i(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(o,l)}c((r=r.apply(e,t||[])).next())})};function T(){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,i,o,l=[],c=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=i.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&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw a}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return w(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)?w(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.")}()),i=a[0],o=a[1];return{copiedText:i,copyToClipboard:(0,r.useCallback)(function(e){return k(n,void 0,void 0,S().m(function t(){var n;return S().w(function(t){for(;;)switch(t.n){case 0:return t.p=0,t.n=1,C(e);case 1:return o(e),t.a(2,!0);case 2:return t.p=2,n=t.v,console.warn("Copy failed",n),o(null),t.a(2,!1)}},t,null,[[0,2]])}))},[])}}function C(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 I=n(80783),P=n(35223),x=n(31453),A=n(15611),N=n(57724);const O={assignPrompt:"R73Xv",badge:"urP15"};var j="sharev2.assignPrompt",L=l.T.encloseNamespace(j);function G(e){return r.createElement(A.F,{appLink:e.appLink,className:(0,x.A)("d-flex flex-row gap-3 p-3 justify-content-between rounded-3 bg-white hover-bg-light-blue",O.assignPrompt)},r.createElement("div",{className:"d-flex flex-row gap-2 align-items-center fw-medium"},r.createElement(h.x,{namespace:j,phrase:"title"}),r.createElement(N.g,{size:"sm",text:L("badgeText"),className:O.badge})),r.createElement("div",null,r.createElement(g.x,{svgName:P.vn.ChevronRight})))}const F={input:"mc17h"};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="sharev2.createShare",D=l.T.encloseNamespace(B),U="https://clickv.ie/...";function _(e){var t,n,a=(0,b.Z)(),o=T().copyToClipboard,l=(0,u.j)({data:{entity:{id:e.entityId,type:e.entityType}},analyticsOptions:{location:c.LZ.Popup,eventVersion:c.eq.V3}}).log,s=(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,i,o,l=[],c=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=i.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&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw a}}return l}}(t,n)||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}}(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.")}()),d=s[0],y=s[1],m=(0,i.s)({entityId:e.entityId,entityType:e.entityType}),S=m.entity,E=m.share,w=m.currentUser,k=(0,f._)({entityId:e.entityId}),C=k.loaded,x=k.createShareLink;function A(t){var n;l({type:"create-share-link",share:t}),o(null===(n=t.link)||void 0===n?void 0:n.shortenedUrl).then(function(n){n?(l({type:"copy-share-link",share:t}),e.setShowCopiedText(!0),setTimeout(function(){return e.setShowCopiedText(!1)},3e3)):a.success(D("createSuccess",{name:S.data.name,escapeText:!0}))}),e.goToShareLinkStep()}r.useEffect(function(){E.data&&e.goToShareLinkStep()},[E.data]);var N=!!S.data&&!!E.hasCompleted&&C,O=I.z.hideAssignButton(w.data),j=O&&N?{popupContentClassName:"bg-transparent border-0",popupBodyClassName:"p-0",topContentClassName:"bg-white rounded-bottom-3 p-3 mb-3"}:null;return r.createElement(p.G,{title:D("title"),closePopup:e.closePopup,showLoadingSpinner:!N||e.loading,animation:e.animate,contentClassName:null==j?void 0:j.popupContentClassName,bodyClassName:null==j?void 0:j.popupBodyClassName},r.createElement("div",{className:null==j?void 0:j.topContentClassName},r.createElement("p",{className:"mb-2"},r.createElement(h.x,{namespace:B,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(F.input),spellCheck:!1,placeholder:U,readOnly:!0}),r.createElement(v.m,{variant:"dark",showSpinner:d,className:"text-nowrap d-flex align-items-center gap-1",onClick:function(){y(!0),x().then(A).catch(function(){a.error(D("createError",{name:S.data.name,escapeText:!0}))}).finally(function(){y(!1)})},spinnerText:D("buttonLoading")},r.createElement(g.x,{svgName:P.vn.Link}),r.createElement(h.x,{namespace:B,phrase:"button"})))),O&&e.assignFlowSelectorAppLink&&r.createElement(G,{appLink:e.assignFlowSelectorAppLink}))}var M=n(89701),V=n(25752),Z=n(66257);function $(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 q(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,i,o,l=[],c=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=i.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&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw a}}return l}}(t,n)||function(e,t){if(e){if("string"==typeof e)return $(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)?$(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.")}()),i=a[0],o=a[1];return r.createElement("div",{className:"d-flex justify-content-start align-items-start flex-column gap-2"},r.createElement(V.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(Z.k,{styling:"normal-v2",value:e.share.link.shortenedUrl,showCopiedText:e.showCopiedText,onCopy:function(){i||(o(!0),"function"==typeof e.onCopy&&e.onCopy())}}))}var z=n(41635),W=n(16862),H=n(11607),J="sharev2.sharePermanentLinkDelete";function X(e){return r.createElement("div",{className:"d-flex flex-row justify-content-between align-items-center"},r.createElement(H.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(g.x,{svgName:P.vn.Delete,size:g.S.Standard})),r.createElement(h.x,{namespace:J,phrase:"deleteLink"}))))}var Y="sharev2.sharePermanentLinkSetting";function K(e){return e.manageShareLinkSettings?r.createElement("div",{className:"d-flex flex-row justify-content-between align-items-center"},r.createElement(H.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(g.x,{svgName:P.vn.Cog,size:g.S.Standard})),r.createElement(h.x,{namespace:Y,phrase:"editSettings"})))):null}function Q(e){return r.createElement("div",{className:"d-flex flex-row justify-content-between gap-2"},r.createElement("div",null,e.canEmbed&&r.createElement(z.R,{onClickGetEmbedCode:e.onClickGetEmbedCode,minimal:!0}),e.canAccessSettings?r.createElement(K,{manageShareLinkSettings:e.hasManageShareLinkSettings,onClickEditSettings:e.goToSettingsStep}):r.createElement(X,{onClick:e.goToDeleteStep})),r.createElement("div",null,e.showIntegrations&&!!e.integrations.length&&r.createElement(W.T,{integrations:e.integrations,url:e.shareLink,closePopup:e.closePopup,hideLookingForIntegrations:!0})))}var ee=n(10628),te=n(28161),ne=l.T.encloseNamespace("sharev2.mainShareView");function re(e){var t,n=(0,u.j)({data:{entity:{id:e.entityId,type:e.entityType}},analyticsOptions:{eventVersion:c.eq.V3,location:c.LZ.Popup}}).log,a=(0,te.F)({entityId:e.entityId,entityType:e.entityType,log:n}),i=a.data,o=a.canEmbed,l=a.integrations,s=a.hasStudentExp,d=a.canAccessSettings,y=a.hasManageShareLinkSettings,m=a.hasManageIntegrationsPermission,f=a.onClickSavePrivacy,v=i.share,g=i.loaded,h=i.entity,b=i.privacy,S=i.yearGroups,E=i.shareOverrideRestrictions,w=i.currentUser,k=I.z.hideAssignButton(w.data),T=k&&g?{popupContentClassName:"bg-transparent border-0",popupBodyClassName:"p-0",topContentClassName:"bg-white rounded-bottom-3 p-3 mb-3"}:null,C=m?e.integrationSettingAppLink:e.messagePopupAppLink;return r.createElement(p.G,{animation:e.animate,title:ne("title"),closePopup:e.closePopup,showLoadingSpinner:!g||e.loading,contentClassName:null==T?void 0:T.popupContentClassName,bodyClassName:null==T?void 0:T.popupBodyClassName},r.createElement("div",{className:(0,x.A)("d-flex flex-column gap-2",null==T?void 0:T.topContentClassName)},r.createElement(q,{share:v.data,entity:h.data,privacy:b.data,yearGroups:S.data,entityType:e.entityType,hasStudentExp:s,showCopiedText:e.showCopiedText,shareOverrideRestrictions:E,onCopy:function(){n({type:"copy-share-link",share:v.data})},onClickSavePrivacy:f}),r.createElement(Q,{canEmbed:o,integrations:l,canAccessSettings:d,shareLink:null===(t=v.data)||void 0===t?void 0:t.link.shortenedUrl,showIntegrations:e.enableIntegrationBanner,hasManageShareLinkSettings:y,closePopup:e.closePopup,goToDeleteStep:e.goToDeleteStep,goToSettingsStep:e.goToSettingsStep,onClickGetEmbedCode:e.goToCopyEmbedStep}),e.enableIntegrationBanner&&!l.length&&r.createElement(ee.H,{normalText:!0,hideDismiss:!0,hideBackground:!0,appLink:C,closePopup:e.closePopup})),k&&e.assignFlowSelectorAppLink&&r.createElement(G,{appLink:e.assignFlowSelectorAppLink}))}var ae=n(81192),ie=n(2867),oe=l.T.encloseNamespace("sharev2.shareSettingsView");function le(e){var t=(0,u.j)({data:{entity:{id:e.entityId,type:e.entityType}},analyticsOptions:{location:c.LZ.Popup,eventVersion:c.eq.V3}}).log,n=(0,ie.W)({entityId:e.entityId,entityType:e.entityType,log:t}),a=n.initialValues,i=n.onClickSaveLink,l=o.I.getEnabledSettingsField(e.entityType),s=l.showImmediateFeedbackField,y=l.showPreventScrubbingField;return r.createElement(p.G,{title:oe("title"),showLoadingSpinner:e.loading,closePopup:e.closePopup,animation:e.animate},r.createElement(ae.Z,{initialValues:a,onSubmit:function(e,t){i({options:{immediateFeedback:e.immediateFeedback,preventScrubbing:e.preventScrubbing}},t)},onClickDelete:e.goToDeleteStep,showImmediateFeedbackField:s,showPreventScrubbingField:y}),r.createElement(d.u,{className:"mt-3"},r.createElement(d.u.Cancel,{onClick:e.goToShareLinkStep,text:oe("back"),variant:"link"})))}var ce=n(89067);function se(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,i,o,l=[],c=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=i.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&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw a}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return ue(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)?ue(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 ue(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 pe(e){var t=(0,i.s)({entityId:e.entityId,entityType:e.entityType}).share,n=se(r.useState(!0),2),a=n[0],l=n[1],c=se(r.useState(t.data?"share-link":"create-link"),2),s=c[0],u=c[1],p=se(r.useState(!1),2),d=p[0],y=p[1],f=o.I.canAddPolicies(e.entityType);function v(e){l(!1),u(e)}var g={entityId:e.entityId,entityType:e.entityType,showCopiedText:d,messagePopupAppLink:e.messagePopupAppLink,enableIntegrationBanner:e.enableIntegrationBanner,integrationSettingAppLink:e.integrationSettingAppLink,assignFlowSelectorAppLink:e.assignFlowSelectorAppLink,goToShareLinkStep:function(){return v("share-link")},goToDeleteStep:function(){return v("delete-confirmation")},goToCopyEmbedStep:function(){return v("copy-embed")},goToSettingsStep:function(){v(f?"link-settings":"share-link")},closePopup:e.closePopup,setShowCopiedText:y};return r.createElement(ce.r,{step:s,animate:a,setStep:v,loading:!t.hasCompleted,closePopup:e.closePopup,data:g,steps:{"create-link":{view:_},"share-link":{view:re},"link-settings":{view:le},"copy-embed":{view:m},"delete-confirmation":{view:M.DeleteShareLinkConfirmationView}}})}var de=n(37802),ye=n(99742),me=n(14070),fe=n(97291),ve=n(40254);function ge(e){var t=(0,de.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:ye.W.EmptyStates.TYPEAHEAD_RESULTS,errorStateImageUrl:ye.W.TYPEAHEAD_ERROR,messagePopupAppLink:{application:fe.O.DEFAULT,action:me.e.Default.INTEGRATIONS_INFO},integrationSettingAppLink:{application:fe.O.SETTINGS,action:me.e.Settings.INTEGRATIONS},enableIntegrationBanner:e.enableIntegrationBanner});var i="series"===e.entityType?ve.W.existingClassroom({entityType:"series",objectId:e.entityId}):ve.W.flowSelector({entityType:e.entityType,objectId:e.entityId});return r.createElement(pe,{entityId:e.entityId,entityType:e.entityType,closePopup:e.closePopup,messagePopupAppLink:{application:fe.O.DEFAULT,action:me.e.Default.INTEGRATIONS_INFO},integrationSettingAppLink:{application:fe.O.SETTINGS,action:me.e.Settings.INTEGRATIONS},enableIntegrationBanner:e.enableIntegrationBanner,assignFlowSelectorAppLink:i})}}}]);
|
|
3
|
-
//# sourceMappingURL=3811-
|
|
1
|
+
/*! For license information please see 3811-b39bb39668-lite.chunk.js.LICENSE.txt */
|
|
2
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[3811,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),i=n(89965),o=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,i,o,l=[],c=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=i.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&&(o=n.return(),Object(o)!==o))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(i.X,{id:"ack",checked:u,onChange:function(e){return p(e.target.checked)},label:e.phrases.acknowledgement}),r.createElement(o.u,null,e.onBack&&r.createElement(o.u.Cancel,{onClick:e.onBack,text:null!==(t=e.phrases.backButton)&&void 0!==t?t:c("backButton"),variant:"link"}),r.createElement(o.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),i=n(8233),o=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(o.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=i.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(o.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],i=a.title,o=a.description;if((0,a.predicate)())return r.createElement(u,{key:t,sharePrivacy:t,activePrivacy:e.sharePrivacy,title:i,description:o,onClick:e.onClickSavePrivacy})}))):r.createElement("div",{className:"d-flex align-items-center"},r.createElement(o.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),i=n(33518),o=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=o.R.getShareLinkAccessType(e.entityPrivacy),n=o.R.getRespectRatingText(e.entity,e.yearGroups,e.hasStudentExp);return s(s(s(s(s(s(s(s({},i.e.JustMySchool,{title:u("respectRatings"),description:n,predicate:function(){return"protected"!==t}}),i.e.Protected,{title:u("respectRatings"),description:n,predicate:function(){return"protected"===t}}),i.e.JustMySchoolOverrideRestriction,{title:u("justMySchool"),description:u("justMySchoolDescription"),predicate:function(){return"protected"!==t}}),i.e.ProtectedOverrideRestriction,{title:u("justMySchool"),description:u("clickViewOnly"),predicate:function(){return"protected"===t}}),i.e.Public,{title:u("public"),description:u("publicDescription"),predicate:function(){return"owner"===t}}),i.e.Direct,{title:"",description:"",predicate:function(){return!1}}),i.e.PasswordProtected,{title:u("passwordProtectedTitle"),description:u("passwordProtectedDescription"),predicate:function(){return e._showPasswordProtected}}),i.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,i,o,l=[],c=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=i.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&&(o=n.return(),Object(o)!==o))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),i=n(23481),o=n(65858),l=n(29923),c=n(93563),s=n(87265),u=n(31121),p=n(9111),d=n(69883);function y(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var m=i.T.encloseNamespace("sharev2.deleteShareLinkConfirmation");function f(e){var t,n,i=(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,i,o,l=[],c=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=i.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&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw a}}return l}}(t,n)||function(e,t){if(e){if("string"==typeof e)return y(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)?y(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.")}()),v=f[0],g=f[1],h=(0,s.s)({entityId:e.entityId,entityType:e.entityType}),b=h.share,S=h.entity,E=(0,c._)({entityId:e.entityId}).deleteShareLink,w=(0,u.j)({data:{entity:{id:e.entityId,type:e.entityType}},analyticsOptions:{location:o.LZ.Popup,eventVersion:o.eq.V3}}).log,k=!!b.data&&!!S.data;return r.createElement(p.G,{title:m("title"),closePopup:e.closePopup,showLoadingSpinner:!k||e.loading,animation:e.animate},r.createElement(l.F,{loading:v,phrases:{leadingSentence:m("intro"),bulletPoints:[m("loseAccessInfo"),m("loseAccessUsage")],acknowledgement:m("acknowledgement"),backButton:m("back"),deleteButton:m("delete")},onDelete:function(){var t;g(!0),E(null===(t=b.data)||void 0===t?void 0:t.shareId).then(function(){w({type:"delete-share-link",share:b.data}),g(!1),i.success(m("deleteSuccess")),e.closePopup(),e.previousAppLink&&a.C$.trigger(e.previousAppLink)}).catch(function(){i.error(m("deleteFailed",{name:S.data.name,escapeText:!0}))}).finally(function(){g(!1)})},onBack:e.goToSettingsStep?e.goToSettingsStep:void 0}))}},28161:(e,t,n)=>{n.d(t,{F:()=>g});var r=n(23481),a=n(20354),i=n(93563),o=n(87265),l=n(2267),c=n(16714),s=n(1666),u=n(69883),p=n(22902),d=n(37802);function y(){var e,t,n="function"==typeof Symbol?Symbol:{},r=n.iterator||"@@iterator",a=n.toStringTag||"@@toStringTag";function i(n,r,a,i){var c=r&&r.prototype instanceof l?r:l,s=Object.create(c.prototype);return m(s,"_invoke",function(n,r,a){var i,l,c,s=0,u=a||[],p=!1,d={p:0,n:0,v:e,a:y,f:y.bind(e,4),d:function(t,n){return i=t,l=0,c=e,d.n=n,o}};function y(n,r){for(l=n,c=r,t=0;!p&&s&&!a&&t<u.length;t++){var a,i=u[t],y=d.p,m=i[2];n>3?(a=m===r)&&(c=i[(l=i[4])?5:(l=3,3)],i[4]=i[5]=e):i[0]<=y&&((a=n<2&&y<i[1])?(l=0,d.v=r,d.n=i[1]):y<m&&(a=n<3||i[0]>r||r>m)&&(i[4]=n,i[5]=r,d.n=m,l=0))}if(a||n>1)return o;throw p=!0,r}return function(a,u,m){if(s>1)throw TypeError("Generator is already running");for(p&&1===u&&y(u,m),l=u,c=m;(t=l<2?e:c)||!p;){i||(l?l<3?(l>1&&(d.n=-1),y(l,c)):d.n=c:d.v=c);try{if(s=2,i){if(l||(a="next"),t=i[a]){if(!(t=t.call(i,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=i.return)&&t.call(i),l<2&&(c=TypeError("The iterator does not provide a '"+a+"' method"),l=1);i=e}else if((t=(p=d.n<0)?c:n.call(r,d))!==o)break}catch(t){i=e,l=1,c=t}finally{s=1}}return{value:t,done:p}}}(n,a,i),!0),s}var o={};function l(){}function c(){}function s(){}t=Object.getPrototypeOf;var u=[][r]?t(t([][r]())):(m(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,m(e,a,"GeneratorFunction")),e.prototype=Object.create(p),e}return c.prototype=s,m(p,"constructor",s),m(s,"constructor",c),c.displayName="GeneratorFunction",m(s,a,"GeneratorFunction"),m(p),m(p,a,"Generator"),m(p,r,function(){return this}),m(p,"toString",function(){return"[object Generator]"}),(y=function(){return{w:i,m:d}})()}function m(e,t,n,r){var a=Object.defineProperty;try{a({},"",{})}catch(e){a=0}m=function(e,t,n,r){if(t)a?a(e,t,{value:n,enumerable:!r,configurable:!r,writable:!r}):e[t]=n;else{var i=function(t,n){m(e,t,function(e){return this._invoke(t,n,e)})};i("next",0),i("throw",1),i("return",2)}},m(e,t,n,r)}var f=function(e,t,n,r){return new(n||(n=Promise))(function(a,i){function o(e){try{c(r.next(e))}catch(e){i(e)}}function l(e){try{c(r.throw(e))}catch(e){i(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(o,l)}c((r=r.apply(e,t||[])).next())})},v=r.T.encloseNamespace("sharev2.useMainShareData");function g(e){var t=(0,u.Z)(),n=(0,p.T)().hasPermissions,r=(0,d.r)(null),m=r.shareToGoogleClassroom,g=r.shareToMicrosoftTeams,h=r.isLoadingSettings,b=r.shareOverrideRestrictions,S=(0,o.s)({entityId:e.entityId,entityType:e.entityType}),E=S.currentUser,w=S.entity,k=S.privacy,T=S.share,C=S.config,I=(0,i._)({entityId:e.entityId}),P=I.loaded,x=I.updateShareLink,A=a.a.useBasicFetch(E.data&&s.h.yearGroups(E.data.customerId)),N=l.I.canEmbed(e.entityType),O=l.I.getEnabledIntegrations(m,g),j=n(c.C.ManageIntegrations),L=n(c.C.StudentExperience),G=n(c.C.ManageShareLinkSettings),F=T.data&&l.I.canAddPolicies(e.entityType),R=P&&!!T.data&&!!w.data&&!!k.data&&!!C.data&&!!E.data&&!!A&&!h;return{data:{share:T,loaded:R,entity:w,privacy:k,config:C,yearGroups:A,shareOverrideRestrictions:b,currentUser:E},canEmbed:N,integrations:O,hasStudentExp:L,canAccessSettings:F,hasManageShareLinkSettings:G,hasManageIntegrationsPermission:j,onClickSavePrivacy:function(n){return f(this,void 0,void 0,y().m(function r(){var a;return y().w(function(r){for(;;)switch(r.n){case 0:return r.p=0,r.n=1,x(T.data.shareId,{privacy:n});case 1:a=r.v,e.log({type:"update-share-link",share:a}),t.success(v("privaciesSuccess",{name:w.data.name,escapeText:!0})),r.n=3;break;case 2:r.p=2,r.v,t.error(v("privaciesError",{name:w.data.name,escapeText:!0}));case 3:return r.a(2)}},r,null,[[0,2]])}))}}}},89067:(e,t,n)=>{n.d(t,{r:()=>i});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 i(e){var t,n,i,o,l=(i=r.useState(null===(t=e.animate)||void 0===t||t),o=2,function(e){if(Array.isArray(e))return e}(i)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,o,l=[],c=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=i.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&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw a}}return l}}(i,o)||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}}(i,o)||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 y=u.view;return r.createElement(y,Object.assign({},d))}},57724:(e,t,n)=>{n.d(t,{g:()=>l});var r=n(32735),a=n(31453),i=n(83345),o="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(i.x,{phrase:"new",namespace:o}))}},84728:(e,t,n)=>{n.r(t),n.d(t,{ShareView:()=>ge});var r=n(32735),a=n(99706),i=n(87265),o=n(2267),l=n(23481),c=n(65858),s=n(51182),u=n(31121),p=n(9111),d=n(13876),y=l.T.encloseNamespace("sharev2.copyEmbed");function m(e){var t=(0,i.s)({entityId:e.entityId,entityType:e.entityType}),n=t.config,a=t.share,o=t.entity,l=(0,u.j)({data:{entity:{id:e.entityId,type:e.entityType}},analyticsOptions:{location:c.LZ.Popup,eventVersion:c.eq.V3}}).log,m=!!a.data&&!!n.data;return r.createElement(p.G,{title:y("title"),closePopup:e.closePopup,showLoadingSpinner:!m||e.loading,animation:e.animate},r.createElement("div",{className:"mb-3"},r.createElement(s.l,{analyticsOptions:{},entity:o.data,embedUrl:a.data.link.shortenedEmbedUrl,entityId:e.entityId,entityType:e.entityType,liteUrl:n.data.liteUrl,shareId:a.data.shareId,onCopy:function(e){l({type:"copy-embed-html",share:a.data,embedDetails:e})}})),r.createElement(d.u,null,r.createElement(d.u.Cancel,{variant:"link",onClick:e.goToShareLinkStep,text:y("back")})))}var f=n(93563),v=n(2102),g=n(83914),h=n(83345),b=n(69883);function S(){var e,t,n="function"==typeof Symbol?Symbol:{},r=n.iterator||"@@iterator",a=n.toStringTag||"@@toStringTag";function i(n,r,a,i){var c=r&&r.prototype instanceof l?r:l,s=Object.create(c.prototype);return E(s,"_invoke",function(n,r,a){var i,l,c,s=0,u=a||[],p=!1,d={p:0,n:0,v:e,a:y,f:y.bind(e,4),d:function(t,n){return i=t,l=0,c=e,d.n=n,o}};function y(n,r){for(l=n,c=r,t=0;!p&&s&&!a&&t<u.length;t++){var a,i=u[t],y=d.p,m=i[2];n>3?(a=m===r)&&(c=i[(l=i[4])?5:(l=3,3)],i[4]=i[5]=e):i[0]<=y&&((a=n<2&&y<i[1])?(l=0,d.v=r,d.n=i[1]):y<m&&(a=n<3||i[0]>r||r>m)&&(i[4]=n,i[5]=r,d.n=m,l=0))}if(a||n>1)return o;throw p=!0,r}return function(a,u,m){if(s>1)throw TypeError("Generator is already running");for(p&&1===u&&y(u,m),l=u,c=m;(t=l<2?e:c)||!p;){i||(l?l<3?(l>1&&(d.n=-1),y(l,c)):d.n=c:d.v=c);try{if(s=2,i){if(l||(a="next"),t=i[a]){if(!(t=t.call(i,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=i.return)&&t.call(i),l<2&&(c=TypeError("The iterator does not provide a '"+a+"' method"),l=1);i=e}else if((t=(p=d.n<0)?c:n.call(r,d))!==o)break}catch(t){i=e,l=1,c=t}finally{s=1}}return{value:t,done:p}}}(n,a,i),!0),s}var o={};function l(){}function c(){}function s(){}t=Object.getPrototypeOf;var u=[][r]?t(t([][r]())):(E(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,E(e,a,"GeneratorFunction")),e.prototype=Object.create(p),e}return c.prototype=s,E(p,"constructor",s),E(s,"constructor",c),c.displayName="GeneratorFunction",E(s,a,"GeneratorFunction"),E(p),E(p,a,"Generator"),E(p,r,function(){return this}),E(p,"toString",function(){return"[object Generator]"}),(S=function(){return{w:i,m:d}})()}function E(e,t,n,r){var a=Object.defineProperty;try{a({},"",{})}catch(e){a=0}E=function(e,t,n,r){if(t)a?a(e,t,{value:n,enumerable:!r,configurable:!r,writable:!r}):e[t]=n;else{var i=function(t,n){E(e,t,function(e){return this._invoke(t,n,e)})};i("next",0),i("throw",1),i("return",2)}},E(e,t,n,r)}function w(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 k=function(e,t,n,r){return new(n||(n=Promise))(function(a,i){function o(e){try{c(r.next(e))}catch(e){i(e)}}function l(e){try{c(r.throw(e))}catch(e){i(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(o,l)}c((r=r.apply(e,t||[])).next())})};function T(){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,i,o,l=[],c=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=i.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&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw a}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return w(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)?w(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.")}()),i=a[0],o=a[1];return{copiedText:i,copyToClipboard:(0,r.useCallback)(function(e){return k(n,void 0,void 0,S().m(function t(){var n;return S().w(function(t){for(;;)switch(t.n){case 0:return t.p=0,t.n=1,C(e);case 1:return o(e),t.a(2,!0);case 2:return t.p=2,n=t.v,console.warn("Copy failed",n),o(null),t.a(2,!1)}},t,null,[[0,2]])}))},[])}}function C(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 I=n(80783),P=n(35223),x=n(31453),A=n(15611),N=n(57724);const O={assignPrompt:"R73Xv",badge:"urP15"};var j="sharev2.assignPrompt",L=l.T.encloseNamespace(j);function G(e){return r.createElement(A.F,{appLink:e.appLink,className:(0,x.A)("d-flex flex-row gap-3 p-3 justify-content-between rounded-3 bg-white hover-bg-light-blue",O.assignPrompt)},r.createElement("div",{className:"d-flex flex-row gap-2 align-items-center fw-medium"},r.createElement(h.x,{namespace:j,phrase:"title"}),r.createElement(N.g,{size:"sm",text:L("badgeText"),className:O.badge})),r.createElement("div",null,r.createElement(g.x,{svgName:P.vn.ChevronRight})))}const F={input:"mc17h"};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="sharev2.createShare",D=l.T.encloseNamespace(B),U="https://clickv.ie/...";function _(e){var t,n,a=(0,b.Z)(),o=T().copyToClipboard,l=(0,u.j)({data:{entity:{id:e.entityId,type:e.entityType}},analyticsOptions:{location:c.LZ.Popup,eventVersion:c.eq.V4}}).log,s=(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,i,o,l=[],c=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=i.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&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw a}}return l}}(t,n)||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}}(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.")}()),d=s[0],y=s[1],m=(0,i.s)({entityId:e.entityId,entityType:e.entityType}),S=m.entity,E=m.share,w=m.currentUser,k=(0,f._)({entityId:e.entityId}),C=k.loaded,x=k.createShareLink;function A(t){var n;l({type:"create-share-link",share:t}),o(null===(n=t.link)||void 0===n?void 0:n.shortenedUrl).then(function(n){n?(l({type:"copy-share-link",share:t}),e.setShowCopiedText(!0),setTimeout(function(){return e.setShowCopiedText(!1)},3e3)):a.success(D("createSuccess",{name:S.data.name,escapeText:!0}))}),e.goToShareLinkStep()}r.useEffect(function(){E.data&&e.goToShareLinkStep()},[E.data]);var N=!!S.data&&!!E.hasCompleted&&C,O=I.z.hideAssignButton(w.data),j=O&&N?{popupContentClassName:"bg-transparent border-0",popupBodyClassName:"p-0",topContentClassName:"bg-white rounded-bottom-3 p-3 mb-3"}:null;return r.createElement(p.G,{title:D("title"),closePopup:e.closePopup,showLoadingSpinner:!N||e.loading,animation:e.animate,contentClassName:null==j?void 0:j.popupContentClassName,bodyClassName:null==j?void 0:j.popupBodyClassName},r.createElement("div",{className:null==j?void 0:j.topContentClassName},r.createElement("p",{className:"mb-2"},r.createElement(h.x,{namespace:B,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(F.input),spellCheck:!1,placeholder:U,readOnly:!0}),r.createElement(v.m,{variant:"dark",showSpinner:d,className:"text-nowrap d-flex align-items-center gap-1",onClick:function(){y(!0),x().then(A).catch(function(){a.error(D("createError",{name:S.data.name,escapeText:!0}))}).finally(function(){y(!1)})},spinnerText:D("buttonLoading")},r.createElement(g.x,{svgName:P.vn.Link}),r.createElement(h.x,{namespace:B,phrase:"button"})))),O&&e.assignFlowSelectorAppLink&&r.createElement(G,{appLink:e.assignFlowSelectorAppLink}))}var M=n(89701),V=n(25752),Z=n(66257);function $(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 q(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,i,o,l=[],c=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=i.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&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw a}}return l}}(t,n)||function(e,t){if(e){if("string"==typeof e)return $(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)?$(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.")}()),i=a[0],o=a[1];return r.createElement("div",{className:"d-flex justify-content-start align-items-start flex-column gap-2"},r.createElement(V.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(Z.k,{styling:"normal-v2",value:e.share.link.shortenedUrl,showCopiedText:e.showCopiedText,onCopy:function(){i||(o(!0),"function"==typeof e.onCopy&&e.onCopy())}}))}var z=n(41635),W=n(16862),H=n(11607),J="sharev2.sharePermanentLinkDelete";function X(e){return r.createElement("div",{className:"d-flex flex-row justify-content-between align-items-center"},r.createElement(H.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(g.x,{svgName:P.vn.Delete,size:g.S.Standard})),r.createElement(h.x,{namespace:J,phrase:"deleteLink"}))))}var Y="sharev2.sharePermanentLinkSetting";function K(e){return e.manageShareLinkSettings?r.createElement("div",{className:"d-flex flex-row justify-content-between align-items-center"},r.createElement(H.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(g.x,{svgName:P.vn.Cog,size:g.S.Standard})),r.createElement(h.x,{namespace:Y,phrase:"editSettings"})))):null}function Q(e){return r.createElement("div",{className:"d-flex flex-row justify-content-between gap-2"},r.createElement("div",null,e.canEmbed&&r.createElement(z.R,{onClickGetEmbedCode:e.onClickGetEmbedCode,minimal:!0}),e.canAccessSettings?r.createElement(K,{manageShareLinkSettings:e.hasManageShareLinkSettings,onClickEditSettings:e.goToSettingsStep}):r.createElement(X,{onClick:e.goToDeleteStep})),r.createElement("div",null,e.showIntegrations&&!!e.integrations.length&&r.createElement(W.T,{integrations:e.integrations,url:e.shareLink,closePopup:e.closePopup,hideLookingForIntegrations:!0})))}var ee=n(10628),te=n(28161),ne=l.T.encloseNamespace("sharev2.mainShareView");function re(e){var t,n=(0,u.j)({data:{entity:{id:e.entityId,type:e.entityType}},analyticsOptions:{eventVersion:c.eq.V3,location:c.LZ.Popup}}).log,a=(0,te.F)({entityId:e.entityId,entityType:e.entityType,log:n}),i=a.data,o=a.canEmbed,l=a.integrations,s=a.hasStudentExp,d=a.canAccessSettings,y=a.hasManageShareLinkSettings,m=a.hasManageIntegrationsPermission,f=a.onClickSavePrivacy,v=i.share,g=i.loaded,h=i.entity,b=i.privacy,S=i.yearGroups,E=i.shareOverrideRestrictions,w=i.currentUser,k=I.z.hideAssignButton(w.data),T=k&&g?{popupContentClassName:"bg-transparent border-0",popupBodyClassName:"p-0",topContentClassName:"bg-white rounded-bottom-3 p-3 mb-3"}:null,C=m?e.integrationSettingAppLink:e.messagePopupAppLink;return r.createElement(p.G,{animation:e.animate,title:ne("title"),closePopup:e.closePopup,showLoadingSpinner:!g||e.loading,contentClassName:null==T?void 0:T.popupContentClassName,bodyClassName:null==T?void 0:T.popupBodyClassName},r.createElement("div",{className:(0,x.A)("d-flex flex-column gap-2",null==T?void 0:T.topContentClassName)},r.createElement(q,{share:v.data,entity:h.data,privacy:b.data,yearGroups:S.data,entityType:e.entityType,hasStudentExp:s,showCopiedText:e.showCopiedText,shareOverrideRestrictions:E,onCopy:function(){n({type:"copy-share-link",share:v.data})},onClickSavePrivacy:f}),r.createElement(Q,{canEmbed:o,integrations:l,canAccessSettings:d,shareLink:null===(t=v.data)||void 0===t?void 0:t.link.shortenedUrl,showIntegrations:e.enableIntegrationBanner,hasManageShareLinkSettings:y,closePopup:e.closePopup,goToDeleteStep:e.goToDeleteStep,goToSettingsStep:e.goToSettingsStep,onClickGetEmbedCode:e.goToCopyEmbedStep}),e.enableIntegrationBanner&&!l.length&&r.createElement(ee.H,{normalText:!0,hideDismiss:!0,hideBackground:!0,appLink:C,closePopup:e.closePopup})),k&&e.assignFlowSelectorAppLink&&r.createElement(G,{appLink:e.assignFlowSelectorAppLink}))}var ae=n(81192),ie=n(2867),oe=l.T.encloseNamespace("sharev2.shareSettingsView");function le(e){var t=(0,u.j)({data:{entity:{id:e.entityId,type:e.entityType}},analyticsOptions:{location:c.LZ.Popup,eventVersion:c.eq.V3}}).log,n=(0,ie.W)({entityId:e.entityId,entityType:e.entityType,log:t}),a=n.initialValues,i=n.onClickSaveLink,l=o.I.getEnabledSettingsField(e.entityType),s=l.showImmediateFeedbackField,y=l.showPreventScrubbingField;return r.createElement(p.G,{title:oe("title"),showLoadingSpinner:e.loading,closePopup:e.closePopup,animation:e.animate},r.createElement(ae.Z,{initialValues:a,onSubmit:function(e,t){i({options:{immediateFeedback:e.immediateFeedback,preventScrubbing:e.preventScrubbing}},t)},onClickDelete:e.goToDeleteStep,showImmediateFeedbackField:s,showPreventScrubbingField:y}),r.createElement(d.u,{className:"mt-3"},r.createElement(d.u.Cancel,{onClick:e.goToShareLinkStep,text:oe("back"),variant:"link"})))}var ce=n(89067);function se(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,i,o,l=[],c=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=i.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&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw a}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return ue(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)?ue(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 ue(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 pe(e){var t=(0,i.s)({entityId:e.entityId,entityType:e.entityType}).share,n=se(r.useState(!0),2),a=n[0],l=n[1],c=se(r.useState(t.data?"share-link":"create-link"),2),s=c[0],u=c[1],p=se(r.useState(!1),2),d=p[0],y=p[1],f=o.I.canAddPolicies(e.entityType);function v(e){l(!1),u(e)}var g={entityId:e.entityId,entityType:e.entityType,showCopiedText:d,messagePopupAppLink:e.messagePopupAppLink,enableIntegrationBanner:e.enableIntegrationBanner,integrationSettingAppLink:e.integrationSettingAppLink,assignFlowSelectorAppLink:e.assignFlowSelectorAppLink,goToShareLinkStep:function(){return v("share-link")},goToDeleteStep:function(){return v("delete-confirmation")},goToCopyEmbedStep:function(){return v("copy-embed")},goToSettingsStep:function(){v(f?"link-settings":"share-link")},closePopup:e.closePopup,setShowCopiedText:y};return r.createElement(ce.r,{step:s,animate:a,setStep:v,loading:!t.hasCompleted,closePopup:e.closePopup,data:g,steps:{"create-link":{view:_},"share-link":{view:re},"link-settings":{view:le},"copy-embed":{view:m},"delete-confirmation":{view:M.DeleteShareLinkConfirmationView}}})}var de=n(37802),ye=n(99742),me=n(14070),fe=n(97291),ve=n(40254);function ge(e){var t=(0,de.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:ye.W.EmptyStates.TYPEAHEAD_RESULTS,errorStateImageUrl:ye.W.TYPEAHEAD_ERROR,messagePopupAppLink:{application:fe.O.DEFAULT,action:me.e.Default.INTEGRATIONS_INFO},integrationSettingAppLink:{application:fe.O.SETTINGS,action:me.e.Settings.INTEGRATIONS},enableIntegrationBanner:e.enableIntegrationBanner});var i="series"===e.entityType?ve.W.existingClassroom({entityType:"series",objectId:e.entityId}):ve.W.flowSelector({entityType:e.entityType,objectId:e.entityId});return r.createElement(pe,{entityId:e.entityId,entityType:e.entityType,closePopup:e.closePopup,messagePopupAppLink:{application:fe.O.DEFAULT,action:me.e.Default.INTEGRATIONS_INFO},integrationSettingAppLink:{application:fe.O.SETTINGS,action:me.e.Settings.INTEGRATIONS},enableIntegrationBanner:e.enableIntegrationBanner,assignFlowSelectorAppLink:i})}}}]);
|
|
3
|
+
//# sourceMappingURL=3811-b39bb39668-lite.chunk.js.map
|
package/dist/scripts/{3811-133acc9140-lite.chunk.js.map → 3811-b39bb39668-lite.chunk.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scripts/3811-133acc9140-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/apps/share-v2/components/delete-share-content/DeleteShareContent.tsx","file:///app/packages/libs/shared/src/apps/share-v2/components/share-link-privacy/share-link-privacy.scss","file:///app/packages/libs/shared/src/apps/share-v2/components/share-link-privacy/ShareLinkPrivacy.tsx","file:///app/packages/libs/shared/src/apps/share-v2/utils/get-share-privacy-config/getSharePrivacyConfig.ts","file:///app/packages/libs/shared/src/apps/share-v2/views/delete-share-link-confirmation-view/DeleteShareLinkConfirmationView.tsx","file:///app/packages/libs/shared/src/apps/share-v2/views/main-share-view/hooks/use-main-share-data/useMainShareData.ts","file:///app/packages/libs/shared/src/components/multistep-popup/MultiStepPopup.tsx","file:///app/packages/libs/shared/src/components/new-badge/NewBadge.tsx","file:///app/packages/libs/shared/src/apps/share-v2/views/copy-embed-view/CopyEmbedView.tsx","file:///app/packages/libs/shared/src/hooks/useCopyToClipboard.ts","file:///app/packages/libs/shared/src/apps/share-v2/components/assign-prompt/assign-prompt.scss","file:///app/packages/libs/shared/src/apps/share-v2/components/assign-prompt/AssignPrompt.tsx","file:///app/packages/libs/shared/src/apps/share-v2/views/create-share-view/create-share.scss","file:///app/packages/libs/shared/src/apps/share-v2/views/create-share-view/CreateShareView.tsx","file:///app/packages/libs/shared/src/apps/share-v2/components/share-permanent-link/SharePermanentLink.tsx","file:///app/packages/libs/shared/src/apps/share-v2/components/share-permanent-link-delete/SharePermanentLinkDelete.tsx","file:///app/packages/libs/shared/src/apps/share-v2/components/share-permanent-link-setting/SharePermanentLinkSetting.tsx","file:///app/packages/libs/shared/src/apps/share-v2/components/share-permanent-link-actions/SharePermanentLinkActions.tsx","file:///app/packages/libs/shared/src/apps/share-v2/views/main-share-view/MainShareView.tsx","file:///app/packages/libs/shared/src/apps/share-v2/views/share-settings-view/ShareSettingsView.tsx","file:///app/packages/libs/shared/src/apps/share-v2/views/share-view/ShareView.tsx","file:///app/packages/projects/lite/src/apps/share/views/share-view/ShareView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { Checkbox } from 'libs/shared/components/forms/form-checkbox/Checkbox';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\n\nconst namespace = 'sharev2.deleteShareContent';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport interface DeleteShareContentProps {\n loading: boolean;\n phrases: {\n leadingSentence: string;\n bulletPoints: string[];\n acknowledgement: string;\n deleteButton: string;\n backButton?: string;\n };\n onDelete: () => void;\n onBack?: () => void;\n}\n\nexport function DeleteShareContent(props: DeleteShareContentProps) {\n const [ ack, setAck ] = React.useState(false);\n\n function onDelete() {\n if (!ack || props.loading)\n return;\n\n props.onDelete();\n }\n\n return (\n <div className='d-flex flex-column gap-3'>\n <p className='m-0'>{props.phrases.leadingSentence}</p>\n <ul className='m-0'>\n {props.phrases.bulletPoints.map((phrase, index) => (\n <li key={index}>\n {phrase}\n </li>\n ))}\n </ul>\n <Checkbox\n id='ack'\n checked={ack}\n onChange={e => setAck(e.target.checked)}\n label={props.phrases.acknowledgement}\n />\n <PopupButtons>\n {props.onBack && (\n <PopupButtons.Cancel\n onClick={props.onBack}\n text={props.phrases.backButton ?? getPhrase('backButton')}\n variant='link'\n />\n )}\n <PopupButtons.Submit\n onClick={onDelete}\n text={props.phrases.deleteButton}\n variant='danger'\n disabled={!ack || props.loading}\n showSpinner={props.loading}\n />\n </PopupButtons>\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"active\":\"NV2KW\"};","import React from 'react';\n\nimport { SharePrivacy } from 'libs/shared/apps/share-v2/enums/SharePrivacy';\nimport { type SharePrivacyResponse } from 'libs/shared/apps/share-v2/interfaces/SharePrivacyResponse';\nimport { ShareLinkHelper } from 'libs/shared/apps/share-v2/utils/ShareLinkHelper';\nimport { type SharableEntity } from 'libs/shared/apps/share-v2/utils/ShareViewHelper';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport type { YearGroup } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { getSharePrivacyConfig } from '../../utils/get-share-privacy-config/getSharePrivacyConfig';\n\nimport styles from './share-link-privacy.scss';\n\ninterface SharePrivacyItemProps {\n title: string;\n activePrivacy: SharePrivacy;\n description: string;\n sharePrivacy: SharePrivacy;\n onClick: (sharePrivacy: SharePrivacy) => void\n}\n\nfunction SharePrivacyItem(props: SharePrivacyItemProps) {\n const active = props.activePrivacy === props.sharePrivacy;\n\n function onClick() {\n if (active)\n return;\n\n props.onClick(props.sharePrivacy);\n }\n\n return (\n <li>\n <button\n className={`${active ? styles.active : ''} dropdown-item d-flex align-items-center justify-content-between py-2`}\n onClick={onClick}\n >\n <div className='me-4'>\n <p className='font-label mb-1'>{props.title}</p>\n <p className='font-size-sm mb-0'>{props.description}</p>\n </div>\n {active && <SvgContainer svgName={cvSvgLibrary.Check} />}\n </button>\n </li>\n );\n}\n\ninterface ShareLinkPrivacyProps {\n hasStudentExp: boolean;\n shareOverrideRestrictions: boolean;\n entity: SharableEntity;\n entityTypeId: MasterType;\n yearGroups: YearGroup[];\n sharePrivacy: SharePrivacy;\n entityPrivacy: SharePrivacyResponse;\n onClickSavePrivacy: (privacy: SharePrivacy) => void;\n}\n\nexport function ShareLinkPrivacy(props: ShareLinkPrivacyProps): JSX.Element {\n const canUpdatePrivacy = props.shareOverrideRestrictions && !props.hasStudentExp;\n\n const config = getSharePrivacyConfig({\n entity: props.entity,\n entityPrivacy: props.entityPrivacy,\n hasStudentExp: props.hasStudentExp,\n yearGroups: props.yearGroups,\n _showPasswordProtected: props.sharePrivacy === SharePrivacy.PasswordProtected\n });\n\n const { icon, text } = ShareLinkHelper.getPrivateIconAndText({\n privacy: props.sharePrivacy,\n entityTypeId: props.entityTypeId,\n hasStudentExp: props.hasStudentExp,\n entity: props.entity,\n yearGroups: props.yearGroups\n });\n\n if (!canUpdatePrivacy) {\n return (\n <div className='d-flex align-items-center'>\n <SvgContainer svgName={icon} className='svg-container me-1' />\n <span>{text}</span>\n </div>\n );\n }\n \n return (\n <div className='btn-group'>\n <button\n className={`btn border-0 info-link dropdown-toggle p-1 bg-light-blue-hover`}\n data-bs-toggle='dropdown'\n >\n <SvgContainer svgName={icon} className='svg-container me-1' />\n <span className='me-1'>{text}</span>\n </button>\n <ul className='dropdown-menu cursor-pointer'>\n {Object.values(SharePrivacy).map(sharePrivacy => {\n const { title, description, predicate } = config[sharePrivacy];\n \n if (!predicate())\n return;\n\n return (\n <SharePrivacyItem\n key={sharePrivacy}\n sharePrivacy={sharePrivacy}\n activePrivacy={props.sharePrivacy}\n title={title}\n description={description}\n onClick={props.onClickSavePrivacy}\n />\n );\n })}\n </ul>\n </div>\n );\n}","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { SharePrivacy } from 'libs/shared/apps/share-v2/enums/SharePrivacy';\nimport { type SharePrivacyResponse } from 'libs/shared/apps/share-v2/interfaces/SharePrivacyResponse';\nimport { ShareLinkHelper } from 'libs/shared/apps/share-v2/utils/ShareLinkHelper';\nimport { type SharableEntity } from 'libs/shared/apps/share-v2/utils/ShareViewHelper';\nimport type { YearGroup } from 'libs/shared/interfaces';\n\nconst namespace = 'sharev2.getSharePrivacyConfig';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ntype SharePrivacyConfigItem = {\n title: string;\n description: string;\n predicate: () => boolean;\n}\n\ninterface UseSharePrivacyConfigOptions {\n entityPrivacy: SharePrivacyResponse;\n entity: SharableEntity;\n yearGroups: YearGroup[];\n hasStudentExp: boolean;\n /**\n * To support legacy password protected share links\n */\n _showPasswordProtected?: boolean;\n}\n\nexport function getSharePrivacyConfig(\n options: UseSharePrivacyConfigOptions\n): {[key in SharePrivacy]: SharePrivacyConfigItem} {\n const accessType = ShareLinkHelper.getShareLinkAccessType(options.entityPrivacy);\n const respectRatingText = ShareLinkHelper.getRespectRatingText(\n options.entity,\n options.yearGroups,\n options.hasStudentExp\n );\n\n const SharePrivacyItemConfig: {[key in SharePrivacy]: SharePrivacyConfigItem} = {\n [SharePrivacy.JustMySchool]: {\n title: getPhrase('respectRatings'),\n description: respectRatingText,\n predicate: () => accessType !== 'protected'\n },\n [SharePrivacy.Protected]: {\n title: getPhrase('respectRatings'),\n description: respectRatingText,\n predicate: () => accessType === 'protected'\n },\n [SharePrivacy.JustMySchoolOverrideRestriction]: {\n title: getPhrase('justMySchool'),\n description: getPhrase('justMySchoolDescription'),\n predicate: () => accessType !== 'protected'\n },\n [SharePrivacy.ProtectedOverrideRestriction]: {\n title: getPhrase('justMySchool'),\n description: getPhrase('clickViewOnly'),\n predicate: () => accessType === 'protected'\n },\n [SharePrivacy.Public]: {\n title: getPhrase('public'),\n description: getPhrase('publicDescription'),\n predicate: () => accessType === 'owner'\n },\n /**\n * Not supported\n */\n [SharePrivacy.Direct]: {\n title: '',\n description: '',\n predicate: () => false\n },\n [SharePrivacy.PasswordProtected]: {\n title: getPhrase('passwordProtectedTitle'),\n description: getPhrase('passwordProtectedDescription'),\n predicate: () => options._showPasswordProtected\n },\n [SharePrivacy.PinCode]: {\n title: getPhrase('pinCode'),\n description: getPhrase('pinCodeDescription'),\n predicate: () => false\n }\n };\n\n return SharePrivacyItemConfig;\n}\n\nexport function getDefaultSharePrivacy(options: UseSharePrivacyConfigOptions): SharePrivacy {\n const items = getSharePrivacyConfig(options);\n\n const validItems = Object.entries(items).filter(([ , config ]) => config.predicate());\n\n if (!validItems.length)\n return;\n\n return ArrayHelper.first(validItems)[0] as SharePrivacy;\n}","import React from 'react';\n\nimport { AppLinkHelper } from 'libs/common/backbone/core';\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EventVersion, LocationContext } from 'libs/analytics/interfaces';\n\nimport { DeleteShareContent } from 'libs/shared/apps/share-v2/components/delete-share-content/DeleteShareContent';\nimport { useShareLinkActions } from 'libs/shared/apps/share-v2/hooks/useShareLinkActions';\nimport { useShareLinkData } from 'libs/shared/apps/share-v2/hooks/useShareLinkData';\nimport { getShareEventLogger } from 'libs/shared/apps/share-v2/utils/get-share-event-logger/getShareEventLogger';\nimport { SharableEntityType } from 'libs/shared/apps/share-v2/utils/ShareViewHelper';\nimport { MultiStepPopupViewProps } from 'libs/shared/components/multistep-popup/MultiStepPopup';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\n\nconst namespace = 'sharev2.deleteShareLinkConfirmation';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport interface DeleteShareLinkConfirmationViewProps extends MultiStepPopupViewProps {\n entityId: string;\n entityType: SharableEntityType;\n previousAppLink?: Core.AppLink;\n goToSettingsStep?: () => void;\n}\n\nexport function DeleteShareLinkConfirmationView(props: DeleteShareLinkConfirmationViewProps) {\n const alerts = useAlerts();\n\n const [ loading, setLoading ] = React.useState(false);\n\n const { share, entity } = useShareLinkData({\n entityId: props.entityId,\n entityType: props.entityType\n });\n\n const { deleteShareLink } = useShareLinkActions({\n entityId: props.entityId\n });\n\n const { log } = getShareEventLogger({\n data: {\n entity: {\n id: props.entityId,\n type: props.entityType\n }\n },\n analyticsOptions: {\n location: LocationContext.Popup,\n eventVersion: EventVersion.V3\n }\n });\n \n function onClickDelete() {\n setLoading(true);\n\n deleteShareLink(share.data?.shareId).then(() => {\n log({\n type: 'delete-share-link',\n share: share.data\n });\n\n setLoading(false);\n alerts.success(getPhrase('deleteSuccess'));\n props.closePopup();\n\n if (props.previousAppLink) {\n AppLinkHelper.trigger(props.previousAppLink);\n }\n }).catch(() => {\n alerts.error(getPhrase('deleteFailed', { name: entity.data.name, escapeText: true }));\n }).finally(() => {\n setLoading(false);\n });\n }\n\n const loaded = !!share.data && !!entity.data;\n\n return (\n <Popup\n title={getPhrase('title')}\n closePopup={props.closePopup}\n showLoadingSpinner={!loaded || props.loading}\n animation={props.animate}\n >\n <DeleteShareContent\n loading={loading}\n phrases={{\n leadingSentence: getPhrase('intro'),\n bulletPoints: [\n getPhrase('loseAccessInfo'),\n getPhrase('loseAccessUsage')\n ],\n acknowledgement: getPhrase('acknowledgement'),\n backButton: getPhrase('back'),\n deleteButton: getPhrase('delete')\n }}\n onDelete={onClickDelete}\n onBack={props.goToSettingsStep ? props.goToSettingsStep : undefined}\n />\n </Popup>\n );\n}\n","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/react/index';\n\nimport { SharePrivacy } from 'libs/shared/apps/share-v2/enums/SharePrivacy';\nimport { useShareLinkActions } from 'libs/shared/apps/share-v2/hooks/useShareLinkActions';\nimport { useShareLinkData } from 'libs/shared/apps/share-v2/hooks/useShareLinkData';\nimport { ShareLogFn } from 'libs/shared/apps/share-v2/utils/get-share-event-logger/getShareEventLogger';\nimport { SharableEntityType, ShareViewHelper } from 'libs/shared/apps/share-v2/utils/ShareViewHelper';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport type { YearGroup } from 'libs/shared/interfaces';\n\nconst namespace = 'sharev2.useMainShareData';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface UseMainShareDataOptions {\n entityId: string;\n entityType: SharableEntityType;\n log: ShareLogFn;\n}\n\nexport function useMainShareData(options: UseMainShareDataOptions) {\n const alerts = useAlerts();\n const { hasPermissions } = usePermissions();\n\n const {\n shareToGoogleClassroom,\n shareToMicrosoftTeams,\n isLoadingSettings,\n shareOverrideRestrictions\n } = useSettings(null);\n \n const {\n currentUser,\n entity,\n privacy,\n share,\n config\n } = useShareLinkData({ entityId: options.entityId, entityType: options.entityType });\n \n const {\n loaded: shareActionLoaded,\n updateShareLink\n } = useShareLinkActions({ entityId: options.entityId });\n \n const yearGroups = Flight.useBasicFetch<YearGroup[]>(\n currentUser.data && CustomerRequests.yearGroups(currentUser.data.customerId)\n );\n\n async function onClickSavePrivacy(updatedPrivacy: SharePrivacy): Promise<void> {\n try {\n const updatedShare = await updateShareLink(share.data.shareId, { privacy: updatedPrivacy });\n options.log({\n type: 'update-share-link',\n share: updatedShare\n });\n alerts.success(getPhrase('privaciesSuccess', { name: entity.data.name, escapeText: true }));\n } catch {\n alerts.error(getPhrase('privaciesError', { name: entity.data.name, escapeText: true }));\n }\n }\n \n const canEmbed = ShareViewHelper.canEmbed(options.entityType);\n const integrations = ShareViewHelper.getEnabledIntegrations(shareToGoogleClassroom, shareToMicrosoftTeams);\n const hasManageIntegrationsPermission = hasPermissions(PermissionName.ManageIntegrations);\n const hasStudentExp = hasPermissions(PermissionName.StudentExperience);\n const hasManageShareLinkSettings = hasPermissions(PermissionName.ManageShareLinkSettings);\n const canAccessSettings = share.data && ShareViewHelper.canAddPolicies(options.entityType);\n \n const loaded = shareActionLoaded\n && !!share.data\n && !!entity.data\n && !!privacy.data\n && !!config.data\n && !!currentUser.data\n && !!yearGroups\n && !isLoadingSettings;\n\n\n return {\n data: {\n share,\n loaded,\n entity,\n privacy,\n config,\n yearGroups,\n shareOverrideRestrictions,\n currentUser\n },\n canEmbed,\n integrations,\n hasStudentExp,\n canAccessSettings,\n hasManageShareLinkSettings,\n hasManageIntegrationsPermission,\n onClickSavePrivacy\n };\n}","import React from 'react';\n\nimport { PopupViewProps } from 'libs/shared/interfaces';\n\nexport interface MultiStepPopupViewProps extends PopupViewProps {\n animate?: boolean;\n loading?: boolean;\n}\n\nexport type MultiStepItemConfig<TProps, TSteps extends string> = {\n [Key in TSteps]: {\n view: (props: TProps) => JSX.Element;\n }\n}\n\ninterface MultiStepPopupProps<\n TProps,\n TSteps extends string\n> {\n step: TSteps;\n data: TProps;\n steps: MultiStepItemConfig<TProps, TSteps>;\n loading?: boolean;\n animate?: boolean;\n setStep: (step: TSteps) => void;\n closePopup: () => void;\n}\n\nexport function MultiStepPopup<TProps, TSteps extends string>(\n props: MultiStepPopupProps<TProps, TSteps>\n): JSX.Element {\n const [ animate, setAnimate ] = React.useState<boolean>(props.animate ?? true);\n\n function setStep(step: TSteps) {\n /**\n * We want to animate the popup for the first time it loads in.\n * After that every step changes should not animate other popups\n */\n setAnimate(false);\n props.setStep(step);\n }\n\n function closePopup() {\n props.closePopup();\n }\n\n const stepConfig = props.steps[props.step];\n /**\n * This is so that we do not override `loading` prop \n * passed into `ViewComponent` from `props.data` if `props.loading` is undefined.\n * We only want to override the prop if this is set.\n */\n const loading = typeof props.loading !== 'undefined' ? { loading: props.loading } : {};\n \n const viewProps: TProps = {\n ...props.data,\n ...loading,\n animate: props.animate ?? animate,\n closePopup,\n setStep\n };\n\n if (!stepConfig)\n return <></>;\n\n const ViewComponent = stepConfig.view;\n\n return <ViewComponent {...viewProps} />;\n}","import React from 'react';\n\nimport { classNames } from 'libs/common/react/utils/ClassNameHelper';\n\nimport { Text } from 'libs/shared/components/text/Text';\n\nconst namespace = 'shared.newBadge';\n\ninterface NewBadgeProps {\n size: 'sm' | 'std';\n invert?: boolean;\n text?: string;\n className?: string;\n}\n\nexport function NewBadge(props: NewBadgeProps): JSX.Element {\n return (\n <span className={classNames(\n 'badge badge-wrapper rounded-pill d-flex justify-content-center',\n 'fw-medium text-blue',\n props.size === 'sm' ? 'badge-sm' : 'badge-std',\n props.invert ? 'bg-white' : 'bg-light-blue',\n props.className\n )}>\n {props.text || <Text phrase='new' namespace={namespace} />}\n </span>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EventVersion, LocationContext } from 'libs/analytics/interfaces';\n\nimport { EmbedDetails } from 'libs/shared/apps/share/components/copy-embed-html/CopyEmbedHtml';\nimport { CopyEmbedHtml } from 'libs/shared/apps/share-v2/components/copy-embed-html/CopyEmbedHtml';\nimport { useShareLinkData } from 'libs/shared/apps/share-v2/hooks/useShareLinkData';\nimport { getShareEventLogger } from 'libs/shared/apps/share-v2/utils/get-share-event-logger/getShareEventLogger';\nimport { type SharableEntityType } from 'libs/shared/apps/share-v2/utils/ShareViewHelper';\nimport { MultiStepPopupViewProps } from 'libs/shared/components/multistep-popup/MultiStepPopup';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\n\nconst namespace = 'sharev2.copyEmbed';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport interface CopyEmbedViewProps extends MultiStepPopupViewProps{\n entityId: string;\n entityType: SharableEntityType;\n goToShareLinkStep: () => void;\n}\n\nexport function CopyEmbedView(props: CopyEmbedViewProps): JSX.Element {\n const { config, share, entity } = useShareLinkData({\n entityId: props.entityId,\n entityType: props.entityType\n });\n\n const { log } = getShareEventLogger({\n data: {\n entity: {\n id: props.entityId,\n type: props.entityType\n }\n },\n analyticsOptions: {\n location: LocationContext.Popup,\n eventVersion: EventVersion.V3\n }\n });\n\n function onCopyLogEvent(embedDetails: EmbedDetails) {\n log({\n type: 'copy-embed-html',\n share: share.data,\n embedDetails\n });\n }\n \n const loaded = !!share.data\n && !!config.data;\n\n return (\n <Popup\n title={getPhrase('title')}\n closePopup={props.closePopup}\n showLoadingSpinner={!loaded || props.loading}\n animation={props.animate}\n >\n <div className='mb-3'>\n <CopyEmbedHtml\n analyticsOptions={{}}\n entity={entity.data}\n embedUrl={share.data.link.shortenedEmbedUrl}\n entityId={props.entityId}\n entityType={props.entityType}\n liteUrl={config.data.liteUrl}\n shareId={share.data.shareId}\n onCopy={onCopyLogEvent}\n />\n </div>\n <PopupButtons>\n <PopupButtons.Cancel variant='link' onClick={props.goToShareLinkStep} text={getPhrase('back')} />\n </PopupButtons>\n </Popup>\n );\n}","import { useCallback, useState } from 'react';\n\n/**\n * The copied text as `string` or `null` if nothing has been copied yet.\n */\ntype CopiedValue = string | null\n\n/**\n * Function to copy text to the clipboard.\n * @param text - The text to copy to the clipboard.\n * @returns {Promise<boolean>} A promise that resolves to `true` if the text was copied successfully, or `false` otherwise.\n */\ntype CopyFn = (text: string) => Promise<boolean>\n\n/**\n * Custom hook that copies text to the clipboard using the [`Clipboard API`](https://developer.mozilla.org/en-US/docs/Web/API/Clipboard_API)\n * if available else it falls back to [`document.execCommand`](https://developer.mozilla.org/en-US/docs/Web/API/Document/execCommand)\n * @see [Documentation](https://usehooks-ts.com/react-hook/use-copy-to-clipboard)\n * @see [Documentation](https://github.com/jaredLunde/react-hook/blob/master/packages/copy/src/index.tsx)\n * @example\n * ```tsx\n * const [copiedText, copyToClipboard] = useCopyToClipboard();\n * const textToCopy = 'Hello, world!';\n *\n * // Attempt to copy text to the clipboard\n * copyToClipboard(textToCopy)\n * .then(success => {\n * if (success) {\n * console.log(`Text \"${textToCopy}\" copied to clipboard successfully.`);\n * } else {\n * console.error('Failed to copy text to clipboard.');\n * }\n * });\n * ```\n */\nexport function useCopyToClipboard(): {copiedText: CopiedValue, copyToClipboard: CopyFn} {\n const [ copiedText, setCopiedText ] = useState<CopiedValue>(null);\n\n const copy: CopyFn = useCallback(async text => {\n // Try to save to clipboard then save it in the state if worked\n try {\n await copyToClipboard(text);\n setCopiedText(text);\n return true;\n } catch (error) {\n console.warn('Copy failed', error);\n setCopiedText(null);\n return false;\n }\n }, []);\n\n return { copiedText, copyToClipboard: copy };\n}\n\nfunction copyToClipboard(text: string) {\n // uses the Async Clipboard API when available. Requires a secure browing\n // context (i.e. HTTPS)\n if (navigator.clipboard) return navigator.clipboard.writeText(text);\n // puts the text to copy into a <span>\n const span = document.createElement('span');\n span.textContent = text;\n // preserves consecutive spaces and newlines\n span.style.whiteSpace = 'pre';\n // adds the <span> to the page\n document.body.appendChild(span);\n // makes a selection object representing the range of text selected by the user\n const selection = window.getSelection();\n if (!selection) return Promise.reject();\n const range = window.document.createRange();\n selection.removeAllRanges();\n range.selectNode(span);\n selection.addRange(range);\n // copies text to the clipboard\n try {\n window.document.execCommand('copy');\n } catch (err) {\n return Promise.reject();\n }\n // cleans up the dom element and selection\n selection.removeAllRanges();\n window.document.body.removeChild(span);\n // the Async Clipboard API returns a promise that may reject with `undefined`\n // so we match that here for consistency\n return Promise.resolve();\n}","// extracted by mini-css-extract-plugin\nexport default {\"assignPrompt\":\"R73Xv\",\"badge\":\"urP15\"};","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { classNames } from 'libs/common/react/utils/ClassNameHelper';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nconst namespace = 'sharev2.assignPrompt';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nimport { NewBadge } from 'libs/shared/components/new-badge/NewBadge';\n\nimport styles from './assign-prompt.scss';\n\ninterface AssignPromptProps {\n appLink: Core.AppLink;\n}\n\nexport function AssignPrompt(props: AssignPromptProps): JSX.Element {\n return (\n <AppLink\n appLink={props.appLink}\n className={classNames(\n 'd-flex flex-row gap-3 p-3 justify-content-between rounded-3 bg-white hover-bg-light-blue',\n styles.assignPrompt\n )}\n >\n <div className='d-flex flex-row gap-2 align-items-center fw-medium'>\n <Text namespace={namespace} phrase='title' />\n <NewBadge size='sm' text={getPhrase('badgeText')} className={styles.badge} />\n </div>\n <div>\n <SvgContainer svgName={cvSvgLibrary.ChevronRight} />\n </div>\n </AppLink>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"input\":\"mc17h\"};","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EventVersion, LocationContext } from 'libs/analytics/interfaces';\n\nimport { useShareLinkActions } from 'libs/shared/apps/share-v2/hooks/useShareLinkActions';\nimport { useShareLinkData } from 'libs/shared/apps/share-v2/hooks/useShareLinkData';\nimport { Share } from 'libs/shared/apps/share-v2/interfaces/Share';\nimport { getShareEventLogger } from 'libs/shared/apps/share-v2/utils/get-share-event-logger/getShareEventLogger';\nimport { SharableEntityType } from 'libs/shared/apps/share-v2/utils/ShareViewHelper';\nimport { MultiStepPopupViewProps } from 'libs/shared/components/multistep-popup/MultiStepPopup';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { SpinnerButton } from 'libs/shared/components/spinner-button/SpinnerButton';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { useCopyToClipboard } from 'libs/shared/hooks/useCopyToClipboard';\nimport { AssignHelper } from 'libs/shared/utils/AssignHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { AssignPrompt } from '../../components/assign-prompt/AssignPrompt';\n\nimport styles from './create-share.scss';\n\nconst namespace = 'sharev2.createShare';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport interface CreateShareViewProps extends MultiStepPopupViewProps {\n entityId: string;\n entityType: SharableEntityType\n setShowCopiedText: (val: boolean) => void;\n goToShareLinkStep: () => void;\n assignFlowSelectorAppLink?: Core.AppLink;\n}\n\nconst PLACEHOLDER_TEXT = 'https://clickv.ie/...';\n\nexport function CreateShareView(props: CreateShareViewProps): JSX.Element {\n const alerts = useAlerts();\n const { copyToClipboard } = useCopyToClipboard();\n\n const { log } = getShareEventLogger({\n data: {\n entity: {\n id: props.entityId,\n type: props.entityType\n }\n },\n analyticsOptions: {\n location: LocationContext.Popup,\n eventVersion: EventVersion.V3\n }\n });\n\n const [ loading, setLoading ] = React.useState(false);\n \n const { entity, share, currentUser } = useShareLinkData({\n entityId: props.entityId,\n entityType: props.entityType\n });\n\n const { loaded: shareLinkActionsLoaded, createShareLink } = useShareLinkActions({\n entityId: props.entityId\n });\n\n function onSuccess(share: Share) {\n log({\n type: 'create-share-link',\n share\n });\n \n copyToClipboard(share.link?.shortenedUrl)\n .then(success => {\n /**\n * If the copy to clipboard somehow fails we still want to take\n * them to main share view where they can copy the link again.\n * Rather showing 'Copied' falsely we show them a toast that\n * says share link has been created.\n * - Nish\n */\n if (!success) {\n alerts.success(getPhrase('createSuccess', { name: entity.data.name, escapeText: true }));\n return;\n }\n \n /**\n * If we successfully copy the share link we show 'Copied' in the\n * button in main share link view\n * - Nish\n */\n log({\n type: 'copy-share-link',\n share\n });\n props.setShowCopiedText(true);\n setTimeout(() => props.setShowCopiedText(false), 3000);\n });\n\n props.goToShareLinkStep();\n }\n\n function onClickCreateLink() {\n setLoading(true);\n\n createShareLink()\n .then(onSuccess)\n .catch(() => {\n alerts.error(getPhrase('createError', { name: entity.data.name, escapeText: true }));\n })\n .finally(() => {\n setLoading(false);\n });\n }\n\n React.useEffect(() => {\n if (!share.data)\n return;\n \n props.goToShareLinkStep();\n }, [share.data]);\n \n const loaded = !!entity.data && !!share.hasCompleted && shareLinkActionsLoaded;\n const showAssignPrompt = AssignHelper.hideAssignButton(currentUser.data);\n\n function getModalClassNames() {\n if (!showAssignPrompt || !loaded)\n return null;\n\n return {\n popupContentClassName: 'bg-transparent border-0',\n popupBodyClassName: 'p-0',\n topContentClassName: 'bg-white rounded-bottom-3 p-3 mb-3'\n };\n }\n\n const modalClassNames = getModalClassNames();\n \n return (\n <Popup\n title={getPhrase('title')}\n closePopup={props.closePopup}\n showLoadingSpinner={!loaded || props.loading}\n animation={props.animate}\n contentClassName={modalClassNames?.popupContentClassName}\n bodyClassName={modalClassNames?.popupBodyClassName}\n >\n <div className={modalClassNames?.topContentClassName}>\n <p className='mb-2'><Text namespace={namespace} phrase='info' /></p>\n <div className='d-flex gap-2 position-relative w-100'>\n <input\n type='text'\n autoComplete='off'\n className={`form-control ${styles.input}`}\n spellCheck={false}\n placeholder={PLACEHOLDER_TEXT}\n readOnly\n />\n <SpinnerButton\n variant='dark'\n showSpinner={loading}\n className='text-nowrap d-flex align-items-center gap-1'\n onClick={onClickCreateLink}\n spinnerText={getPhrase('buttonLoading')}\n >\n <SvgContainer svgName={cvSvgLibrary.Link} />\n <Text namespace={namespace} phrase='button' />\n </SpinnerButton>\n </div>\n </div>\n\n {showAssignPrompt && props.assignFlowSelectorAppLink && (\n <AssignPrompt appLink={props.assignFlowSelectorAppLink} />\n )}\n </Popup>\n );\n}","import React from 'react';\n\nimport { ShareLinkPrivacy } from 'libs/shared/apps/share-v2/components/share-link-privacy/ShareLinkPrivacy';\nimport { SharePrivacy } from 'libs/shared/apps/share-v2/enums/SharePrivacy';\nimport type { Share } from 'libs/shared/apps/share-v2/interfaces/Share';\nimport type { SharePrivacyResponse } from 'libs/shared/apps/share-v2/interfaces/SharePrivacyResponse';\nimport { type SharableEntity, SharableEntityType } from 'libs/shared/apps/share-v2/utils/ShareViewHelper';\nimport { CopyInput } from 'libs/shared/components/copy-input/CopyInput';\nimport type { YearGroup } from 'libs/shared/interfaces';\n\ninterface SharePermanentLinkProps {\n share: Share;\n entityType: SharableEntityType;\n hasStudentExp: boolean;\n shareOverrideRestrictions: boolean;\n entity: SharableEntity;\n yearGroups: YearGroup[];\n privacy: SharePrivacyResponse;\n onClickSavePrivacy: (privacy: SharePrivacy) => void;\n showCopiedText: boolean;\n onCopy?: () => void;\n}\n\nexport function SharePermanentLink(props: SharePermanentLinkProps): JSX.Element {\n const [ logged, setLogged ] = React.useState(false);\n \n function onCopy() {\n if (logged)\n return;\n\n setLogged(true);\n \n typeof props.onCopy === 'function' && props.onCopy();\n }\n\n return (\n <div className='d-flex justify-content-start align-items-start flex-column gap-2'>\n <ShareLinkPrivacy\n sharePrivacy={props.share.privacy}\n entityPrivacy={props.privacy}\n entityTypeId={props.entity.typeId}\n entity={props.entity}\n yearGroups={props.yearGroups}\n \n hasStudentExp={props.hasStudentExp}\n shareOverrideRestrictions={props.shareOverrideRestrictions}\n onClickSavePrivacy={props.onClickSavePrivacy}\n />\n <CopyInput\n styling='normal-v2'\n value={props.share.link.shortenedUrl}\n showCopiedText={props.showCopiedText}\n onCopy={onCopy}\n />\n </div>\n );\n}","import React from 'react';\n\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\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\nconst namespace = 'sharev2.sharePermanentLinkDelete';\n\ninterface SharePermanentLinkDeleteProps {\n onClick: () => void;\n}\n\nexport function SharePermanentLinkDelete(props: SharePermanentLinkDeleteProps): JSX.Element {\n return (\n <div className='d-flex flex-row justify-content-between align-items-center'>\n <DivButton\n onClick={props.onClick}\n className='d-inline-block p-1 pe-2 rounded-1 hover-bg-light-blue'\n >\n <div className='d-flex align-items-center'>\n <div className='me-2'>\n <SvgContainer svgName={cvSvgLibrary.Delete} size={SvgContainerSize.Standard} />\n </div>\n <Text namespace={namespace} phrase='deleteLink' />\n </div>\n </DivButton>\n </div>\n );\n}","import React from 'react';\n\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\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\nconst namespace = 'sharev2.sharePermanentLinkSetting';\n\ninterface SharePermanentLinkSettingProps {\n manageShareLinkSettings: boolean;\n \n onClickEditSettings: () => void;\n}\n\nexport function SharePermanentLinkSetting(props: SharePermanentLinkSettingProps): JSX.Element {\n if (!props.manageShareLinkSettings)\n return null;\n \n return (\n <div className='d-flex flex-row justify-content-between align-items-center'>\n <DivButton\n onClick={props.onClickEditSettings}\n className={`d-inline-block p-1 pe-2 rounded-1 hover-bg-light-blue`}\n >\n <div className='d-flex align-items-center'>\n <div className='me-2'>\n <SvgContainer svgName={cvSvgLibrary.Cog} size={SvgContainerSize.Standard} />\n </div>\n <Text namespace={namespace} phrase='editSettings' />\n </div>\n </DivButton>\n </div>\n );\n}","import React from 'react';\n\nimport { IntegrationId } from 'libs/shared/enums/IntegrationId';\n\nimport { GetEmbedCode } from '../get-embed-code/GetEmbedCode';\nimport { ShareIntegrations } from '../share-integrations/ShareIntegrations';\nimport { SharePermanentLinkDelete } from '../share-permanent-link-delete/SharePermanentLinkDelete';\nimport { SharePermanentLinkSetting } from '../share-permanent-link-setting/SharePermanentLinkSetting';\n\ninterface SharePermanentLinkActionsProps {\n canEmbed: boolean;\n shareLink: string;\n showIntegrations: boolean;\n canAccessSettings: boolean;\n integrations: IntegrationId[];\n hasManageShareLinkSettings: boolean;\n closePopup: () => void;\n goToDeleteStep: () => void;\n goToSettingsStep: () => void;\n onClickGetEmbedCode: () => void\n}\n\nexport function SharePermanentLinkActions(props: SharePermanentLinkActionsProps): JSX.Element {\n return (\n <div className='d-flex flex-row justify-content-between gap-2'>\n <div>\n {props.canEmbed &&\n <GetEmbedCode onClickGetEmbedCode={props.onClickGetEmbedCode} minimal />\n }\n\n {props.canAccessSettings ?\n <SharePermanentLinkSetting\n manageShareLinkSettings={props.hasManageShareLinkSettings}\n onClickEditSettings={props.goToSettingsStep}\n /> :\n <SharePermanentLinkDelete onClick={props.goToDeleteStep} />\n }\n </div>\n <div>\n {props.showIntegrations && !!props.integrations.length &&\n <ShareIntegrations\n integrations={props.integrations}\n url={props.shareLink}\n closePopup={props.closePopup}\n \n hideLookingForIntegrations\n />\n }\n </div>\n </div>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { classNames } from 'libs/common/react/utils/ClassNameHelper';\n\nimport { EventVersion, LocationContext } from 'libs/analytics/interfaces';\n\nimport { SharePermanentLink } from 'libs/shared/apps/share-v2/components/share-permanent-link/SharePermanentLink';\nimport { SharePermanentLinkActions } from 'libs/shared/apps/share-v2/components/share-permanent-link-actions/SharePermanentLinkActions';\nimport { getShareEventLogger } from 'libs/shared/apps/share-v2/utils/get-share-event-logger/getShareEventLogger';\nimport { type SharableEntityType } from 'libs/shared/apps/share-v2/utils/ShareViewHelper';\nimport { LookingForIntegration } from 'libs/shared/components/looking-for-integration/LookingForIntegration';\nimport { MultiStepPopupViewProps } from 'libs/shared/components/multistep-popup/MultiStepPopup';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { AssignHelper } from 'libs/shared/utils/AssignHelper';\n\nimport { AssignPrompt } from '../../components/assign-prompt/AssignPrompt';\n\nimport { useMainShareData } from './hooks/use-main-share-data/useMainShareData';\n\nconst namespace = 'sharev2.mainShareView';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport interface MainShareViewProps extends MultiStepPopupViewProps {\n entityId: string;\n showCopiedText?: boolean;\n entityType: SharableEntityType;\n enableIntegrationBanner: boolean;\n messagePopupAppLink?: Core.AppLink;\n integrationSettingAppLink?: Core.AppLink;\n assignFlowSelectorAppLink?: Core.AppLink;\n goToDeleteStep: () => void;\n goToSettingsStep: () => void;\n goToCopyEmbedStep: () => void;\n}\n\nexport function MainShareView(props: MainShareViewProps): JSX.Element {\n const { log } = getShareEventLogger({\n data: {\n entity: {\n id: props.entityId,\n type: props.entityType\n }\n },\n analyticsOptions: {\n eventVersion: EventVersion.V3,\n location: LocationContext.Popup\n }\n });\n \n const {\n data,\n canEmbed,\n integrations,\n hasStudentExp,\n canAccessSettings,\n hasManageShareLinkSettings,\n hasManageIntegrationsPermission,\n onClickSavePrivacy\n } = useMainShareData({\n entityId: props.entityId,\n entityType: props.entityType,\n log\n });\n\n const {\n share,\n loaded,\n entity,\n privacy,\n yearGroups,\n shareOverrideRestrictions,\n currentUser\n } = data;\n\n const showAssignPrompt = AssignHelper.hideAssignButton(currentUser.data);\n\n function logOnCopyEvent() {\n log({\n type: 'copy-share-link',\n share: share.data\n });\n }\n\n function getModalClassNames() {\n if (!showAssignPrompt || !loaded)\n return null;\n\n return {\n popupContentClassName: 'bg-transparent border-0',\n popupBodyClassName: 'p-0',\n topContentClassName: 'bg-white rounded-bottom-3 p-3 mb-3'\n };\n }\n\n const modalClassNames = getModalClassNames();\n\n const integrationAppLink = hasManageIntegrationsPermission\n ? props.integrationSettingAppLink\n : props.messagePopupAppLink;\n\n return (\n <Popup\n animation={props.animate}\n title={getPhrase('title')}\n closePopup={props.closePopup}\n showLoadingSpinner={!loaded || props.loading}\n contentClassName={modalClassNames?.popupContentClassName}\n bodyClassName={modalClassNames?.popupBodyClassName}\n >\n <div className={classNames('d-flex flex-column gap-2', modalClassNames?.topContentClassName)}>\n <SharePermanentLink\n share={share.data}\n entity={entity.data}\n privacy={privacy.data}\n yearGroups={yearGroups.data}\n entityType={props.entityType}\n hasStudentExp={hasStudentExp}\n showCopiedText={props.showCopiedText}\n shareOverrideRestrictions={shareOverrideRestrictions}\n onCopy={logOnCopyEvent}\n onClickSavePrivacy={onClickSavePrivacy}\n />\n <SharePermanentLinkActions\n canEmbed={canEmbed}\n integrations={integrations}\n canAccessSettings={canAccessSettings}\n shareLink={share.data?.link.shortenedUrl}\n showIntegrations={props.enableIntegrationBanner}\n hasManageShareLinkSettings={hasManageShareLinkSettings}\n closePopup={props.closePopup}\n goToDeleteStep={props.goToDeleteStep}\n goToSettingsStep={props.goToSettingsStep}\n onClickGetEmbedCode={props.goToCopyEmbedStep}\n />\n {props.enableIntegrationBanner && !integrations.length &&\n <LookingForIntegration\n normalText\n hideDismiss\n hideBackground\n appLink={integrationAppLink}\n closePopup={props.closePopup}\n />\n }\n </div>\n\n {showAssignPrompt && props.assignFlowSelectorAppLink && (\n <AssignPrompt appLink={props.assignFlowSelectorAppLink} />\n )}\n </Popup>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EventVersion, LocationContext } from 'libs/analytics/interfaces';\n\nimport { ShareSettingsForm } from 'libs/shared/apps/share-v2/components/share-settings-form/ShareSettingsForm';\nimport { getShareEventLogger } from 'libs/shared/apps/share-v2/utils/get-share-event-logger/getShareEventLogger';\nimport { SharableEntityType, type ShareSettingsFormFields, ShareViewHelper } from 'libs/shared/apps/share-v2/utils/ShareViewHelper';\nimport { type FormSubmissionOptions } from 'libs/shared/components/forms/form-wrapper/FormWrapper';\nimport { MultiStepPopupViewProps } from 'libs/shared/components/multistep-popup/MultiStepPopup';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\n\nimport { useShareSettingsData } from './hooks/use-share-settings-data/useShareSettingsData';\n\nconst namespace = 'sharev2.shareSettingsView';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport interface ShareSettingsViewProps extends MultiStepPopupViewProps {\n entityId: string;\n entityType: SharableEntityType;\n goToShareLinkStep: () => void;\n goToDeleteStep: () => void;\n}\n\n\nexport function ShareSettingsView(props: ShareSettingsViewProps): JSX.Element {\n const { log } = getShareEventLogger({\n data: {\n entity: {\n id: props.entityId,\n type: props.entityType\n }\n },\n analyticsOptions: {\n location: LocationContext.Popup,\n eventVersion: EventVersion.V3\n }\n });\n \n const { initialValues, onClickSaveLink } = useShareSettingsData({\n entityId: props.entityId,\n entityType: props.entityType,\n log\n });\n \n function onSubmit(\n data: ShareSettingsFormFields,\n onDone: (options?: FormSubmissionOptions<ShareSettingsFormFields>) => void\n ): void {\n onClickSaveLink({\n options: {\n immediateFeedback: data.immediateFeedback,\n preventScrubbing: data.preventScrubbing\n }\n }, onDone);\n }\n\n const {\n showImmediateFeedbackField,\n showPreventScrubbingField\n } = ShareViewHelper.getEnabledSettingsField(props.entityType);\n\n return (\n <Popup\n title={getPhrase('title')}\n showLoadingSpinner={props.loading}\n closePopup={props.closePopup}\n animation={props.animate}\n >\n <ShareSettingsForm\n initialValues={initialValues}\n onSubmit={onSubmit}\n onClickDelete={props.goToDeleteStep}\n showImmediateFeedbackField={showImmediateFeedbackField}\n showPreventScrubbingField={showPreventScrubbingField}\n />\n <PopupButtons className='mt-3'>\n <PopupButtons.Cancel onClick={props.goToShareLinkStep} text={getPhrase('back')} variant='link' />\n </PopupButtons>\n </Popup>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\n\nimport { useShareLinkData } from 'libs/shared/apps/share-v2/hooks/useShareLinkData';\nimport { AllShareLinkViewProps } from 'libs/shared/apps/share-v2/interfaces/MultiStepPopup';\nimport { ShareScreen } from 'libs/shared/apps/share-v2/interfaces/ShareScreen';\nimport { type SharableEntityType, ShareViewHelper } from 'libs/shared/apps/share-v2/utils/ShareViewHelper';\nimport { CopyEmbedView } from 'libs/shared/apps/share-v2/views/copy-embed-view/CopyEmbedView';\nimport { CreateShareView } from 'libs/shared/apps/share-v2/views/create-share-view/CreateShareView';\nimport { DeleteShareLinkConfirmationView } from 'libs/shared/apps/share-v2/views/delete-share-link-confirmation-view/DeleteShareLinkConfirmationView';\nimport { MainShareView } from 'libs/shared/apps/share-v2/views/main-share-view/MainShareView';\nimport { ShareSettingsView } from 'libs/shared/apps/share-v2/views/share-settings-view/ShareSettingsView';\nimport { MultiStepPopup } from 'libs/shared/components/multistep-popup/MultiStepPopup';\nimport type { PopupViewProps } from 'libs/shared/interfaces';\n\ninterface ShareViewProps extends PopupViewProps {\n entityId: string;\n entityType: SharableEntityType\n enableIntegrationBanner: boolean;\n assignFlowSelectorAppLink?: Core.AppLink;\n integrationSettingAppLink?: Core.AppLink;\n messagePopupAppLink?: Core.AppLink;\n}\n\nexport function ShareView(props: ShareViewProps): JSX.Element {\n const { share } = useShareLinkData({ entityId: props.entityId, entityType: props.entityType });\n\n const [ animate, setAnimate ] = React.useState<boolean>(true);\n const [ screen, setScreen ] = React.useState<ShareScreen>(share.data ? 'share-link' : 'create-link');\n const [ showCopiedText, setShowCopiedText ] = React.useState(false);\n\n const canAccessSettings = ShareViewHelper.canAddPolicies(props.entityType);\n\n function setStep(step: ShareScreen) {\n setAnimate(false);\n setScreen(step);\n }\n\n function goToSettingsStep() {\n if (!canAccessSettings) {\n setStep('share-link');\n return;\n }\n \n setStep('link-settings');\n }\n\n const data: AllShareLinkViewProps = {\n entityId: props.entityId,\n entityType: props.entityType,\n showCopiedText: showCopiedText,\n messagePopupAppLink: props.messagePopupAppLink,\n enableIntegrationBanner: props.enableIntegrationBanner,\n integrationSettingAppLink: props.integrationSettingAppLink,\n assignFlowSelectorAppLink: props.assignFlowSelectorAppLink,\n goToShareLinkStep: () => setStep('share-link'),\n goToDeleteStep: () => setStep('delete-confirmation'),\n goToCopyEmbedStep: () => setStep('copy-embed'),\n goToSettingsStep,\n closePopup: props.closePopup,\n setShowCopiedText: setShowCopiedText\n };\n\n return (\n <MultiStepPopup<AllShareLinkViewProps, ShareScreen>\n step={screen}\n animate={animate}\n setStep={setStep}\n loading={!share.hasCompleted}\n closePopup={props.closePopup}\n data={data}\n steps={{\n 'create-link': {\n view: CreateShareView\n },\n 'share-link': {\n view: MainShareView\n },\n 'link-settings': {\n view: ShareSettingsView\n },\n 'copy-embed': {\n view: CopyEmbedView\n },\n 'delete-confirmation': {\n view: DeleteShareLinkConfirmationView\n }\n }}\n />\n );\n}\n","import React from 'react';\n\nimport { ShareView as OldShareView } from 'libs/shared/apps/share/views/share/ShareView';\nimport { SharableEntityType } from 'libs/shared/apps/share/views/share/ShareViewHelper';\nimport { ShareView as NewShareView } from 'libs/shared/apps/share-v2/views/share-view/ShareView';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { PopupViewProps } from 'libs/shared/interfaces';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { AssignAppLinkHelper } from 'apps/assign/utils/AssignAppLinkHelper';\n\ninterface ShareViewProps extends PopupViewProps {\n entityId: string;\n entityType: SharableEntityType;\n enableIntegrationBanner?: boolean\n}\n\n// eslint-disable-next-line rulesdir/require-view-title\nexport function ShareView(props: ShareViewProps) {\n const { hasShareFlowV2, isLoadingSettings } = useSettings(null);\n\n if (isLoadingSettings)\n return <></>;\n\n if (!hasShareFlowV2) {\n return (\n <OldShareView\n entityId={props.entityId}\n entityType={props.entityType}\n closePopup={props.closePopup}\n emptyStateImageUrl={ImageUrls.EmptyStates.TYPEAHEAD_RESULTS}\n errorStateImageUrl={ImageUrls.TYPEAHEAD_ERROR}\n messagePopupAppLink={{\n application: AppChannels.DEFAULT,\n action: Actions.Default.INTEGRATIONS_INFO\n }}\n integrationSettingAppLink={{\n application: AppChannels.SETTINGS,\n action: Actions.Settings.INTEGRATIONS\n }}\n enableIntegrationBanner={props.enableIntegrationBanner}\n />\n );\n }\n\n /**\n * Series can only be assigned to existing classrooms.\n */\n const assignFlowSelectorAppLink = props.entityType === 'series'\n ? AssignAppLinkHelper.existingClassroom({\n entityType: 'series',\n objectId: props.entityId\n })\n : AssignAppLinkHelper.flowSelector({\n entityType: props.entityType,\n objectId: props.entityId\n });\n\n return (\n <NewShareView\n entityId={props.entityId}\n entityType={props.entityType}\n closePopup={props.closePopup}\n messagePopupAppLink={{\n application: AppChannels.DEFAULT,\n action: Actions.Default.INTEGRATIONS_INFO\n }}\n integrationSettingAppLink={{\n application: AppChannels.SETTINGS,\n action: Actions.Settings.INTEGRATIONS\n }}\n enableIntegrationBanner={props.enableIntegrationBanner}\n assignFlowSelectorAppLink={assignFlowSelectorAppLink}\n />\n );\n}"],"names":["getPhrase","DeleteShareContent","props","ack","setAck","className","phrases","leadingSentence","bulletPoints","map","phrase","index","key","id","checked","onChange","e","target","label","acknowledgement","onBack","onClick","text","backButton","variant","loading","onDelete","deleteButton","disabled","showSpinner","SharePrivacyItem","active","activePrivacy","sharePrivacy","title","description","SvgContainer","svgName","ShareLinkPrivacy","canUpdatePrivacy","shareOverrideRestrictions","hasStudentExp","config","getSharePrivacyConfig","entity","entityPrivacy","yearGroups","_showPasswordProtected","SharePrivacy","ShareLinkHelper","privacy","entityTypeId","icon","Object","values","predicate","onClickSavePrivacy","options","accessType","respectRatingText","getDefaultSharePrivacy","items","validItems","entries","filter","length","DeleteShareLinkConfirmationView","alerts","setLoading","entityId","entityType","share","deleteShareLink","log","data","type","analyticsOptions","location","eventVersion","loaded","closePopup","showLoadingSpinner","animation","animate","shareId","then","success","previousAppLink","error","name","escapeText","goToSettingsStep","undefined","useMainShareData","hasPermissions","shareToGoogleClassroom","shareToMicrosoftTeams","isLoadingSettings","currentUser","shareActionLoaded","updateShareLink","customerId","canEmbed","integrations","hasManageIntegrationsPermission","hasManageShareLinkSettings","canAccessSettings","updatedPrivacy","updatedShare","MultiStepPopup","setAnimate","stepConfig","steps","step","viewProps","setStep","ViewComponent","view","namespace","NewBadge","size","invert","LanguageService","CopyEmbedView","useShareLinkData","getShareEventLogger","Popup","CopyEmbedHtml","embedUrl","link","shortenedEmbedUrl","liteUrl","onCopy","embedDetails","PopupButtons","goToShareLinkStep","useCopyToClipboard","useState","copiedText","setCopiedText","copyToClipboard","useCallback","console","warn","navigator","clipboard","writeText","span","document","createElement","textContent","style","whiteSpace","body","appendChild","selection","window","getSelection","Promise","reject","range","createRange","removeAllRanges","selectNode","addRange","execCommand","err","removeChild","resolve","AssignPrompt","AppLink","appLink","Text","PLACEHOLDER_TEXT","CreateShareView","useShareLinkActions","shareLinkActionsLoaded","createShareLink","onSuccess","shortenedUrl","setShowCopiedText","setTimeout","hasCompleted","showAssignPrompt","AssignHelper","modalClassNames","popupContentClassName","popupBodyClassName","topContentClassName","contentClassName","bodyClassName","autoComplete","spellCheck","placeholder","readOnly","SpinnerButton","spinnerText","assignFlowSelectorAppLink","SharePermanentLink","logged","setLogged","typeId","CopyInput","styling","value","showCopiedText","SharePermanentLinkDelete","DivButton","S","SharePermanentLinkSetting","manageShareLinkSettings","onClickEditSettings","SharePermanentLinkActions","GetEmbedCode","onClickGetEmbedCode","minimal","goToDeleteStep","showIntegrations","ShareIntegrations","url","shareLink","hideLookingForIntegrations","MainShareView","integrationAppLink","integrationSettingAppLink","messagePopupAppLink","enableIntegrationBanner","goToCopyEmbedStep","LookingForIntegration","normalText","hideDismiss","hideBackground","ShareSettingsView","useShareSettingsData","initialValues","onClickSaveLink","ShareViewHelper","showImmediateFeedbackField","showPreventScrubbingField","ShareSettingsForm","onSubmit","onDone","immediateFeedback","preventScrubbing","onClickDelete","screen","setScreen","useSettings","hasShareFlowV2","emptyStateImageUrl","ImageUrls","errorStateImageUrl","application","action","AssignAppLinkHelper","objectId"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"scripts/3811-b39bb39668-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/apps/share-v2/components/delete-share-content/DeleteShareContent.tsx","file:///app/packages/libs/shared/src/apps/share-v2/components/share-link-privacy/share-link-privacy.scss","file:///app/packages/libs/shared/src/apps/share-v2/components/share-link-privacy/ShareLinkPrivacy.tsx","file:///app/packages/libs/shared/src/apps/share-v2/utils/get-share-privacy-config/getSharePrivacyConfig.ts","file:///app/packages/libs/shared/src/apps/share-v2/views/delete-share-link-confirmation-view/DeleteShareLinkConfirmationView.tsx","file:///app/packages/libs/shared/src/apps/share-v2/views/main-share-view/hooks/use-main-share-data/useMainShareData.ts","file:///app/packages/libs/shared/src/components/multistep-popup/MultiStepPopup.tsx","file:///app/packages/libs/shared/src/components/new-badge/NewBadge.tsx","file:///app/packages/libs/shared/src/apps/share-v2/views/copy-embed-view/CopyEmbedView.tsx","file:///app/packages/libs/shared/src/hooks/useCopyToClipboard.ts","file:///app/packages/libs/shared/src/apps/share-v2/components/assign-prompt/assign-prompt.scss","file:///app/packages/libs/shared/src/apps/share-v2/components/assign-prompt/AssignPrompt.tsx","file:///app/packages/libs/shared/src/apps/share-v2/views/create-share-view/create-share.scss","file:///app/packages/libs/shared/src/apps/share-v2/views/create-share-view/CreateShareView.tsx","file:///app/packages/libs/shared/src/apps/share-v2/components/share-permanent-link/SharePermanentLink.tsx","file:///app/packages/libs/shared/src/apps/share-v2/components/share-permanent-link-delete/SharePermanentLinkDelete.tsx","file:///app/packages/libs/shared/src/apps/share-v2/components/share-permanent-link-setting/SharePermanentLinkSetting.tsx","file:///app/packages/libs/shared/src/apps/share-v2/components/share-permanent-link-actions/SharePermanentLinkActions.tsx","file:///app/packages/libs/shared/src/apps/share-v2/views/main-share-view/MainShareView.tsx","file:///app/packages/libs/shared/src/apps/share-v2/views/share-settings-view/ShareSettingsView.tsx","file:///app/packages/libs/shared/src/apps/share-v2/views/share-view/ShareView.tsx","file:///app/packages/projects/lite/src/apps/share/views/share-view/ShareView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { Checkbox } from 'libs/shared/components/forms/form-checkbox/Checkbox';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\n\nconst namespace = 'sharev2.deleteShareContent';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport interface DeleteShareContentProps {\n loading: boolean;\n phrases: {\n leadingSentence: string;\n bulletPoints: string[];\n acknowledgement: string;\n deleteButton: string;\n backButton?: string;\n };\n onDelete: () => void;\n onBack?: () => void;\n}\n\nexport function DeleteShareContent(props: DeleteShareContentProps) {\n const [ ack, setAck ] = React.useState(false);\n\n function onDelete() {\n if (!ack || props.loading)\n return;\n\n props.onDelete();\n }\n\n return (\n <div className='d-flex flex-column gap-3'>\n <p className='m-0'>{props.phrases.leadingSentence}</p>\n <ul className='m-0'>\n {props.phrases.bulletPoints.map((phrase, index) => (\n <li key={index}>\n {phrase}\n </li>\n ))}\n </ul>\n <Checkbox\n id='ack'\n checked={ack}\n onChange={e => setAck(e.target.checked)}\n label={props.phrases.acknowledgement}\n />\n <PopupButtons>\n {props.onBack && (\n <PopupButtons.Cancel\n onClick={props.onBack}\n text={props.phrases.backButton ?? getPhrase('backButton')}\n variant='link'\n />\n )}\n <PopupButtons.Submit\n onClick={onDelete}\n text={props.phrases.deleteButton}\n variant='danger'\n disabled={!ack || props.loading}\n showSpinner={props.loading}\n />\n </PopupButtons>\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"active\":\"NV2KW\"};","import React from 'react';\n\nimport { SharePrivacy } from 'libs/shared/apps/share-v2/enums/SharePrivacy';\nimport { type SharePrivacyResponse } from 'libs/shared/apps/share-v2/interfaces/SharePrivacyResponse';\nimport { ShareLinkHelper } from 'libs/shared/apps/share-v2/utils/ShareLinkHelper';\nimport { type SharableEntity } from 'libs/shared/apps/share-v2/utils/ShareViewHelper';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport type { YearGroup } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { getSharePrivacyConfig } from '../../utils/get-share-privacy-config/getSharePrivacyConfig';\n\nimport styles from './share-link-privacy.scss';\n\ninterface SharePrivacyItemProps {\n title: string;\n activePrivacy: SharePrivacy;\n description: string;\n sharePrivacy: SharePrivacy;\n onClick: (sharePrivacy: SharePrivacy) => void\n}\n\nfunction SharePrivacyItem(props: SharePrivacyItemProps) {\n const active = props.activePrivacy === props.sharePrivacy;\n\n function onClick() {\n if (active)\n return;\n\n props.onClick(props.sharePrivacy);\n }\n\n return (\n <li>\n <button\n className={`${active ? styles.active : ''} dropdown-item d-flex align-items-center justify-content-between py-2`}\n onClick={onClick}\n >\n <div className='me-4'>\n <p className='font-label mb-1'>{props.title}</p>\n <p className='font-size-sm mb-0'>{props.description}</p>\n </div>\n {active && <SvgContainer svgName={cvSvgLibrary.Check} />}\n </button>\n </li>\n );\n}\n\ninterface ShareLinkPrivacyProps {\n hasStudentExp: boolean;\n shareOverrideRestrictions: boolean;\n entity: SharableEntity;\n entityTypeId: MasterType;\n yearGroups: YearGroup[];\n sharePrivacy: SharePrivacy;\n entityPrivacy: SharePrivacyResponse;\n onClickSavePrivacy: (privacy: SharePrivacy) => void;\n}\n\nexport function ShareLinkPrivacy(props: ShareLinkPrivacyProps): JSX.Element {\n const canUpdatePrivacy = props.shareOverrideRestrictions && !props.hasStudentExp;\n\n const config = getSharePrivacyConfig({\n entity: props.entity,\n entityPrivacy: props.entityPrivacy,\n hasStudentExp: props.hasStudentExp,\n yearGroups: props.yearGroups,\n _showPasswordProtected: props.sharePrivacy === SharePrivacy.PasswordProtected\n });\n\n const { icon, text } = ShareLinkHelper.getPrivateIconAndText({\n privacy: props.sharePrivacy,\n entityTypeId: props.entityTypeId,\n hasStudentExp: props.hasStudentExp,\n entity: props.entity,\n yearGroups: props.yearGroups\n });\n\n if (!canUpdatePrivacy) {\n return (\n <div className='d-flex align-items-center'>\n <SvgContainer svgName={icon} className='svg-container me-1' />\n <span>{text}</span>\n </div>\n );\n }\n \n return (\n <div className='btn-group'>\n <button\n className={`btn border-0 info-link dropdown-toggle p-1 bg-light-blue-hover`}\n data-bs-toggle='dropdown'\n >\n <SvgContainer svgName={icon} className='svg-container me-1' />\n <span className='me-1'>{text}</span>\n </button>\n <ul className='dropdown-menu cursor-pointer'>\n {Object.values(SharePrivacy).map(sharePrivacy => {\n const { title, description, predicate } = config[sharePrivacy];\n \n if (!predicate())\n return;\n\n return (\n <SharePrivacyItem\n key={sharePrivacy}\n sharePrivacy={sharePrivacy}\n activePrivacy={props.sharePrivacy}\n title={title}\n description={description}\n onClick={props.onClickSavePrivacy}\n />\n );\n })}\n </ul>\n </div>\n );\n}","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { SharePrivacy } from 'libs/shared/apps/share-v2/enums/SharePrivacy';\nimport { type SharePrivacyResponse } from 'libs/shared/apps/share-v2/interfaces/SharePrivacyResponse';\nimport { ShareLinkHelper } from 'libs/shared/apps/share-v2/utils/ShareLinkHelper';\nimport { type SharableEntity } from 'libs/shared/apps/share-v2/utils/ShareViewHelper';\nimport type { YearGroup } from 'libs/shared/interfaces';\n\nconst namespace = 'sharev2.getSharePrivacyConfig';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ntype SharePrivacyConfigItem = {\n title: string;\n description: string;\n predicate: () => boolean;\n}\n\ninterface UseSharePrivacyConfigOptions {\n entityPrivacy: SharePrivacyResponse;\n entity: SharableEntity;\n yearGroups: YearGroup[];\n hasStudentExp: boolean;\n /**\n * To support legacy password protected share links\n */\n _showPasswordProtected?: boolean;\n}\n\nexport function getSharePrivacyConfig(\n options: UseSharePrivacyConfigOptions\n): {[key in SharePrivacy]: SharePrivacyConfigItem} {\n const accessType = ShareLinkHelper.getShareLinkAccessType(options.entityPrivacy);\n const respectRatingText = ShareLinkHelper.getRespectRatingText(\n options.entity,\n options.yearGroups,\n options.hasStudentExp\n );\n\n const SharePrivacyItemConfig: {[key in SharePrivacy]: SharePrivacyConfigItem} = {\n [SharePrivacy.JustMySchool]: {\n title: getPhrase('respectRatings'),\n description: respectRatingText,\n predicate: () => accessType !== 'protected'\n },\n [SharePrivacy.Protected]: {\n title: getPhrase('respectRatings'),\n description: respectRatingText,\n predicate: () => accessType === 'protected'\n },\n [SharePrivacy.JustMySchoolOverrideRestriction]: {\n title: getPhrase('justMySchool'),\n description: getPhrase('justMySchoolDescription'),\n predicate: () => accessType !== 'protected'\n },\n [SharePrivacy.ProtectedOverrideRestriction]: {\n title: getPhrase('justMySchool'),\n description: getPhrase('clickViewOnly'),\n predicate: () => accessType === 'protected'\n },\n [SharePrivacy.Public]: {\n title: getPhrase('public'),\n description: getPhrase('publicDescription'),\n predicate: () => accessType === 'owner'\n },\n /**\n * Not supported\n */\n [SharePrivacy.Direct]: {\n title: '',\n description: '',\n predicate: () => false\n },\n [SharePrivacy.PasswordProtected]: {\n title: getPhrase('passwordProtectedTitle'),\n description: getPhrase('passwordProtectedDescription'),\n predicate: () => options._showPasswordProtected\n },\n [SharePrivacy.PinCode]: {\n title: getPhrase('pinCode'),\n description: getPhrase('pinCodeDescription'),\n predicate: () => false\n }\n };\n\n return SharePrivacyItemConfig;\n}\n\nexport function getDefaultSharePrivacy(options: UseSharePrivacyConfigOptions): SharePrivacy {\n const items = getSharePrivacyConfig(options);\n\n const validItems = Object.entries(items).filter(([ , config ]) => config.predicate());\n\n if (!validItems.length)\n return;\n\n return ArrayHelper.first(validItems)[0] as SharePrivacy;\n}","import React from 'react';\n\nimport { AppLinkHelper } from 'libs/common/backbone/core';\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EventVersion, LocationContext } from 'libs/analytics/interfaces';\n\nimport { DeleteShareContent } from 'libs/shared/apps/share-v2/components/delete-share-content/DeleteShareContent';\nimport { useShareLinkActions } from 'libs/shared/apps/share-v2/hooks/useShareLinkActions';\nimport { useShareLinkData } from 'libs/shared/apps/share-v2/hooks/useShareLinkData';\nimport { getShareEventLogger } from 'libs/shared/apps/share-v2/utils/get-share-event-logger/getShareEventLogger';\nimport { SharableEntityType } from 'libs/shared/apps/share-v2/utils/ShareViewHelper';\nimport { MultiStepPopupViewProps } from 'libs/shared/components/multistep-popup/MultiStepPopup';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\n\nconst namespace = 'sharev2.deleteShareLinkConfirmation';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport interface DeleteShareLinkConfirmationViewProps extends MultiStepPopupViewProps {\n entityId: string;\n entityType: SharableEntityType;\n previousAppLink?: Core.AppLink;\n goToSettingsStep?: () => void;\n}\n\nexport function DeleteShareLinkConfirmationView(props: DeleteShareLinkConfirmationViewProps) {\n const alerts = useAlerts();\n\n const [ loading, setLoading ] = React.useState(false);\n\n const { share, entity } = useShareLinkData({\n entityId: props.entityId,\n entityType: props.entityType\n });\n\n const { deleteShareLink } = useShareLinkActions({\n entityId: props.entityId\n });\n\n const { log } = getShareEventLogger({\n data: {\n entity: {\n id: props.entityId,\n type: props.entityType\n }\n },\n analyticsOptions: {\n location: LocationContext.Popup,\n eventVersion: EventVersion.V3\n }\n });\n \n function onClickDelete() {\n setLoading(true);\n\n deleteShareLink(share.data?.shareId).then(() => {\n log({\n type: 'delete-share-link',\n share: share.data\n });\n\n setLoading(false);\n alerts.success(getPhrase('deleteSuccess'));\n props.closePopup();\n\n if (props.previousAppLink) {\n AppLinkHelper.trigger(props.previousAppLink);\n }\n }).catch(() => {\n alerts.error(getPhrase('deleteFailed', { name: entity.data.name, escapeText: true }));\n }).finally(() => {\n setLoading(false);\n });\n }\n\n const loaded = !!share.data && !!entity.data;\n\n return (\n <Popup\n title={getPhrase('title')}\n closePopup={props.closePopup}\n showLoadingSpinner={!loaded || props.loading}\n animation={props.animate}\n >\n <DeleteShareContent\n loading={loading}\n phrases={{\n leadingSentence: getPhrase('intro'),\n bulletPoints: [\n getPhrase('loseAccessInfo'),\n getPhrase('loseAccessUsage')\n ],\n acknowledgement: getPhrase('acknowledgement'),\n backButton: getPhrase('back'),\n deleteButton: getPhrase('delete')\n }}\n onDelete={onClickDelete}\n onBack={props.goToSettingsStep ? props.goToSettingsStep : undefined}\n />\n </Popup>\n );\n}\n","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/react/index';\n\nimport { SharePrivacy } from 'libs/shared/apps/share-v2/enums/SharePrivacy';\nimport { useShareLinkActions } from 'libs/shared/apps/share-v2/hooks/useShareLinkActions';\nimport { useShareLinkData } from 'libs/shared/apps/share-v2/hooks/useShareLinkData';\nimport { ShareLogFn } from 'libs/shared/apps/share-v2/utils/get-share-event-logger/getShareEventLogger';\nimport { SharableEntityType, ShareViewHelper } from 'libs/shared/apps/share-v2/utils/ShareViewHelper';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport type { YearGroup } from 'libs/shared/interfaces';\n\nconst namespace = 'sharev2.useMainShareData';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface UseMainShareDataOptions {\n entityId: string;\n entityType: SharableEntityType;\n log: ShareLogFn;\n}\n\nexport function useMainShareData(options: UseMainShareDataOptions) {\n const alerts = useAlerts();\n const { hasPermissions } = usePermissions();\n\n const {\n shareToGoogleClassroom,\n shareToMicrosoftTeams,\n isLoadingSettings,\n shareOverrideRestrictions\n } = useSettings(null);\n \n const {\n currentUser,\n entity,\n privacy,\n share,\n config\n } = useShareLinkData({ entityId: options.entityId, entityType: options.entityType });\n \n const {\n loaded: shareActionLoaded,\n updateShareLink\n } = useShareLinkActions({ entityId: options.entityId });\n \n const yearGroups = Flight.useBasicFetch<YearGroup[]>(\n currentUser.data && CustomerRequests.yearGroups(currentUser.data.customerId)\n );\n\n async function onClickSavePrivacy(updatedPrivacy: SharePrivacy): Promise<void> {\n try {\n const updatedShare = await updateShareLink(share.data.shareId, { privacy: updatedPrivacy });\n options.log({\n type: 'update-share-link',\n share: updatedShare\n });\n alerts.success(getPhrase('privaciesSuccess', { name: entity.data.name, escapeText: true }));\n } catch {\n alerts.error(getPhrase('privaciesError', { name: entity.data.name, escapeText: true }));\n }\n }\n \n const canEmbed = ShareViewHelper.canEmbed(options.entityType);\n const integrations = ShareViewHelper.getEnabledIntegrations(shareToGoogleClassroom, shareToMicrosoftTeams);\n const hasManageIntegrationsPermission = hasPermissions(PermissionName.ManageIntegrations);\n const hasStudentExp = hasPermissions(PermissionName.StudentExperience);\n const hasManageShareLinkSettings = hasPermissions(PermissionName.ManageShareLinkSettings);\n const canAccessSettings = share.data && ShareViewHelper.canAddPolicies(options.entityType);\n \n const loaded = shareActionLoaded\n && !!share.data\n && !!entity.data\n && !!privacy.data\n && !!config.data\n && !!currentUser.data\n && !!yearGroups\n && !isLoadingSettings;\n\n\n return {\n data: {\n share,\n loaded,\n entity,\n privacy,\n config,\n yearGroups,\n shareOverrideRestrictions,\n currentUser\n },\n canEmbed,\n integrations,\n hasStudentExp,\n canAccessSettings,\n hasManageShareLinkSettings,\n hasManageIntegrationsPermission,\n onClickSavePrivacy\n };\n}","import React from 'react';\n\nimport { PopupViewProps } from 'libs/shared/interfaces';\n\nexport interface MultiStepPopupViewProps extends PopupViewProps {\n animate?: boolean;\n loading?: boolean;\n}\n\nexport type MultiStepItemConfig<TProps, TSteps extends string> = {\n [Key in TSteps]: {\n view: (props: TProps) => JSX.Element;\n }\n}\n\ninterface MultiStepPopupProps<\n TProps,\n TSteps extends string\n> {\n step: TSteps;\n data: TProps;\n steps: MultiStepItemConfig<TProps, TSteps>;\n loading?: boolean;\n animate?: boolean;\n setStep: (step: TSteps) => void;\n closePopup: () => void;\n}\n\nexport function MultiStepPopup<TProps, TSteps extends string>(\n props: MultiStepPopupProps<TProps, TSteps>\n): JSX.Element {\n const [ animate, setAnimate ] = React.useState<boolean>(props.animate ?? true);\n\n function setStep(step: TSteps) {\n /**\n * We want to animate the popup for the first time it loads in.\n * After that every step changes should not animate other popups\n */\n setAnimate(false);\n props.setStep(step);\n }\n\n function closePopup() {\n props.closePopup();\n }\n\n const stepConfig = props.steps[props.step];\n /**\n * This is so that we do not override `loading` prop \n * passed into `ViewComponent` from `props.data` if `props.loading` is undefined.\n * We only want to override the prop if this is set.\n */\n const loading = typeof props.loading !== 'undefined' ? { loading: props.loading } : {};\n \n const viewProps: TProps = {\n ...props.data,\n ...loading,\n animate: props.animate ?? animate,\n closePopup,\n setStep\n };\n\n if (!stepConfig)\n return <></>;\n\n const ViewComponent = stepConfig.view;\n\n return <ViewComponent {...viewProps} />;\n}","import React from 'react';\n\nimport { classNames } from 'libs/common/react/utils/ClassNameHelper';\n\nimport { Text } from 'libs/shared/components/text/Text';\n\nconst namespace = 'shared.newBadge';\n\ninterface NewBadgeProps {\n size: 'sm' | 'std';\n invert?: boolean;\n text?: string;\n className?: string;\n}\n\nexport function NewBadge(props: NewBadgeProps): JSX.Element {\n return (\n <span className={classNames(\n 'badge badge-wrapper rounded-pill d-flex justify-content-center',\n 'fw-medium text-blue',\n props.size === 'sm' ? 'badge-sm' : 'badge-std',\n props.invert ? 'bg-white' : 'bg-light-blue',\n props.className\n )}>\n {props.text || <Text phrase='new' namespace={namespace} />}\n </span>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EventVersion, LocationContext } from 'libs/analytics/interfaces';\n\nimport { EmbedDetails } from 'libs/shared/apps/share/components/copy-embed-html/CopyEmbedHtml';\nimport { CopyEmbedHtml } from 'libs/shared/apps/share-v2/components/copy-embed-html/CopyEmbedHtml';\nimport { useShareLinkData } from 'libs/shared/apps/share-v2/hooks/useShareLinkData';\nimport { getShareEventLogger } from 'libs/shared/apps/share-v2/utils/get-share-event-logger/getShareEventLogger';\nimport { type SharableEntityType } from 'libs/shared/apps/share-v2/utils/ShareViewHelper';\nimport { MultiStepPopupViewProps } from 'libs/shared/components/multistep-popup/MultiStepPopup';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\n\nconst namespace = 'sharev2.copyEmbed';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport interface CopyEmbedViewProps extends MultiStepPopupViewProps{\n entityId: string;\n entityType: SharableEntityType;\n goToShareLinkStep: () => void;\n}\n\nexport function CopyEmbedView(props: CopyEmbedViewProps): JSX.Element {\n const { config, share, entity } = useShareLinkData({\n entityId: props.entityId,\n entityType: props.entityType\n });\n\n const { log } = getShareEventLogger({\n data: {\n entity: {\n id: props.entityId,\n type: props.entityType\n }\n },\n analyticsOptions: {\n location: LocationContext.Popup,\n eventVersion: EventVersion.V3\n }\n });\n\n function onCopyLogEvent(embedDetails: EmbedDetails) {\n log({\n type: 'copy-embed-html',\n share: share.data,\n embedDetails\n });\n }\n \n const loaded = !!share.data\n && !!config.data;\n\n return (\n <Popup\n title={getPhrase('title')}\n closePopup={props.closePopup}\n showLoadingSpinner={!loaded || props.loading}\n animation={props.animate}\n >\n <div className='mb-3'>\n <CopyEmbedHtml\n analyticsOptions={{}}\n entity={entity.data}\n embedUrl={share.data.link.shortenedEmbedUrl}\n entityId={props.entityId}\n entityType={props.entityType}\n liteUrl={config.data.liteUrl}\n shareId={share.data.shareId}\n onCopy={onCopyLogEvent}\n />\n </div>\n <PopupButtons>\n <PopupButtons.Cancel variant='link' onClick={props.goToShareLinkStep} text={getPhrase('back')} />\n </PopupButtons>\n </Popup>\n );\n}","import { useCallback, useState } from 'react';\n\n/**\n * The copied text as `string` or `null` if nothing has been copied yet.\n */\ntype CopiedValue = string | null\n\n/**\n * Function to copy text to the clipboard.\n * @param text - The text to copy to the clipboard.\n * @returns {Promise<boolean>} A promise that resolves to `true` if the text was copied successfully, or `false` otherwise.\n */\ntype CopyFn = (text: string) => Promise<boolean>\n\n/**\n * Custom hook that copies text to the clipboard using the [`Clipboard API`](https://developer.mozilla.org/en-US/docs/Web/API/Clipboard_API)\n * if available else it falls back to [`document.execCommand`](https://developer.mozilla.org/en-US/docs/Web/API/Document/execCommand)\n * @see [Documentation](https://usehooks-ts.com/react-hook/use-copy-to-clipboard)\n * @see [Documentation](https://github.com/jaredLunde/react-hook/blob/master/packages/copy/src/index.tsx)\n * @example\n * ```tsx\n * const [copiedText, copyToClipboard] = useCopyToClipboard();\n * const textToCopy = 'Hello, world!';\n *\n * // Attempt to copy text to the clipboard\n * copyToClipboard(textToCopy)\n * .then(success => {\n * if (success) {\n * console.log(`Text \"${textToCopy}\" copied to clipboard successfully.`);\n * } else {\n * console.error('Failed to copy text to clipboard.');\n * }\n * });\n * ```\n */\nexport function useCopyToClipboard(): {copiedText: CopiedValue, copyToClipboard: CopyFn} {\n const [ copiedText, setCopiedText ] = useState<CopiedValue>(null);\n\n const copy: CopyFn = useCallback(async text => {\n // Try to save to clipboard then save it in the state if worked\n try {\n await copyToClipboard(text);\n setCopiedText(text);\n return true;\n } catch (error) {\n console.warn('Copy failed', error);\n setCopiedText(null);\n return false;\n }\n }, []);\n\n return { copiedText, copyToClipboard: copy };\n}\n\nfunction copyToClipboard(text: string) {\n // uses the Async Clipboard API when available. Requires a secure browing\n // context (i.e. HTTPS)\n if (navigator.clipboard) return navigator.clipboard.writeText(text);\n // puts the text to copy into a <span>\n const span = document.createElement('span');\n span.textContent = text;\n // preserves consecutive spaces and newlines\n span.style.whiteSpace = 'pre';\n // adds the <span> to the page\n document.body.appendChild(span);\n // makes a selection object representing the range of text selected by the user\n const selection = window.getSelection();\n if (!selection) return Promise.reject();\n const range = window.document.createRange();\n selection.removeAllRanges();\n range.selectNode(span);\n selection.addRange(range);\n // copies text to the clipboard\n try {\n window.document.execCommand('copy');\n } catch (err) {\n return Promise.reject();\n }\n // cleans up the dom element and selection\n selection.removeAllRanges();\n window.document.body.removeChild(span);\n // the Async Clipboard API returns a promise that may reject with `undefined`\n // so we match that here for consistency\n return Promise.resolve();\n}","// extracted by mini-css-extract-plugin\nexport default {\"assignPrompt\":\"R73Xv\",\"badge\":\"urP15\"};","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { classNames } from 'libs/common/react/utils/ClassNameHelper';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nconst namespace = 'sharev2.assignPrompt';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nimport { NewBadge } from 'libs/shared/components/new-badge/NewBadge';\n\nimport styles from './assign-prompt.scss';\n\ninterface AssignPromptProps {\n appLink: Core.AppLink;\n}\n\nexport function AssignPrompt(props: AssignPromptProps): JSX.Element {\n return (\n <AppLink\n appLink={props.appLink}\n className={classNames(\n 'd-flex flex-row gap-3 p-3 justify-content-between rounded-3 bg-white hover-bg-light-blue',\n styles.assignPrompt\n )}\n >\n <div className='d-flex flex-row gap-2 align-items-center fw-medium'>\n <Text namespace={namespace} phrase='title' />\n <NewBadge size='sm' text={getPhrase('badgeText')} className={styles.badge} />\n </div>\n <div>\n <SvgContainer svgName={cvSvgLibrary.ChevronRight} />\n </div>\n </AppLink>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"input\":\"mc17h\"};","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EventVersion, LocationContext } from 'libs/analytics/interfaces';\n\nimport { useShareLinkActions } from 'libs/shared/apps/share-v2/hooks/useShareLinkActions';\nimport { useShareLinkData } from 'libs/shared/apps/share-v2/hooks/useShareLinkData';\nimport { Share } from 'libs/shared/apps/share-v2/interfaces/Share';\nimport { getShareEventLogger } from 'libs/shared/apps/share-v2/utils/get-share-event-logger/getShareEventLogger';\nimport { SharableEntityType } from 'libs/shared/apps/share-v2/utils/ShareViewHelper';\nimport { MultiStepPopupViewProps } from 'libs/shared/components/multistep-popup/MultiStepPopup';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { SpinnerButton } from 'libs/shared/components/spinner-button/SpinnerButton';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { useCopyToClipboard } from 'libs/shared/hooks/useCopyToClipboard';\nimport { AssignHelper } from 'libs/shared/utils/AssignHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { AssignPrompt } from '../../components/assign-prompt/AssignPrompt';\n\nimport styles from './create-share.scss';\n\nconst namespace = 'sharev2.createShare';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport interface CreateShareViewProps extends MultiStepPopupViewProps {\n entityId: string;\n entityType: SharableEntityType\n setShowCopiedText: (val: boolean) => void;\n goToShareLinkStep: () => void;\n assignFlowSelectorAppLink?: Core.AppLink;\n}\n\nconst PLACEHOLDER_TEXT = 'https://clickv.ie/...';\n\nexport function CreateShareView(props: CreateShareViewProps): JSX.Element {\n const alerts = useAlerts();\n const { copyToClipboard } = useCopyToClipboard();\n\n const { log } = getShareEventLogger({\n data: {\n entity: {\n id: props.entityId,\n type: props.entityType\n }\n },\n analyticsOptions: {\n location: LocationContext.Popup,\n eventVersion: EventVersion.V4\n }\n });\n\n const [ loading, setLoading ] = React.useState(false);\n \n const { entity, share, currentUser } = useShareLinkData({\n entityId: props.entityId,\n entityType: props.entityType\n });\n\n const { loaded: shareLinkActionsLoaded, createShareLink } = useShareLinkActions({\n entityId: props.entityId\n });\n\n function onSuccess(share: Share) {\n log({\n type: 'create-share-link',\n share\n });\n \n copyToClipboard(share.link?.shortenedUrl)\n .then(success => {\n /**\n * If the copy to clipboard somehow fails we still want to take\n * them to main share view where they can copy the link again.\n * Rather showing 'Copied' falsely we show them a toast that\n * says share link has been created.\n * - Nish\n */\n if (!success) {\n alerts.success(getPhrase('createSuccess', { name: entity.data.name, escapeText: true }));\n return;\n }\n \n /**\n * If we successfully copy the share link we show 'Copied' in the\n * button in main share link view\n * - Nish\n */\n log({\n type: 'copy-share-link',\n share\n });\n props.setShowCopiedText(true);\n setTimeout(() => props.setShowCopiedText(false), 3000);\n });\n\n props.goToShareLinkStep();\n }\n\n function onClickCreateLink() {\n setLoading(true);\n\n createShareLink()\n .then(onSuccess)\n .catch(() => {\n alerts.error(getPhrase('createError', { name: entity.data.name, escapeText: true }));\n })\n .finally(() => {\n setLoading(false);\n });\n }\n\n React.useEffect(() => {\n if (!share.data)\n return;\n \n props.goToShareLinkStep();\n }, [share.data]);\n \n const loaded = !!entity.data && !!share.hasCompleted && shareLinkActionsLoaded;\n const showAssignPrompt = AssignHelper.hideAssignButton(currentUser.data);\n\n function getModalClassNames() {\n if (!showAssignPrompt || !loaded)\n return null;\n\n return {\n popupContentClassName: 'bg-transparent border-0',\n popupBodyClassName: 'p-0',\n topContentClassName: 'bg-white rounded-bottom-3 p-3 mb-3'\n };\n }\n\n const modalClassNames = getModalClassNames();\n \n return (\n <Popup\n title={getPhrase('title')}\n closePopup={props.closePopup}\n showLoadingSpinner={!loaded || props.loading}\n animation={props.animate}\n contentClassName={modalClassNames?.popupContentClassName}\n bodyClassName={modalClassNames?.popupBodyClassName}\n >\n <div className={modalClassNames?.topContentClassName}>\n <p className='mb-2'><Text namespace={namespace} phrase='info' /></p>\n <div className='d-flex gap-2 position-relative w-100'>\n <input\n type='text'\n autoComplete='off'\n className={`form-control ${styles.input}`}\n spellCheck={false}\n placeholder={PLACEHOLDER_TEXT}\n readOnly\n />\n <SpinnerButton\n variant='dark'\n showSpinner={loading}\n className='text-nowrap d-flex align-items-center gap-1'\n onClick={onClickCreateLink}\n spinnerText={getPhrase('buttonLoading')}\n >\n <SvgContainer svgName={cvSvgLibrary.Link} />\n <Text namespace={namespace} phrase='button' />\n </SpinnerButton>\n </div>\n </div>\n\n {showAssignPrompt && props.assignFlowSelectorAppLink && (\n <AssignPrompt appLink={props.assignFlowSelectorAppLink} />\n )}\n </Popup>\n );\n}","import React from 'react';\n\nimport { ShareLinkPrivacy } from 'libs/shared/apps/share-v2/components/share-link-privacy/ShareLinkPrivacy';\nimport { SharePrivacy } from 'libs/shared/apps/share-v2/enums/SharePrivacy';\nimport type { Share } from 'libs/shared/apps/share-v2/interfaces/Share';\nimport type { SharePrivacyResponse } from 'libs/shared/apps/share-v2/interfaces/SharePrivacyResponse';\nimport { type SharableEntity, SharableEntityType } from 'libs/shared/apps/share-v2/utils/ShareViewHelper';\nimport { CopyInput } from 'libs/shared/components/copy-input/CopyInput';\nimport type { YearGroup } from 'libs/shared/interfaces';\n\ninterface SharePermanentLinkProps {\n share: Share;\n entityType: SharableEntityType;\n hasStudentExp: boolean;\n shareOverrideRestrictions: boolean;\n entity: SharableEntity;\n yearGroups: YearGroup[];\n privacy: SharePrivacyResponse;\n onClickSavePrivacy: (privacy: SharePrivacy) => void;\n showCopiedText: boolean;\n onCopy?: () => void;\n}\n\nexport function SharePermanentLink(props: SharePermanentLinkProps): JSX.Element {\n const [ logged, setLogged ] = React.useState(false);\n \n function onCopy() {\n if (logged)\n return;\n\n setLogged(true);\n \n typeof props.onCopy === 'function' && props.onCopy();\n }\n\n return (\n <div className='d-flex justify-content-start align-items-start flex-column gap-2'>\n <ShareLinkPrivacy\n sharePrivacy={props.share.privacy}\n entityPrivacy={props.privacy}\n entityTypeId={props.entity.typeId}\n entity={props.entity}\n yearGroups={props.yearGroups}\n \n hasStudentExp={props.hasStudentExp}\n shareOverrideRestrictions={props.shareOverrideRestrictions}\n onClickSavePrivacy={props.onClickSavePrivacy}\n />\n <CopyInput\n styling='normal-v2'\n value={props.share.link.shortenedUrl}\n showCopiedText={props.showCopiedText}\n onCopy={onCopy}\n />\n </div>\n );\n}","import React from 'react';\n\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\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\nconst namespace = 'sharev2.sharePermanentLinkDelete';\n\ninterface SharePermanentLinkDeleteProps {\n onClick: () => void;\n}\n\nexport function SharePermanentLinkDelete(props: SharePermanentLinkDeleteProps): JSX.Element {\n return (\n <div className='d-flex flex-row justify-content-between align-items-center'>\n <DivButton\n onClick={props.onClick}\n className='d-inline-block p-1 pe-2 rounded-1 hover-bg-light-blue'\n >\n <div className='d-flex align-items-center'>\n <div className='me-2'>\n <SvgContainer svgName={cvSvgLibrary.Delete} size={SvgContainerSize.Standard} />\n </div>\n <Text namespace={namespace} phrase='deleteLink' />\n </div>\n </DivButton>\n </div>\n );\n}","import React from 'react';\n\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\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\nconst namespace = 'sharev2.sharePermanentLinkSetting';\n\ninterface SharePermanentLinkSettingProps {\n manageShareLinkSettings: boolean;\n \n onClickEditSettings: () => void;\n}\n\nexport function SharePermanentLinkSetting(props: SharePermanentLinkSettingProps): JSX.Element {\n if (!props.manageShareLinkSettings)\n return null;\n \n return (\n <div className='d-flex flex-row justify-content-between align-items-center'>\n <DivButton\n onClick={props.onClickEditSettings}\n className={`d-inline-block p-1 pe-2 rounded-1 hover-bg-light-blue`}\n >\n <div className='d-flex align-items-center'>\n <div className='me-2'>\n <SvgContainer svgName={cvSvgLibrary.Cog} size={SvgContainerSize.Standard} />\n </div>\n <Text namespace={namespace} phrase='editSettings' />\n </div>\n </DivButton>\n </div>\n );\n}","import React from 'react';\n\nimport { IntegrationId } from 'libs/shared/enums/IntegrationId';\n\nimport { GetEmbedCode } from '../get-embed-code/GetEmbedCode';\nimport { ShareIntegrations } from '../share-integrations/ShareIntegrations';\nimport { SharePermanentLinkDelete } from '../share-permanent-link-delete/SharePermanentLinkDelete';\nimport { SharePermanentLinkSetting } from '../share-permanent-link-setting/SharePermanentLinkSetting';\n\ninterface SharePermanentLinkActionsProps {\n canEmbed: boolean;\n shareLink: string;\n showIntegrations: boolean;\n canAccessSettings: boolean;\n integrations: IntegrationId[];\n hasManageShareLinkSettings: boolean;\n closePopup: () => void;\n goToDeleteStep: () => void;\n goToSettingsStep: () => void;\n onClickGetEmbedCode: () => void\n}\n\nexport function SharePermanentLinkActions(props: SharePermanentLinkActionsProps): JSX.Element {\n return (\n <div className='d-flex flex-row justify-content-between gap-2'>\n <div>\n {props.canEmbed &&\n <GetEmbedCode onClickGetEmbedCode={props.onClickGetEmbedCode} minimal />\n }\n\n {props.canAccessSettings ?\n <SharePermanentLinkSetting\n manageShareLinkSettings={props.hasManageShareLinkSettings}\n onClickEditSettings={props.goToSettingsStep}\n /> :\n <SharePermanentLinkDelete onClick={props.goToDeleteStep} />\n }\n </div>\n <div>\n {props.showIntegrations && !!props.integrations.length &&\n <ShareIntegrations\n integrations={props.integrations}\n url={props.shareLink}\n closePopup={props.closePopup}\n \n hideLookingForIntegrations\n />\n }\n </div>\n </div>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { classNames } from 'libs/common/react/utils/ClassNameHelper';\n\nimport { EventVersion, LocationContext } from 'libs/analytics/interfaces';\n\nimport { SharePermanentLink } from 'libs/shared/apps/share-v2/components/share-permanent-link/SharePermanentLink';\nimport { SharePermanentLinkActions } from 'libs/shared/apps/share-v2/components/share-permanent-link-actions/SharePermanentLinkActions';\nimport { getShareEventLogger } from 'libs/shared/apps/share-v2/utils/get-share-event-logger/getShareEventLogger';\nimport { type SharableEntityType } from 'libs/shared/apps/share-v2/utils/ShareViewHelper';\nimport { LookingForIntegration } from 'libs/shared/components/looking-for-integration/LookingForIntegration';\nimport { MultiStepPopupViewProps } from 'libs/shared/components/multistep-popup/MultiStepPopup';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { AssignHelper } from 'libs/shared/utils/AssignHelper';\n\nimport { AssignPrompt } from '../../components/assign-prompt/AssignPrompt';\n\nimport { useMainShareData } from './hooks/use-main-share-data/useMainShareData';\n\nconst namespace = 'sharev2.mainShareView';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport interface MainShareViewProps extends MultiStepPopupViewProps {\n entityId: string;\n showCopiedText?: boolean;\n entityType: SharableEntityType;\n enableIntegrationBanner: boolean;\n messagePopupAppLink?: Core.AppLink;\n integrationSettingAppLink?: Core.AppLink;\n assignFlowSelectorAppLink?: Core.AppLink;\n goToDeleteStep: () => void;\n goToSettingsStep: () => void;\n goToCopyEmbedStep: () => void;\n}\n\nexport function MainShareView(props: MainShareViewProps): JSX.Element {\n const { log } = getShareEventLogger({\n data: {\n entity: {\n id: props.entityId,\n type: props.entityType\n }\n },\n analyticsOptions: {\n eventVersion: EventVersion.V3,\n location: LocationContext.Popup\n }\n });\n \n const {\n data,\n canEmbed,\n integrations,\n hasStudentExp,\n canAccessSettings,\n hasManageShareLinkSettings,\n hasManageIntegrationsPermission,\n onClickSavePrivacy\n } = useMainShareData({\n entityId: props.entityId,\n entityType: props.entityType,\n log\n });\n\n const {\n share,\n loaded,\n entity,\n privacy,\n yearGroups,\n shareOverrideRestrictions,\n currentUser\n } = data;\n\n const showAssignPrompt = AssignHelper.hideAssignButton(currentUser.data);\n\n function logOnCopyEvent() {\n log({\n type: 'copy-share-link',\n share: share.data\n });\n }\n\n function getModalClassNames() {\n if (!showAssignPrompt || !loaded)\n return null;\n\n return {\n popupContentClassName: 'bg-transparent border-0',\n popupBodyClassName: 'p-0',\n topContentClassName: 'bg-white rounded-bottom-3 p-3 mb-3'\n };\n }\n\n const modalClassNames = getModalClassNames();\n\n const integrationAppLink = hasManageIntegrationsPermission\n ? props.integrationSettingAppLink\n : props.messagePopupAppLink;\n\n return (\n <Popup\n animation={props.animate}\n title={getPhrase('title')}\n closePopup={props.closePopup}\n showLoadingSpinner={!loaded || props.loading}\n contentClassName={modalClassNames?.popupContentClassName}\n bodyClassName={modalClassNames?.popupBodyClassName}\n >\n <div className={classNames('d-flex flex-column gap-2', modalClassNames?.topContentClassName)}>\n <SharePermanentLink\n share={share.data}\n entity={entity.data}\n privacy={privacy.data}\n yearGroups={yearGroups.data}\n entityType={props.entityType}\n hasStudentExp={hasStudentExp}\n showCopiedText={props.showCopiedText}\n shareOverrideRestrictions={shareOverrideRestrictions}\n onCopy={logOnCopyEvent}\n onClickSavePrivacy={onClickSavePrivacy}\n />\n <SharePermanentLinkActions\n canEmbed={canEmbed}\n integrations={integrations}\n canAccessSettings={canAccessSettings}\n shareLink={share.data?.link.shortenedUrl}\n showIntegrations={props.enableIntegrationBanner}\n hasManageShareLinkSettings={hasManageShareLinkSettings}\n closePopup={props.closePopup}\n goToDeleteStep={props.goToDeleteStep}\n goToSettingsStep={props.goToSettingsStep}\n onClickGetEmbedCode={props.goToCopyEmbedStep}\n />\n {props.enableIntegrationBanner && !integrations.length &&\n <LookingForIntegration\n normalText\n hideDismiss\n hideBackground\n appLink={integrationAppLink}\n closePopup={props.closePopup}\n />\n }\n </div>\n\n {showAssignPrompt && props.assignFlowSelectorAppLink && (\n <AssignPrompt appLink={props.assignFlowSelectorAppLink} />\n )}\n </Popup>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EventVersion, LocationContext } from 'libs/analytics/interfaces';\n\nimport { ShareSettingsForm } from 'libs/shared/apps/share-v2/components/share-settings-form/ShareSettingsForm';\nimport { getShareEventLogger } from 'libs/shared/apps/share-v2/utils/get-share-event-logger/getShareEventLogger';\nimport { SharableEntityType, type ShareSettingsFormFields, ShareViewHelper } from 'libs/shared/apps/share-v2/utils/ShareViewHelper';\nimport { type FormSubmissionOptions } from 'libs/shared/components/forms/form-wrapper/FormWrapper';\nimport { MultiStepPopupViewProps } from 'libs/shared/components/multistep-popup/MultiStepPopup';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\n\nimport { useShareSettingsData } from './hooks/use-share-settings-data/useShareSettingsData';\n\nconst namespace = 'sharev2.shareSettingsView';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport interface ShareSettingsViewProps extends MultiStepPopupViewProps {\n entityId: string;\n entityType: SharableEntityType;\n goToShareLinkStep: () => void;\n goToDeleteStep: () => void;\n}\n\n\nexport function ShareSettingsView(props: ShareSettingsViewProps): JSX.Element {\n const { log } = getShareEventLogger({\n data: {\n entity: {\n id: props.entityId,\n type: props.entityType\n }\n },\n analyticsOptions: {\n location: LocationContext.Popup,\n eventVersion: EventVersion.V3\n }\n });\n \n const { initialValues, onClickSaveLink } = useShareSettingsData({\n entityId: props.entityId,\n entityType: props.entityType,\n log\n });\n \n function onSubmit(\n data: ShareSettingsFormFields,\n onDone: (options?: FormSubmissionOptions<ShareSettingsFormFields>) => void\n ): void {\n onClickSaveLink({\n options: {\n immediateFeedback: data.immediateFeedback,\n preventScrubbing: data.preventScrubbing\n }\n }, onDone);\n }\n\n const {\n showImmediateFeedbackField,\n showPreventScrubbingField\n } = ShareViewHelper.getEnabledSettingsField(props.entityType);\n\n return (\n <Popup\n title={getPhrase('title')}\n showLoadingSpinner={props.loading}\n closePopup={props.closePopup}\n animation={props.animate}\n >\n <ShareSettingsForm\n initialValues={initialValues}\n onSubmit={onSubmit}\n onClickDelete={props.goToDeleteStep}\n showImmediateFeedbackField={showImmediateFeedbackField}\n showPreventScrubbingField={showPreventScrubbingField}\n />\n <PopupButtons className='mt-3'>\n <PopupButtons.Cancel onClick={props.goToShareLinkStep} text={getPhrase('back')} variant='link' />\n </PopupButtons>\n </Popup>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\n\nimport { useShareLinkData } from 'libs/shared/apps/share-v2/hooks/useShareLinkData';\nimport { AllShareLinkViewProps } from 'libs/shared/apps/share-v2/interfaces/MultiStepPopup';\nimport { ShareScreen } from 'libs/shared/apps/share-v2/interfaces/ShareScreen';\nimport { type SharableEntityType, ShareViewHelper } from 'libs/shared/apps/share-v2/utils/ShareViewHelper';\nimport { CopyEmbedView } from 'libs/shared/apps/share-v2/views/copy-embed-view/CopyEmbedView';\nimport { CreateShareView } from 'libs/shared/apps/share-v2/views/create-share-view/CreateShareView';\nimport { DeleteShareLinkConfirmationView } from 'libs/shared/apps/share-v2/views/delete-share-link-confirmation-view/DeleteShareLinkConfirmationView';\nimport { MainShareView } from 'libs/shared/apps/share-v2/views/main-share-view/MainShareView';\nimport { ShareSettingsView } from 'libs/shared/apps/share-v2/views/share-settings-view/ShareSettingsView';\nimport { MultiStepPopup } from 'libs/shared/components/multistep-popup/MultiStepPopup';\nimport type { PopupViewProps } from 'libs/shared/interfaces';\n\ninterface ShareViewProps extends PopupViewProps {\n entityId: string;\n entityType: SharableEntityType\n enableIntegrationBanner: boolean;\n assignFlowSelectorAppLink?: Core.AppLink;\n integrationSettingAppLink?: Core.AppLink;\n messagePopupAppLink?: Core.AppLink;\n}\n\nexport function ShareView(props: ShareViewProps): JSX.Element {\n const { share } = useShareLinkData({ entityId: props.entityId, entityType: props.entityType });\n\n const [ animate, setAnimate ] = React.useState<boolean>(true);\n const [ screen, setScreen ] = React.useState<ShareScreen>(share.data ? 'share-link' : 'create-link');\n const [ showCopiedText, setShowCopiedText ] = React.useState(false);\n\n const canAccessSettings = ShareViewHelper.canAddPolicies(props.entityType);\n\n function setStep(step: ShareScreen) {\n setAnimate(false);\n setScreen(step);\n }\n\n function goToSettingsStep() {\n if (!canAccessSettings) {\n setStep('share-link');\n return;\n }\n \n setStep('link-settings');\n }\n\n const data: AllShareLinkViewProps = {\n entityId: props.entityId,\n entityType: props.entityType,\n showCopiedText: showCopiedText,\n messagePopupAppLink: props.messagePopupAppLink,\n enableIntegrationBanner: props.enableIntegrationBanner,\n integrationSettingAppLink: props.integrationSettingAppLink,\n assignFlowSelectorAppLink: props.assignFlowSelectorAppLink,\n goToShareLinkStep: () => setStep('share-link'),\n goToDeleteStep: () => setStep('delete-confirmation'),\n goToCopyEmbedStep: () => setStep('copy-embed'),\n goToSettingsStep,\n closePopup: props.closePopup,\n setShowCopiedText: setShowCopiedText\n };\n\n return (\n <MultiStepPopup<AllShareLinkViewProps, ShareScreen>\n step={screen}\n animate={animate}\n setStep={setStep}\n loading={!share.hasCompleted}\n closePopup={props.closePopup}\n data={data}\n steps={{\n 'create-link': {\n view: CreateShareView\n },\n 'share-link': {\n view: MainShareView\n },\n 'link-settings': {\n view: ShareSettingsView\n },\n 'copy-embed': {\n view: CopyEmbedView\n },\n 'delete-confirmation': {\n view: DeleteShareLinkConfirmationView\n }\n }}\n />\n );\n}\n","import React from 'react';\n\nimport { ShareView as OldShareView } from 'libs/shared/apps/share/views/share/ShareView';\nimport { SharableEntityType } from 'libs/shared/apps/share/views/share/ShareViewHelper';\nimport { ShareView as NewShareView } from 'libs/shared/apps/share-v2/views/share-view/ShareView';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { PopupViewProps } from 'libs/shared/interfaces';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { AssignAppLinkHelper } from 'apps/assign/utils/AssignAppLinkHelper';\n\ninterface ShareViewProps extends PopupViewProps {\n entityId: string;\n entityType: SharableEntityType;\n enableIntegrationBanner?: boolean\n}\n\n// eslint-disable-next-line rulesdir/require-view-title\nexport function ShareView(props: ShareViewProps) {\n const { hasShareFlowV2, isLoadingSettings } = useSettings(null);\n\n if (isLoadingSettings)\n return <></>;\n\n if (!hasShareFlowV2) {\n return (\n <OldShareView\n entityId={props.entityId}\n entityType={props.entityType}\n closePopup={props.closePopup}\n emptyStateImageUrl={ImageUrls.EmptyStates.TYPEAHEAD_RESULTS}\n errorStateImageUrl={ImageUrls.TYPEAHEAD_ERROR}\n messagePopupAppLink={{\n application: AppChannels.DEFAULT,\n action: Actions.Default.INTEGRATIONS_INFO\n }}\n integrationSettingAppLink={{\n application: AppChannels.SETTINGS,\n action: Actions.Settings.INTEGRATIONS\n }}\n enableIntegrationBanner={props.enableIntegrationBanner}\n />\n );\n }\n\n /**\n * Series can only be assigned to existing classrooms.\n */\n const assignFlowSelectorAppLink = props.entityType === 'series'\n ? AssignAppLinkHelper.existingClassroom({\n entityType: 'series',\n objectId: props.entityId\n })\n : AssignAppLinkHelper.flowSelector({\n entityType: props.entityType,\n objectId: props.entityId\n });\n\n return (\n <NewShareView\n entityId={props.entityId}\n entityType={props.entityType}\n closePopup={props.closePopup}\n messagePopupAppLink={{\n application: AppChannels.DEFAULT,\n action: Actions.Default.INTEGRATIONS_INFO\n }}\n integrationSettingAppLink={{\n application: AppChannels.SETTINGS,\n action: Actions.Settings.INTEGRATIONS\n }}\n enableIntegrationBanner={props.enableIntegrationBanner}\n assignFlowSelectorAppLink={assignFlowSelectorAppLink}\n />\n );\n}"],"names":["getPhrase","DeleteShareContent","props","ack","setAck","className","phrases","leadingSentence","bulletPoints","map","phrase","index","key","id","checked","onChange","e","target","label","acknowledgement","onBack","onClick","text","backButton","variant","loading","onDelete","deleteButton","disabled","showSpinner","SharePrivacyItem","active","activePrivacy","sharePrivacy","title","description","SvgContainer","svgName","ShareLinkPrivacy","canUpdatePrivacy","shareOverrideRestrictions","hasStudentExp","config","getSharePrivacyConfig","entity","entityPrivacy","yearGroups","_showPasswordProtected","SharePrivacy","ShareLinkHelper","privacy","entityTypeId","icon","Object","values","predicate","onClickSavePrivacy","options","accessType","respectRatingText","getDefaultSharePrivacy","items","validItems","entries","filter","length","DeleteShareLinkConfirmationView","alerts","setLoading","entityId","entityType","share","deleteShareLink","log","data","type","analyticsOptions","location","eventVersion","loaded","closePopup","showLoadingSpinner","animation","animate","shareId","then","success","previousAppLink","error","name","escapeText","goToSettingsStep","undefined","useMainShareData","hasPermissions","shareToGoogleClassroom","shareToMicrosoftTeams","isLoadingSettings","currentUser","shareActionLoaded","updateShareLink","customerId","canEmbed","integrations","hasManageIntegrationsPermission","hasManageShareLinkSettings","canAccessSettings","updatedPrivacy","updatedShare","MultiStepPopup","setAnimate","stepConfig","steps","step","viewProps","setStep","ViewComponent","view","namespace","NewBadge","size","invert","LanguageService","CopyEmbedView","useShareLinkData","getShareEventLogger","Popup","CopyEmbedHtml","embedUrl","link","shortenedEmbedUrl","liteUrl","onCopy","embedDetails","PopupButtons","goToShareLinkStep","useCopyToClipboard","useState","copiedText","setCopiedText","copyToClipboard","useCallback","console","warn","navigator","clipboard","writeText","span","document","createElement","textContent","style","whiteSpace","body","appendChild","selection","window","getSelection","Promise","reject","range","createRange","removeAllRanges","selectNode","addRange","execCommand","err","removeChild","resolve","AssignPrompt","AppLink","appLink","Text","PLACEHOLDER_TEXT","CreateShareView","useShareLinkActions","shareLinkActionsLoaded","createShareLink","onSuccess","shortenedUrl","setShowCopiedText","setTimeout","hasCompleted","showAssignPrompt","AssignHelper","modalClassNames","popupContentClassName","popupBodyClassName","topContentClassName","contentClassName","bodyClassName","autoComplete","spellCheck","placeholder","readOnly","SpinnerButton","spinnerText","assignFlowSelectorAppLink","SharePermanentLink","logged","setLogged","typeId","CopyInput","styling","value","showCopiedText","SharePermanentLinkDelete","DivButton","S","SharePermanentLinkSetting","manageShareLinkSettings","onClickEditSettings","SharePermanentLinkActions","GetEmbedCode","onClickGetEmbedCode","minimal","goToDeleteStep","showIntegrations","ShareIntegrations","url","shareLink","hideLookingForIntegrations","MainShareView","integrationAppLink","integrationSettingAppLink","messagePopupAppLink","enableIntegrationBanner","goToCopyEmbedStep","LookingForIntegration","normalText","hideDismiss","hideBackground","ShareSettingsView","useShareSettingsData","initialValues","onClickSaveLink","ShareViewHelper","showImmediateFeedbackField","showPreventScrubbingField","ShareSettingsForm","onSubmit","onDone","immediateFeedback","preventScrubbing","onClickDelete","screen","setScreen","useSettings","hasShareFlowV2","emptyStateImageUrl","ImageUrls","errorStateImageUrl","application","action","AssignAppLinkHelper","objectId"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[4300],{62917:(e,t,n)=>{n.r(t),n.d(t,{EditShareSettingsView:()=>h});var i=n(32735),a=n(6044),r=n(23481),o=n(20354),l=n(65858),s=n(81192),c=n(2510),u=n(18488),d=n(31121),m=n(2267),f=n(2867),b=n(9111),p=r.T.encloseNamespace("sharev2.editShareSettings");function h(e){var t,n,r=o.a.useBasicFetch(u.o.getShare(e.shareId)),h=m.I.getSharableEntityType(r.data),v=(0,d.j)({data:{entity:{id:null===(t=r.data)||void 0===t?void 0:t.objectId,type:h}},analyticsOptions:{location:l.LZ.Popup,eventVersion:l.eq.V3,productArea:e.productArea}}).log,g=(0,f.W)({entityId:null===(n=r.data)||void 0===n?void 0:n.objectId,shareId:e.shareId,entityType:h,log:v}),S=g.data,y=g.initialValues,O=g.onClickSaveLink,I=m.I.getEnabledSettingsField(h),w=I.showImmediateFeedbackField,k=I.showPreventScrubbingField,j=S.loaded&&!!r.data;return i.createElement(b.G,{title:p("title"),showLoadingSpinner:!j,closePopup:e.closePopup},i.createElement(s.Z,{initialValues:y,onSubmit:function(e,t){O({options:{immediateFeedback:e.immediateFeedback,preventScrubbing:e.preventScrubbing}},t)},onClickDelete:function(){if(r.data){var t=e.getDeleteShareAppLink(r.data);t&&a.C$.trigger(t)}},showImmediateFeedbackField:w,showPreventScrubbingField:k,deleteText:r.data.type!==c.y.Link&&p("delete")}))}},82644:(e,t,n)=>{n.d(t,{b:()=>d,n:()=>u});var i=n(32735),a=n(92802),r=n(91967),o=n(1048);function l(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 i,a,r,o,l=[],s=!0,c=!1;try{if(r=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(i=r.call(n)).done)&&(l.push(i.value),l.length!==t);s=!0);}catch(e){c=!0,a=e}finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw a}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return s(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)?s(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 s(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,i=Array(t);n<t;n++)i[n]=e[n];return i}var c=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(i=Object.getOwnPropertySymbols(e);a<i.length;a++)t.indexOf(i[a])<0&&Object.prototype.propertyIsEnumerable.call(e,i[a])&&(n[i[a]]=e[i[a]])}return n};function u(e){var t=e.castInitialValues,n=e.castValuesOnSubmit,s=e.initialValues,u=e.onSubmit,d=c(e,["castInitialValues","castValuesOnSubmit","initialValues","onSubmit"]),m=t&&e.validationSchema?e.validationSchema.cast(function(e){if(!e)return{};var t=o.t.deepClone(e);return function e(n){Object.keys(t).forEach(function(i){t.hasOwnProperty(i)&&(o.t.isObject(n[i])?e(n[i]):null===t[i]&&delete t[i])})}(t),t}(s)):s,f={allowInitialSubmit:e.allowInitialSubmit};return i.createElement(a.J9,Object.assign({enableReinitialize:!0},d,{initialValues:m,onSubmit:function(t,i){var a=i.setSubmitting,r=i.resetForm,o=i.setFieldError,s=n&&e.validationSchema?e.validationSchema.cast(t):t;u(s,function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(e.reset&&r(),e.errors)for(var t=0,n=Object.entries(e.errors);t<n.length;t++){var i=l(n[t],2),s=i[0],c=i[1];o(s,c)}a(!1)})},initialStatus:f}),r.q.isFunction(e.children)?function(t){return e.children(t)}:i.Children.count(e.children)?e.children:null)}function d(){return(0,a.u6)()}u.defaultProps={castInitialValues:!0,castValuesOnSubmit:!0}},41661:(e,t,n)=>{var i;n.d(t,{D:()=>i}),function(e){e.GoogleClassroom="google-classroom",e.MicrosoftTeams="microsoft-teams",e.Vivi="vivi",e.AppleTv="apply-tv"}(i||(i={}))},40841:(e,t,n)=>{n.d(t,{_:()=>l});var i=n(23481),a=n(41661),r=n(65728),o=i.T.encloseNamespace("shared.shared-utils"),l={getShareIntegrations:function(e,t){return[{id:a.D.GoogleClassroom,name:o("googleClassroom"),enabled:e,settingName:r.E.ShareToGoogleClassroom},{id:a.D.MicrosoftTeams,name:o("msftTeams"),enabled:t,settingName:r.E.ShareToMicrosoftTeams}]}}}}]);
|
|
2
|
+
//# sourceMappingURL=4300-7147c77234-lite.chunk.js.map
|