@clickview/lite 0.84.0 → 0.84.1-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundles.json +2 -2
- package/dist/css/4945-lite-72ae59fcab.chunk.css +2 -0
- package/dist/css/8852-lite-84d6357a79.chunk.css +1 -0
- package/dist/css/{lite-app-b4540a3be1.css → lite-app-084c45f90e.css} +2 -0
- package/dist/languages/en.json +1 -1
- package/dist/scripts/{1202-d96ad80884-lite.chunk.js → 1202-5473d9962d-lite.chunk.js} +2 -2
- package/dist/scripts/{1202-d96ad80884-lite.chunk.js.map → 1202-5473d9962d-lite.chunk.js.map} +1 -1
- package/dist/scripts/171-acb1ef0ae4-lite.chunk.js +2 -0
- package/dist/scripts/171-acb1ef0ae4-lite.chunk.js.map +1 -0
- package/dist/scripts/1726-b08dde1407-lite.chunk.js +2 -0
- package/dist/scripts/1726-b08dde1407-lite.chunk.js.map +1 -0
- package/dist/scripts/1912-52e57d9f16-lite.chunk.js +2 -0
- package/dist/scripts/1912-52e57d9f16-lite.chunk.js.map +1 -0
- package/dist/scripts/{289-669c0c8222-lite.chunk.js → 289-190caa6455-lite.chunk.js} +2 -2
- package/dist/scripts/{289-669c0c8222-lite.chunk.js.map → 289-190caa6455-lite.chunk.js.map} +1 -1
- package/dist/scripts/{3249-0b55dec380-lite.chunk.js → 3249-08a22f8aaf-lite.chunk.js} +2 -2
- package/dist/scripts/3249-08a22f8aaf-lite.chunk.js.map +1 -0
- package/dist/scripts/3840-df2873e349-lite.chunk.js +2 -0
- package/dist/scripts/3840-df2873e349-lite.chunk.js.map +1 -0
- package/dist/scripts/4006-5078eb2c01-lite.chunk.js +3 -0
- package/dist/scripts/4006-5078eb2c01-lite.chunk.js.map +1 -0
- package/dist/scripts/4525-2ade147f5d-lite.chunk.js +2 -0
- package/dist/scripts/4525-2ade147f5d-lite.chunk.js.map +1 -0
- package/dist/scripts/4945-fbbb21cf54-lite.chunk.js +2 -0
- package/dist/scripts/4945-fbbb21cf54-lite.chunk.js.map +1 -0
- package/dist/scripts/4985-6bdacf82c1-lite.chunk.js +2 -0
- package/dist/scripts/4985-6bdacf82c1-lite.chunk.js.map +1 -0
- package/dist/scripts/5002-c0f45922c6-lite.chunk.js +2 -0
- package/dist/scripts/5002-c0f45922c6-lite.chunk.js.map +1 -0
- package/dist/scripts/516-94eeca32e7-lite.chunk.js +2 -0
- package/dist/scripts/516-94eeca32e7-lite.chunk.js.map +1 -0
- package/dist/scripts/5270-55334d53e9-lite.chunk.js +2 -0
- package/dist/scripts/5270-55334d53e9-lite.chunk.js.map +1 -0
- package/dist/scripts/5579-7d9081e134-lite.chunk.js +2 -0
- package/dist/scripts/{5579-a9c152057f-lite.chunk.js.map → 5579-7d9081e134-lite.chunk.js.map} +1 -1
- package/dist/scripts/5712-37a97adc65-lite.chunk.js +2 -0
- package/dist/scripts/5712-37a97adc65-lite.chunk.js.map +1 -0
- package/dist/scripts/639-0bf7cc53f9-lite.chunk.js +2 -0
- package/dist/scripts/639-0bf7cc53f9-lite.chunk.js.map +1 -0
- package/dist/scripts/6909-b5717e92e8-lite.chunk.js +2 -0
- package/dist/scripts/6909-b5717e92e8-lite.chunk.js.map +1 -0
- package/dist/scripts/7459-c1882c6f0d-lite.chunk.js +3 -0
- package/dist/scripts/7459-c1882c6f0d-lite.chunk.js.map +1 -0
- package/dist/scripts/7604-5d2ba346e2-lite.chunk.js +3 -0
- package/dist/scripts/7604-5d2ba346e2-lite.chunk.js.map +1 -0
- package/dist/scripts/{7617-9d34c841e6-lite.chunk.js → 7617-899a1d0cb1-lite.chunk.js} +2 -2
- package/dist/scripts/7617-899a1d0cb1-lite.chunk.js.map +1 -0
- package/dist/scripts/7742-95097c976d-lite.chunk.js +2 -0
- package/dist/scripts/7742-95097c976d-lite.chunk.js.map +1 -0
- package/dist/scripts/{7843-f6033528ce-lite.chunk.js → 7843-fc9ddb3b52-lite.chunk.js} +2 -2
- package/dist/scripts/7843-fc9ddb3b52-lite.chunk.js.map +1 -0
- package/dist/scripts/{7867-14c692e69c-lite.chunk.js → 7867-589c7bd788-lite.chunk.js} +3 -3
- package/dist/scripts/7867-589c7bd788-lite.chunk.js.map +1 -0
- package/dist/scripts/{787-dcb3a0a26c-lite.chunk.js → 787-5c7976e8cb-lite.chunk.js} +2 -2
- package/dist/scripts/{787-dcb3a0a26c-lite.chunk.js.map → 787-5c7976e8cb-lite.chunk.js.map} +1 -1
- package/dist/scripts/8056-a3d8fa8728-lite.chunk.js +2 -0
- package/dist/scripts/8056-a3d8fa8728-lite.chunk.js.map +1 -0
- package/dist/scripts/{8672-6967ce8a23-lite.chunk.js → 8672-5637204ae3-lite.chunk.js} +2 -2
- package/dist/scripts/{8672-6967ce8a23-lite.chunk.js.map → 8672-5637204ae3-lite.chunk.js.map} +1 -1
- package/dist/scripts/8852-c39595da59-lite.chunk.js +2 -0
- package/dist/scripts/8852-c39595da59-lite.chunk.js.map +1 -0
- package/dist/scripts/8944-022dbd6a0b-lite.chunk.js +2 -0
- package/dist/scripts/8944-022dbd6a0b-lite.chunk.js.map +1 -0
- package/dist/scripts/9742-c839ec5abb-lite.chunk.js +2 -0
- package/dist/scripts/9742-c839ec5abb-lite.chunk.js.map +1 -0
- package/dist/scripts/{8133-ffcff3b7fc-lite.chunk.js → 9803-9a666cfdef-lite.chunk.js} +3 -3
- package/dist/scripts/9803-9a666cfdef-lite.chunk.js.map +1 -0
- package/dist/scripts/bundle-375332cf3f.min.js +3 -0
- package/dist/scripts/{bundle-2bbba2aa8b.min.js.map → bundle-375332cf3f.min.js.map} +1 -1
- package/package.json +1 -1
- package/dist/scripts/171-36c7520c9c-lite.chunk.js +0 -2
- package/dist/scripts/171-36c7520c9c-lite.chunk.js.map +0 -1
- package/dist/scripts/1726-c79cf77a51-lite.chunk.js +0 -2
- package/dist/scripts/1726-c79cf77a51-lite.chunk.js.map +0 -1
- package/dist/scripts/1912-1f78dc635a-lite.chunk.js +0 -2
- package/dist/scripts/1912-1f78dc635a-lite.chunk.js.map +0 -1
- package/dist/scripts/2074-39b86b9a22-lite.chunk.js +0 -2
- package/dist/scripts/2074-39b86b9a22-lite.chunk.js.map +0 -1
- package/dist/scripts/3249-0b55dec380-lite.chunk.js.map +0 -1
- package/dist/scripts/3840-98c79fc0d8-lite.chunk.js +0 -2
- package/dist/scripts/3840-98c79fc0d8-lite.chunk.js.map +0 -1
- package/dist/scripts/3893-2856933742-lite.chunk.js +0 -2
- package/dist/scripts/3893-2856933742-lite.chunk.js.map +0 -1
- package/dist/scripts/4006-9dfe9cec1b-lite.chunk.js +0 -3
- package/dist/scripts/4006-9dfe9cec1b-lite.chunk.js.map +0 -1
- package/dist/scripts/4985-bdfa839f8f-lite.chunk.js +0 -2
- package/dist/scripts/4985-bdfa839f8f-lite.chunk.js.map +0 -1
- package/dist/scripts/5002-7514146621-lite.chunk.js +0 -2
- package/dist/scripts/5002-7514146621-lite.chunk.js.map +0 -1
- package/dist/scripts/5270-d407e1ae84-lite.chunk.js +0 -2
- package/dist/scripts/5270-d407e1ae84-lite.chunk.js.map +0 -1
- package/dist/scripts/5579-a9c152057f-lite.chunk.js +0 -2
- package/dist/scripts/5712-e784cfe89c-lite.chunk.js +0 -2
- package/dist/scripts/5712-e784cfe89c-lite.chunk.js.map +0 -1
- package/dist/scripts/6909-a9b8930e37-lite.chunk.js +0 -2
- package/dist/scripts/6909-a9b8930e37-lite.chunk.js.map +0 -1
- package/dist/scripts/7401-833bc4a088-lite.chunk.js +0 -2
- package/dist/scripts/7401-833bc4a088-lite.chunk.js.map +0 -1
- package/dist/scripts/7604-f664281904-lite.chunk.js +0 -3
- package/dist/scripts/7604-f664281904-lite.chunk.js.map +0 -1
- package/dist/scripts/7617-9d34c841e6-lite.chunk.js.map +0 -1
- package/dist/scripts/7742-342db3ce4f-lite.chunk.js +0 -2
- package/dist/scripts/7742-342db3ce4f-lite.chunk.js.map +0 -1
- package/dist/scripts/7843-f6033528ce-lite.chunk.js.map +0 -1
- package/dist/scripts/7867-14c692e69c-lite.chunk.js.map +0 -1
- package/dist/scripts/8056-eec7c2fda0-lite.chunk.js +0 -2
- package/dist/scripts/8056-eec7c2fda0-lite.chunk.js.map +0 -1
- package/dist/scripts/8133-ffcff3b7fc-lite.chunk.js.map +0 -1
- package/dist/scripts/8364-ff63447d36-lite.chunk.js +0 -3
- package/dist/scripts/8364-ff63447d36-lite.chunk.js.map +0 -1
- package/dist/scripts/8944-b56c3e61fc-lite.chunk.js +0 -2
- package/dist/scripts/8944-b56c3e61fc-lite.chunk.js.map +0 -1
- package/dist/scripts/9742-5f99d74bb0-lite.chunk.js +0 -2
- package/dist/scripts/9742-5f99d74bb0-lite.chunk.js.map +0 -1
- package/dist/scripts/bundle-2bbba2aa8b.min.js +0 -3
- /package/dist/css/{2074-lite-ac8da6c78b.chunk.css → 4525-lite-ac8da6c78b.chunk.css} +0 -0
- /package/dist/css/{8364-lite-db31e36b79.chunk.css → 7459-lite-db31e36b79.chunk.css} +0 -0
- /package/dist/scripts/{4006-9dfe9cec1b-lite.chunk.js.LICENSE.txt → 4006-5078eb2c01-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{7604-f664281904-lite.chunk.js.LICENSE.txt → 7459-c1882c6f0d-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{7867-14c692e69c-lite.chunk.js.LICENSE.txt → 7604-5d2ba346e2-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{8133-ffcff3b7fc-lite.chunk.js.LICENSE.txt → 7867-589c7bd788-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{8364-ff63447d36-lite.chunk.js.LICENSE.txt → 9803-9a666cfdef-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{bundle-2bbba2aa8b.min.js.LICENSE.txt → bundle-375332cf3f.min.js.LICENSE.txt} +0 -0
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
/*! For license information please see 8364-ff63447d36-lite.chunk.js.LICENSE.txt */
|
|
2
|
-
(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[8364],{86974:(e,t,n)=>{"use strict";n.d(t,{w:()=>i});var r=n(32735);function a(){return r.createElement("svg",{viewBox:"0 0 24 24"},r.createElement("path",{d:"M11.959 10.641l4.402-4.296a.964.964 0 0 1 1.358 0 .951.951 0 0 1 0 1.35l-4.403 4.297 4.403 4.378a.951.951 0 0 1 0 1.35.964.964 0 0 1-1.358 0l-4.402-4.378-4.32 4.378a.964.964 0 0 1-1.358 0 .951.951 0 0 1 0-1.35l4.32-4.378-4.32-4.362a.951.951 0 0 1 0-1.35.964.964 0 0 1 1.358 0l4.32 4.361z"}))}var i=r.forwardRef(function(e,t){var n=e.onClickClear,i=e.showClearButton,o=e.clearClassName,l=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n}(e,["onClickClear","showClearButton","clearClassName"]);return r.createElement("div",{className:"position-relative"},r.createElement("input",Object.assign({},l,{ref:t,className:"".concat(e.className," ").concat("aYpO7")})),(!!e.value||i)&&r.createElement("span",{className:"".concat("ygMgF"," position-absolute cursor-pointer text-secondary ").concat(o||""),role:"button",onClick:n,onKeyDown:function(e){return"Enter"===e.key&&n()},tabIndex:0},r.createElement("div",{className:"d-inline-block svg-container md"},r.createElement(a,null))))})},66257:(e,t,n)=>{"use strict";n.d(t,{k:()=>f});var r=n(32735),a=n(80130),i=n(59087),o=n(23481),l=n(31453),c=n(35223),s=n(91693);const u={normal:"Q1UGv",copyBtn:"J3fBx",embedHtmlInput:"RcwAD"};function m(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var d=o.T.encloseNamespace("shared.copyInput");function f(e){var t,n,o=(t=r.useState(e.showCopiedText||!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 m(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?m(e,t):void 0}}(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),f=o[0],p=o[1];function v(){setTimeout(function(){return p(!1)},2e3)}function y(){e.onCopy&&e.onCopy(),f||(p(!0),v())}r.useEffect(function(){e.showCopiedText&&v()},[e.showCopiedText]);var b=r.createElement("div",{className:"normal-v2"===e.styling?"d-flex flex-row gap-2 position-relative w-100":"input-group"},e.textarea?r.createElement("textarea",{className:(0,l.A)("form-control rounded w-100 h-100",!e.hasInputBg&&u.embedHtmlInput),spellCheck:!1,value:e.value,rows:7,readOnly:!0}):r.createElement("input",{type:"text",autoComplete:"off",className:(0,l.A)("form-control","normal"===e.styling&&e.styling),spellCheck:!1,value:e.value,readOnly:!0}),r.createElement(function(){return"normal-v2"===e.styling?r.createElement(i.CopyToClipboard,{text:e.value,onCopy:y},r.createElement(s.h,{role:f?"status":"",svgName:f?c.vn.Check:c.vn.Copy,className:(0,l.A)(u.copyBtn,"btn py-0 text-nowrap",f?"btn-success text-white":"btn-outline-dark border-secondary",e.extraButtonClassNames)},f?e.copiedText||d("copiedLink"):e.copyText||d("copy"))):r.createElement(i.CopyToClipboard,{text:e.value,onCopy:y},r.createElement("button",{role:f?"status":"",className:(0,l.A)("btn btn-outline-dark border border-secondary py-0 text-nowrap",e.extraButtonClassNames)},f?e.copiedText||d("copied"):e.copyText||d("copy")))},null));return e.label?r.createElement(a.Z.Group,{className:"form-group"},r.createElement(a.Z.Label,null,e.label),b):b}f.defaultProps={styling:"normal"}},38502:(e,t,n)=>{"use strict";n.d(t,{r:()=>m});var r=n(32735),a=n(49985),i=n(15611),o=n(18559),l=n(11607),c=n(83914),s=n(22771);function u(e){return r.createElement(r.Fragment,null,!!e.tab.svgName&&r.createElement("div",{className:e.tab.name?"pe-1":""},r.createElement(c.x,{svgName:e.tab.svgName})),e.tab.name,"number"==typeof e.tab.count&&r.createElement("div",{className:"ps-2"},r.createElement(o.C,{type:o.g.Count,data:e.tab.count})))}function m(e){var t;return r.createElement("nav",{className:null!==(t=e.className)&&void 0!==t?t:"",ref:e.containerRef},r.createElement("ul",{className:"\n list-unstyled d-inline-block m-0 ".concat(s.Z.pillTabSelector,"\n ").concat(e.borderRadius?s.Z.radiusSmall:"","\n ").concat(e.listClassName,"\n ")},e.tabs.map(function(e,t){return r.createElement("li",{className:"\n p-0 ".concat(s.Z.tab," ").concat(e.active?"btn btn-dark":"btn btn-outline-dark","\n ").concat(e.name?s.Z.minWidth:""," ").concat(e.className,"\n "),key:t},e.appLink?r.createElement(i.F,{appLink:e.appLink,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,className:"\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ".concat(s.Z.tabLink,"\n ")},r.createElement(u,{tab:e})):r.createElement(l.L,{className:"\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ".concat(s.Z.tabLink,"\n "),onClick:function(){return function(e){!e.active&&e.onSelect&&(e.onSelect(),e.analyticsData&&e.analyticsOptions&&a.k.logUserAction(e.analyticsData,e.analyticsOptions))}(e)}},r.createElement(u,{tab:e})))})))}m.defaultProps={borderRadius:"lg"}},8364:(e,t,n)=>{"use strict";n.r(t),n.d(t,{InviteColleagueView:()=>De});var r=n(32735),a=n(23481),i=n(20354),o=n(49985),l=n(65858),c=n(9111),s=n(13876),u=n(39151),m=n(31949),d=n(25882),f=n(69883),p=n(37802),v=n(59934),y=n(23923),b=n(99940),g={invite:function(e){return{url:"{gateway}/v1/users/invites",key:"invites:colleague",normalize:!1,type:b.k.POST,data:e,invalidationKeys:["invites"]}},inviteByType:function(){return{key:"invites",url:"{gateway}/v1/users/invites?type=link&type=direct",normalize:!1}},deleteInvite:function(e){return{key:"invites:delete",url:"{gateway}/v1/users/invites/".concat(e),type:b.k.DELETE,normalize:!1,invalidationKeys:["invites"]}},resendInvite:function(e){return{key:"invites:".concat(e,":resend"),url:"{gateway}/v1/users/invites/email?id=".concat(e),type:b.k.POST,normalize:!1}},createInviteLink:function(){return{key:"invites:create",url:"{gateway}/v1/users/invites/links",type:b.k.POST,normalize:!1,invalidationKeys:["invites"]}}};function h(e){return function(e){if(Array.isArray(e))return E(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return E(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(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function E(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 x={"email-in-use":"emailInUse","invalid-email":"invalidEmail"},N=a.T.encloseNamespace("signUp.helpers"),w={recalculateFields:function(e,t,n,r){var a=this.cleanFields(t);if(!a.length)return this.removeField(e,t,n);var i=a[a.length-1],o=!(e!==a.length-1||!a[e].data.firstName.length&&!a[e].data.email.length),l=!!(a.length<r&&(i.data.firstName.length||i.data.email.length));return o||l?this.addField(a,r):void 0},getValidFieldsData:function(e){return e.reduce(function(e,t){return t.data.email.length?[].concat(h(e),[t.data]):e},[])},getInputWithErrors:function(e,t){var n,r=h(e),a=null===(n=t.responseJSON)||void 0===n?void 0:n.problems;return r.forEach(function(e,t){var n=a.find(function(t){return t.email===e.data.email});n&&(r[t]=Object.assign(Object.assign({},e),{error:{email:N(x[n.errorCode])}}))}),r},cleanFields:function(e){return e.filter(function(e){return e.data.firstName.length||e.data.email.length})},removeField:function(e,t,n){return t.length!==n&&t[e]?t.filter(function(t,n){return n!==e}):t},addField:function(e,t){return e.length>=t?e:[].concat(h(e),[this.getNewEmptyField()])},getNewEmptyField:function(){return{data:{firstName:"",email:""}}}};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}var k=a.T.encloseNamespace("signUp.helpers"),S=new RegExp(/^[^\s@]+@[^\s@]+\.[^\s@]+$/),I=/^[\w0-9'\-,.():;&][^_!¡?÷¿/\\+=@#$%ˆ*{}|~<>[\]]{0,}$/,O={validate:function(e){var t,n=this,r=function(e){if(Array.isArray(e))return C(e)}(t=e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(t)||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)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),a=!1;return r.forEach(function(e,t){if(t!==r.length-1||0===t||e.data.email.length||e.data.firstName.length){var i={firstName:n.validateFirstName(e.data.firstName),email:n.validateEmail(e.data.email)};(i.firstName||i.email)&&(e.error=i,a||(a=!0))}}),{fieldsWithErrors:r,hasErrors:a}},validateEmail:function(e){return e.length?S.test(e)?void 0:k("validSchoolEmail"):k("enterValidEmail")},validateFirstName:function(e){if(e.length)return I.test(e)?void 0:k("invalidFirstname")}},T=a.T.encloseNamespace("signUp.hardGateInviteBanner");function j(e){var t=e.accessPolicy,n=e.reverseTrialReferralCount;return r.createElement("div",{className:"px-3"},r.createElement("div",{role:"alert",className:"bg-light-indigo rounded p-2 mb-4 text-indigo"},T("titlePrefix")," ",r.createElement("strong",null,T("titleEmphasis")),t.metadata.maxReferrals&&r.createElement("div",{className:"text-center"},r.createElement("small",null,T("extensionsRedeemed",{count:null!=n?n:0,max:t.metadata.maxReferrals})))))}var A=n(97958),P=n(2102),F=n(83345),U=n(99742),D=n(86974);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)}var R=a.T.encloseNamespace("signUp.invite.inviteFormInputGroup");function M(e){var t=e.input,n=t.data,a=t.error;function i(t,r){var a,i,o,l=Object.assign(Object.assign({},n),(a={},o=r,(i=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+""}(i=t))in a?Object.defineProperty(a,i,{value:o,enumerable:!0,configurable:!0,writable:!0}):a[i]=o,a));e.onChange(t,l)}return r.createElement("div",{className:"row mb-2"},r.createElement("div",{className:"col-4"},r.createElement("input",{type:"text",name:"firstName".concat(e.index),className:"form-control form-control-lg",placeholder:R("firstName"),value:n.firstName,onChange:function(e){e.preventDefault(),i("firstName",e.target.value)},autoComplete:"off"}),a&&(null==a?void 0:a.firstName)&&r.createElement("p",{className:"mb-0 text-danger"},a.firstName)),r.createElement("div",{className:"col-8 ps-0"},r.createElement(D.w,{type:"text",name:"electronicMail".concat(e.index),className:"form-control form-control-lg",placeholder:R("emailAddress",{count:e.index+1}),value:n.email,onChange:function(e){e.preventDefault(),i("email",e.target.value)},onClickClear:e.clearInputs,autoComplete:"off",showClearButton:!(!n.firstName&&!n.email)}),a&&(null==a?void 0:a.email)&&r.createElement("p",{className:"mb-0 text-danger",dangerouslySetInnerHTML:{__html:a.email}})))}function _(e){return function(e){if(Array.isArray(e))return B(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return B(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)?B(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function B(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 G="signUp.invite.inviteFormInputGroup";function z(e){var t=e.fields,n=e.setFields,a=e.minFields,i=e.maxFields,o=e.isTertiary,l=r.useMemo(function(){return t.filter(function(e){return!!e.data.email}).length},[t]);return r.createElement("div",{className:"px-3"},r.createElement(A.u.Image,{src:U.W.SignUp.INVITE_COLLEAGUE,className:"d-block mx-auto"}),r.createElement("h2",{className:"h5 text-center"},r.createElement(F.x,{namespace:G,phrase:o?"inviteHeadingTertiary":"inviteHeading"})),r.createElement("p",{className:"text-center"},r.createElement(F.x,{namespace:G,phrase:"inviteSubheading"})),r.createElement("div",{className:"row fw-bold mb-2"},r.createElement("div",{className:"col-4"},r.createElement(F.x,{namespace:G,phrase:"firstName"})),r.createElement("div",{className:"col-8 ps-0"},r.createElement(F.x,{namespace:G,phrase:"workEmailAddress"}),r.createElement("span",{className:"text-danger"},"*"))),t.map(function(e,o){return r.createElement(M,{input:e,key:o,index:o,onChange:function(e,r){return function(e,r,o){e>t.length||n(function(t){var n,l,c=_(t);return c[e].data=o,(null===(n=c[e])||void 0===n?void 0:n.error)&&(null===(l=c[e])||void 0===l?void 0:l.error[r])&&delete c[e].error[r],w.recalculateFields(e,c,a,i)||c})}(o,e,r)},clearInputs:function(){return function(e){e>t.length||n(function(t){var n=_(t);return n[e].data.firstName="",n[e].data.email="",w.recalculateFields(e,n,a,i)||n})}(o)}})}),r.createElement("div",{className:"pt-2 pb-3"},r.createElement(P.m,{showSpinner:e.showSpinner,variant:"dark",className:"btn-lg w-100",onClick:e.onSubmit},r.createElement(F.x,{namespace:G,phrase:"btnInvite",options:{smartCount:l||1}}))))}var Z="signUp.invite.inviteFormSuccess";function H(e){var t;if(null===(t=e.fields)||void 0===t?void 0:t.length)return r.createElement("div",{className:"text-center px-3"},r.createElement(A.u.Image,{src:U.W.SignUp.INVITE_COLLEAGUE_SUCCESS,className:"d-block mx-auto"}),r.createElement("h2",{className:"h4"},r.createElement(F.x,{namespace:Z,phrase:"inviteSent"})),r.createElement("p",{className:"mb-0"},r.createElement(F.x,{namespace:Z,phrase:"emailSentTo"})),r.createElement("div",{className:"mb-3"},e.fields.map(function(e,t){var n=e.data,a=n.firstName,i=n.email;if(i)return r.createElement("p",{className:"mb-0",key:t},!!a.length&&r.createElement("strong",null,a)," (",i,")")})),r.createElement("p",null,r.createElement(F.x,{namespace:Z,phrase:"moreInvite"})," ",r.createElement("a",{onClick:e.onInviteMore,className:"info-link p-0"},r.createElement(F.x,{namespace:Z,phrase:"inviteMore"}))))}function V(e){var t=e.fields,n=e.setFields,a=e.showSpinner,i=e.onSubmit;return t.length?e.completed?r.createElement(H,{fields:t,onInviteMore:function(t){t.preventDefault(),e.onInviteMore()}}):r.createElement(z,{fields:t,setFields:n,showSpinner:a,onSubmit:i,maxFields:e.maxFields,minFields:e.minFields,isTertiary:e.isTertiary}):r.createElement(r.Fragment,null)}var W=n(38502),$=a.T.encloseNamespace("signUp.invite.inviteTabs");function J(e){var t=[{name:$("invite"),onSelect:function(){return e.onChangeTab("inviteForm")},active:"inviteForm"===e.activeTab,analyticsData:{name:$("invite")},analyticsOptions:{actionType:l.Vw.Click,entity:l.py.Url,location:l.LZ.MagicTabs}},{name:$("pending"),onSelect:function(){return e.onChangeTab("pendingInvites")},active:"pendingInvites"===e.activeTab,analyticsData:{name:$("pending")},analyticsOptions:{actionType:l.Vw.Click,entity:l.py.Url,location:l.LZ.MagicTabs}}];return r.createElement(W.r,{className:"d-flex justify-content-center mb-3",tabs:t})}var K=n(42648),Y="signUp.invite.pendingInvites";function Q(e){return r.createElement("div",{className:"text-center py-4 px-3"},r.createElement(A.u.Image,{src:U.W.SignUp.EMPTY_PENDING_INVITES,className:"d-block mx-auto"}),r.createElement("h2",{className:"h5 mb-0"},r.createElement(F.x,{namespace:Y,phrase:"emptyTitle"})),r.createElement("p",null,r.createElement(F.x,{namespace:Y,phrase:"emptyDescription"})," ",r.createElement("a",{onClick:function(t){t.preventDefault(),e.onInviteMore()},className:"info-link"},r.createElement(F.x,{namespace:Y,phrase:"emptyAction"}))))}const q={avatar:"cin_G",oneLine:"FrlTw",twoLine:"rBQWR",minPendingHeight:"LMnOk"};function X(){return r.createElement("div",{className:"d-flex mb-2 justify-content-between"},r.createElement("div",{className:"col-8 d-flex align-items-center"},r.createElement("div",{className:"partial-loading-background rounded-circle ".concat(q.avatar)}),r.createElement("div",{className:"ms-2 w-100"},r.createElement("div",{className:"partial-loading-background mb-1 w-50 ".concat(q.oneLine)}),r.createElement("div",{className:"partial-loading-background w-100 ".concat(q.oneLine)}))),r.createElement("div",{className:"col d-flex align-items-center justify-content-end"},r.createElement("div",{className:"partial-loading-background w-100 ".concat(q.twoLine)})))}function ee(){return r.createElement("div",{className:"px-3"},r.createElement("div",{className:"partial-loading-background w-25 m-2 ".concat(q.oneLine)}),Array(6).fill(null).map(function(e,t){return r.createElement(X,{key:t})}))}var te,ne=n(76306),re=n(97408),ae=n(83914),ie=n(35223);!function(e){e.Active="Active",e.Accepted="Accepted",e.Expired="Expired"}(te||(te={}));var oe=a.T.encloseNamespace("signUp.helpers"),le={getItemActions:function(e){var t=e.status,n=e.resendInvite,r=e.removeInvite;return t===te.Accepted?[]:[{label:oe("resendInvite"),onClick:n},{label:oe("removeInvite"),onClick:r,className:"text-danger"}]}},ce=a.T.encloseNamespace("signUp.invite.inviteStatusInfo");function se(e){return e.status===te.Accepted?r.createElement(ue,{extraContainerClass:"text-success",renderSvg:function(){return r.createElement(ae.x,{size:ae.S.Small,svgName:ie.vn.Check})},text:ce("accepted")}):e.status===te.Active?r.createElement(ue,{renderSvg:function(){return r.createElement(ae.x,{size:ae.S.Small,svgName:ie.vn.PendingCircle,className:"d-inline-block svg-container text-info"})},extraTextClass:"text-secondary",text:ce("active")}):e.status===te.Expired?r.createElement(ue,{extraContainerClass:"text-danger",renderSvg:function(){return r.createElement(ae.x,{size:ae.S.Small,svgName:ie.vn.Close,className:"d-inline-block svg-container"})},text:ce("expired")}):r.createElement(r.Fragment,null)}function ue(e){function t(e,t){return t?"".concat(e," ").concat(t):e}var n=t("d-flex align-items-center",e.extraContainerClass),a=t("ps-1",e.extraTextClass);return r.createElement("div",{className:n},e.renderSvg&&e.renderSvg(),r.createElement("small",{className:a},e.text))}const me={avatar:"VsdKR",email:"L65Cs"};function de(e){return e.initial?r.createElement(re.q,{imageCdnUrl:e.imageCdnUrl,initials:e.initial}):r.createElement("div",{className:"d-flex align-items-center justify-content-center rounded-circle bg-dark text-white w-100 h-100"},r.createElement(ae.x,{svgName:ie.vn.Email,size:ae.S.Large}))}function fe(e){var t,n,a=e.invite,i=a.invitee,o=a.status,l=null!==(t=null==i?void 0:i.email)&&void 0!==t?t:e.invite.metadata.email,c=le.getItemActions({status:o,resendInvite:function(){return e.resendInvite(e.invite.id)},removeInvite:function(){return e.removeInvite(e.invite.id)}}),s=null===(n=e.invite.metadata)||void 0===n?void 0:n.firstName,u=null==s?void 0:s.substr(0,1);return r.createElement("div",{className:"d-flex mb-2 justify-content-between px-3"},r.createElement("div",{className:"d-flex align-items-center ps-0"},r.createElement("div",{className:me.avatar},r.createElement(de,{initial:u,userId:null==i?void 0:i.userId,imageCdnUrl:e.imageCdnUrl})),r.createElement("div",{className:"ms-2"},!!s&&r.createElement("h3",{className:"h6 mb-0"},s),r.createElement("p",{className:"mb-0 text-secondary w-100 text-truncate ".concat(me.email),title:l},l))),r.createElement("div",{className:"d-flex align-items-center justify-content-between pe-0"},r.createElement(se,{status:o}),!!c.length&&r.createElement(ne.m,{dropdownToggleClassName:"btn btn-link ms-1",actions:c})))}var pe="signUp.invite.pendingInvites";function ve(e){var t;return e.isLoading?r.createElement(ee,null):(null===(t=null==e?void 0:e.invites)||void 0===t?void 0:t.length)?r.createElement("div",{className:"px-1"},r.createElement("h3",{className:"h6 px-3"},r.createElement(F.x,{namespace:pe,phrase:"heading"})),r.createElement(K.$B,{className:"".concat(q.minPendingHeight)},e.invites.map(function(t,n){return r.createElement(fe,{key:n,invite:t,imageCdnUrl:e.imageCdnUrl,removeInvite:e.removeInvite,resendInvite:e.resendInvite})}))):r.createElement(Q,{onInviteMore:e.onInviteMore})}var ye=n(80247),be=n(66257),ge="signUp.invite.shareInviteLink";function he(e){return e.showSpinner?r.createElement("div",{className:"text-center w-100"},r.createElement(ye.Z,{as:"div",animation:"border",role:"status"})):r.createElement("div",{className:"w-100"},r.createElement("div",{className:"d-flex justify-content-between"},r.createElement("h2",{className:"h6"},r.createElement(F.x,{namespace:ge,phrase:"title"})),e.link&&r.createElement("button",{className:"btn btn-link info-link p-0 mb-2",onClick:e.onClickDelete},r.createElement(F.x,{namespace:ge,phrase:"delete"}))),e.link?r.createElement(be.k,{value:e.link}):r.createElement("div",{className:"d-flex w-100 justify-content-between"},r.createElement("div",null,r.createElement(ae.x,{svgName:ie.vn.Link,className:"me-2 d-inline-block svg-container"}),r.createElement(F.x,{namespace:ge,phrase:"generate"})),r.createElement("button",{className:"btn info-link p-0",onClick:e.onClickCreate},r.createElement(F.x,{namespace:ge,phrase:"create"}))))}var Ee,xe=n(15611),Ne=n(14070),we=n(97291),Ce=a.T.encloseNamespace("signUp.softGateInviteBanner");function ke(e){var t=e.accessPolicy,n=e.reverseTrialReferralCount;return r.createElement("div",{className:"px-3"},r.createElement("div",{role:"alert",className:"bg-light-indigo rounded p-2 mb-4 text-indigo text-center"},r.createElement("div",{className:"d-flex align-items-center justify-content-center"},r.createElement(ae.x,{svgName:ie.vn.StarOutline,size:ae.S.Medium}),r.createElement("div",null,Ce("titlePrefix")," ",r.createElement(xe.F,{appLink:{application:we.O.SIGN_UP,action:Ne.e.SignUp.PREMIUM_FEATURES},className:"indigo-link text-indigo text-underline d-inline"},r.createElement("strong",null,Ce("titleEmphasis",{bonusDays:t.metadata.referralBonusTime.split(".")[0]}))))),t.metadata.maxReferrals&&r.createElement("div",null,r.createElement("small",null,Ce("extensionsRedeemed",{count:null!=n?n:0,max:t.metadata.maxReferrals})))))}!function(e){e.Link="link",e.Direct="direct"}(Ee||(Ee={}));const Se={minHeight:"tWSzO"};function Ie(){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 Oe(s,"_invoke",function(n,r,a){var i,l,c,s=0,u=a||[],m=!1,d={p:0,n:0,v:e,a:f,f:f.bind(e,4),d:function(t,n){return i=t,l=0,c=e,d.n=n,o}};function f(n,r){for(l=n,c=r,t=0;!m&&s&&!a&&t<u.length;t++){var a,i=u[t],f=d.p,p=i[2];n>3?(a=p===r)&&(c=i[(l=i[4])?5:(l=3,3)],i[4]=i[5]=e):i[0]<=f&&((a=n<2&&f<i[1])?(l=0,d.v=r,d.n=i[1]):f<p&&(a=n<3||i[0]>r||r>p)&&(i[4]=n,i[5]=r,d.n=p,l=0))}if(a||n>1)return o;throw m=!0,r}return function(a,u,p){if(s>1)throw TypeError("Generator is already running");for(m&&1===u&&f(u,p),l=u,c=p;(t=l<2?e:c)||!m;){i||(l?l<3?(l>1&&(d.n=-1),f(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=(m=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:m}}}(n,a,i),!0),s}var o={};function l(){}function c(){}function s(){}t=Object.getPrototypeOf;var u=[][r]?t(t([][r]())):(Oe(t={},r,function(){return this}),t),m=s.prototype=l.prototype=Object.create(u);function d(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,s):(e.__proto__=s,Oe(e,a,"GeneratorFunction")),e.prototype=Object.create(m),e}return c.prototype=s,Oe(m,"constructor",s),Oe(s,"constructor",c),c.displayName="GeneratorFunction",Oe(s,a,"GeneratorFunction"),Oe(m),Oe(m,a,"Generator"),Oe(m,r,function(){return this}),Oe(m,"toString",function(){return"[object Generator]"}),(Ie=function(){return{w:i,m:d}})()}function Oe(e,t,n,r){var a=Object.defineProperty;try{a({},"",{})}catch(e){a=0}Oe=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){Oe(e,t,function(e){return this._invoke(t,n,e)})};i("next",0),i("throw",1),i("return",2)}},Oe(e,t,n,r)}function Te(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 je(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)?je(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 je(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 Ae=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())})},Pe=a.T.encloseNamespace("signUp.inviteColleage"),Fe=1,Ue=5;function De(e){var t,n,a=Te(r.useState(e.tab),2),b=a[0],h=a[1],E=Te(r.useState(!1),2),x=E[0],N=E[1],C=Te(r.useState(!1),2),k=C[0],S=C[1],I=Te(r.useState(!1),2),T=I[0],A=I[1],P=Te(r.useState(function(){return[w.getNewEmptyField()]}),2),F=P[0],U=P[1],D=(0,d.vb)().accessPolicy,L=(0,p.r)(null).reverseTrialReferralCount,R=i.a.useGetFetchAsync(),M=(0,f.Z)(),_=(0,y.B)(),B=i.a.useBasicFetch(m.N.currentUser()),G=i.a.useBasicFetch(u.L.config()),z=i.a.useBasicFetch(g.inviteByType()),Z=function(e){return r.useMemo(function(){return e?e.reduce(function(e,t){return t.type===Ee.Direct?(e.directInvites.push(t),e):(e.links.push(t),e)},{directInvites:[],links:[]}):{directInvites:null,links:null}},[e])}(z.data),H=Z.directInvites,W=Z.links,$=null==W?void 0:W[0];function K(e){o.k.logUserAction({emailCount:e},{actionType:l.Vw.SendEmail,location:l.LZ.TrialBanner,entity:l.py.User,descriptor:l.Yu.InviteColleague,workflowPhase:l.eu.Complete})}function Y(){S(!1),U([w.getNewEmptyField()]),"inviteForm"!==b&&(h("inviteForm"),A(!1))}var Q=B.hasCompleted&&G.hasCompleted&&z.hasCompleted;return r.createElement(c.G,{title:Pe("title"),closePopup:e.closePopup,bodyClassName:"modal-body px-0",showLoadingSpinner:!Q},Q&&r.createElement(r.Fragment,null,r.createElement("div",{className:Se.minHeight},(null===(t=null==D?void 0:D.metadata)||void 0===t?void 0:t.referralBonusTime)&&r.createElement(ke,{accessPolicy:D,reverseTrialReferralCount:L}),(null===(n=null==D?void 0:D.metadata)||void 0===n?void 0:n.referralReactivationPolicy)&&r.createElement(j,{accessPolicy:D,reverseTrialReferralCount:L}),!k&&r.createElement(J,{activeTab:b,onChangeTab:function(e){return h(e)}}),"pendingInvites"===b?r.createElement(ve,{imageCdnUrl:G.data.imageCdnUrl,invites:H,onInviteMore:Y,removeInvite:function(e){return Ae(this,void 0,void 0,Ie().m(function t(){var n;return Ie().w(function(t){for(;;)switch(t.n){case 0:return t.p=0,t.n=1,R(g.deleteInvite(e));case 1:M.success(Pe("removeSuccess")),t.n=3;break;case 2:t.p=2,n=t.v,M.error(v.M.inviteColleagueError(n));case 3:return t.a(2)}},t,null,[[0,2]])}))},resendInvite:function(e){return Ae(this,void 0,void 0,Ie().m(function t(){var n;return Ie().w(function(t){for(;;)switch(t.n){case 0:return t.p=0,t.n=1,R(g.resendInvite(e));case 1:M.success(Pe("resendSuccess")),t.n=3;break;case 2:t.p=2,n=t.v,M.error(v.M.inviteColleagueError(n));case 3:return t.a(2)}},t,null,[[0,2]])}))},isLoading:!z.hasCompleted}):r.createElement(V,{fields:F,setFields:U,showSpinner:T,completed:k,onSubmit:function(){var e;return Ae(this,void 0,void 0,Ie().m(function t(){var n,r,a,i,o,l;return Ie().w(function(t){for(;;)switch(t.n){case 0:if(!T){t.n=1;break}return t.a(2);case 1:if(n=O.validate(F),r=n.fieldsWithErrors,!n.hasErrors){t.n=2;break}return U(r),t.a(2);case 2:return t.p=2,A(!0),a=w.getValidFieldsData(F),t.n=3,R(g.invite(a));case 3:return S(!0),K(a.length),t.a(2);case 4:if(t.p=4,l=t.v,"create-invitation-failed"===(null===(e=(i=l).responseJSON)||void 0===e?void 0:e.type)){t.n=5;break}return M.error(v.M.inviteColleagueError(i)),t.a(2);case 5:o=w.getInputWithErrors(F,i),U(o);case 6:return t.p=6,A(!1),t.f(6);case 7:return t.a(2)}},t,null,[[2,4,6,7]])}))},onInviteMore:Y,maxFields:Ue,minFields:Fe,isTertiary:_})),!k&&r.createElement("div",{className:"px-3"},r.createElement(s.u,null,r.createElement(he,{onClickCreate:function(){return Ae(this,void 0,void 0,Ie().m(function e(){return Ie().w(function(e){for(;;)switch(e.n){case 0:return N(!0),e.p=1,e.n=2,R(g.createInviteLink());case 2:e.n=4;break;case 3:e.p=3,e.v,M.error(Pe("error"));case 4:return e.p=4,N(!1),e.f(4);case 5:return e.a(2)}},e,null,[[1,3,4,5]])}))},onClickDelete:function(){return Ae(this,void 0,void 0,Ie().m(function e(){var t;return Ie().w(function(e){for(;;)switch(e.n){case 0:return e.p=0,e.n=1,R(g.deleteInvite($.id));case 1:M.success(Pe("deleteLinkSuccess")),e.n=3;break;case 2:e.p=2,t=e.v,M.error(v.M.inviteColleagueError(t));case 3:return e.a(2)}},e,null,[[0,2]])}))},link:null==$?void 0:$.inviteUrl,showSpinner:x})))))}},91969:(e,t,n)=>{"use strict";var r=n(47033),a={"text/plain":"Text","text/html":"Url",default:"Text"};e.exports=function(e,t){var n,i,o,l,c,s,u=!1;t||(t={}),n=t.debug||!1;try{if(o=r(),l=document.createRange(),c=document.getSelection(),(s=document.createElement("span")).textContent=e,s.ariaHidden="true",s.style.all="unset",s.style.position="fixed",s.style.top=0,s.style.clip="rect(0, 0, 0, 0)",s.style.whiteSpace="pre",s.style.webkitUserSelect="text",s.style.MozUserSelect="text",s.style.msUserSelect="text",s.style.userSelect="text",s.addEventListener("copy",function(r){if(r.stopPropagation(),t.format)if(r.preventDefault(),void 0===r.clipboardData){n&&console.warn("unable to use e.clipboardData"),n&&console.warn("trying IE specific stuff"),window.clipboardData.clearData();var i=a[t.format]||a.default;window.clipboardData.setData(i,e)}else r.clipboardData.clearData(),r.clipboardData.setData(t.format,e);t.onCopy&&(r.preventDefault(),t.onCopy(r.clipboardData))}),document.body.appendChild(s),l.selectNodeContents(s),c.addRange(l),!document.execCommand("copy"))throw new Error("copy command was unsuccessful");u=!0}catch(r){n&&console.error("unable to copy using execCommand: ",r),n&&console.warn("trying IE specific stuff");try{window.clipboardData.setData(t.format||"text",e),t.onCopy&&t.onCopy(window.clipboardData),u=!0}catch(r){n&&console.error("unable to copy using clipboardData: ",r),n&&console.error("falling back to prompt"),i=function(e){var t=(/mac os x/i.test(navigator.userAgent)?"⌘":"Ctrl")+"+C";return e.replace(/#{\s*key\s*}/g,t)}("message"in t?t.message:"Copy to clipboard: #{key}, Enter"),window.prompt(i,e)}}finally{c&&("function"==typeof c.removeRange?c.removeRange(l):c.removeAllRanges()),s&&document.body.removeChild(s),o()}return u}},22771:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});const r={pillTabSelector:"Hdi6o",tab:"RvNxr",minWidth:"GHSz9",radiusSmall:"VhJJa",tabLink:"WFyvo"}},44818:(e,t,n)=>{"use strict";function r(e){return r="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},r(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.CopyToClipboard=void 0;var a=l(n(32735)),i=l(n(91969)),o=["text","onCopy","options","children"];function l(e){return e&&e.__esModule?e:{default:e}}function c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?c(Object(n),!0).forEach(function(t){p(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):c(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function u(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function m(e,t){return m=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},m(e,t)}function d(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function f(e){return f=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},f(e)}function p(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var v=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&m(e,t)}(y,e);var t,n,l,c,v=(l=y,c=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(e){return!1}}(),function(){var e,t=f(l);if(c){var n=f(this).constructor;e=Reflect.construct(t,arguments,n)}else e=t.apply(this,arguments);return function(e,t){if(t&&("object"===r(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return d(e)}(this,e)});function y(){var e;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,y);for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return p(d(e=v.call.apply(v,[this].concat(n))),"onClick",function(t){var n=e.props,r=n.text,o=n.onCopy,l=n.children,c=n.options,s=a.default.Children.only(l),u=(0,i.default)(r,c);o&&o(r,u),s&&s.props&&"function"==typeof s.props.onClick&&s.props.onClick(t)}),e}return t=y,(n=[{key:"render",value:function(){var e=this.props,t=(e.text,e.onCopy,e.options,e.children),n=function(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}(e,o),r=a.default.Children.only(t);return a.default.cloneElement(r,s(s({},n),{},{onClick:this.onClick}))}}])&&u(t.prototype,n),Object.defineProperty(t,"prototype",{writable:!1}),y}(a.default.PureComponent);t.CopyToClipboard=v,p(v,"defaultProps",{onCopy:void 0,options:void 0})},59087:(e,t,n)=>{"use strict";var r=n(44818).CopyToClipboard;r.CopyToClipboard=r,e.exports=r},47033:e=>{e.exports=function(){var e=document.getSelection();if(!e.rangeCount)return function(){};for(var t=document.activeElement,n=[],r=0;r<e.rangeCount;r++)n.push(e.getRangeAt(r));switch(t.tagName.toUpperCase()){case"INPUT":case"TEXTAREA":t.blur();break;default:t=null}return e.removeAllRanges(),function(){"Caret"===e.type&&e.removeAllRanges(),e.rangeCount||n.forEach(function(t){e.addRange(t)}),t&&t.focus()}}}}]);
|
|
3
|
-
//# sourceMappingURL=8364-ff63447d36-lite.chunk.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scripts/8364-ff63447d36-lite.chunk.js","mappings":";mJAEM,SAAUA,IACd,OACE,uBAAKC,QAAQ,aACX,wBAAMC,EAAE,oSAGd,KCIaC,EAAiB,aAAiB,SAC7CC,EACAC,GAEA,IAAQC,EAAiEF,EAAjEE,aAAcC,EAAmDH,EAAnDG,gBAAiBC,EAAkCJ,EAAlCI,eAAmBC,2UAAU,CAAKL,EAAnE,qDAEN,OACE,uBAAKM,UAAU,qBACb,yCACMD,EAAU,CACdJ,IAAKA,EACLK,UAAS,UAAKN,EAAMM,UAAS,YCtBiB,eDwB5CN,EAAMO,OAASJ,IACjB,wBACEG,UAAS,UC1BU,QD0BY,4DAAoDF,GAAkB,IACrGI,KAAK,SACLC,QAASP,EACTQ,UAAW,SAACC,GAAsB,MAAe,UAAVA,EAAEC,KAAmBV,GAAc,EAC1EW,SAAU,GAEV,uBAAKP,UAAU,mCACb,gBAACV,EAAS,QAMtB,mIEvCA,SAAgB,OAAS,QAAQ,QAAU,QAAQ,eAAiB,+GCYpE,IACMkB,EAAYC,EAAA,mBADA,oBAqBZ,SAAUC,EAAUhB,GACxB,QAAqG,KAA7C,WAAeA,EAAMiB,iBAAkB,KAAM,s4BAA7FC,EAAmB,KAAEC,EAAsB,KAEnD,SAASC,IACPC,WAAW,kBAAMF,GAAuB,EAAM,EAAE,IAClD,CAEA,SAASG,IACHtB,EAAMsB,QACRtB,EAAMsB,SAEJJ,IAGJC,GAAuB,GACvBC,IACF,CAEA,YAAgB,WACTpB,EAAMiB,gBAGXG,GACF,EAAG,CAACpB,EAAMiB,iBA2CV,IAAMM,EACJ,uBAAKjB,UAA6B,cAAlBN,EAAMwB,QAA0B,gDAAkD,eAC/FxB,EAAMyB,SACH,4BACAnB,WAAW,OAAW,oCAAqCN,EAAM0B,YAAc,kBAC/EC,YAAY,EACZpB,MAAOP,EAAMO,MACbqB,KAAM,EACNC,UAAQ,IAER,yBACAC,KAAK,OACLC,aAAa,MACbzB,WAAW,OACT,eACkB,WAAlBN,EAAMwB,SAAwBxB,EAAMwB,SAEtCG,YAAY,EACZpB,MAAOP,EAAMO,MACbsB,UAAQ,IAIZ,gBAhEJ,WACE,MAAsB,cAAlB7B,EAAMwB,QAEN,gBAAC,EAAAQ,gBAAe,CAACC,KAAMjC,EAAMO,MAAOe,OAAQA,GAC1C,gBAACY,EAAA,EAAU,CACT1B,KAAMU,EAAsB,SAAW,GACvCiB,QAASjB,EAAsB,WAAqB,UACpDZ,WAAW,OACT,UACA,uBACAY,EAAsB,yBAA2B,oCACjDlB,EAAMoC,wBAGPlB,EACClB,EAAMqC,YAAcvB,EAAU,cAC9Bd,EAAMsC,UAAYxB,EAAU,UAQpC,gBAAC,EAAAkB,gBAAe,CAACC,KAAMjC,EAAMO,MAAOe,OAAQA,GAC1C,0BACEd,KAAMU,EAAsB,SAAW,GACvCZ,WAAW,OACT,gEACAN,EAAMoC,wBAGPlB,EACClB,EAAMqC,YAAcvB,EAAU,UAC9Bd,EAAMsC,UAAYxB,EAAU,SAKtC,EAyBW,OAIX,OAAId,EAAMuC,MAEN,gBAACC,EAAA,QAAU,CAAClC,UAAU,cACpB,gBAACkC,EAAA,QAAU,KAAExC,EAAMuC,OAClBhB,GAKAA,CACT,CA3GAP,EAAUyB,aAAe,CACvBjB,QAAS,0ICXX,SAASkB,EAAY1C,GACnB,OACE,kCACKA,EAAM2C,IAAIR,SACX,uBAAK7B,UAAWN,EAAM2C,IAAIC,KAAO,OAAS,IACxC,gBAAC,IAAY,CAACT,QAASnC,EAAM2C,IAAIR,WAIpCnC,EAAM2C,IAAIC,KAEmB,iBAArB5C,EAAM2C,IAAIE,OACjB,uBAAKvC,UAAU,QACb,gBAAC,IAAK,CAACwB,KAAM,UAAiBgB,KAAM9C,EAAM2C,IAAIE,SAKxD,CA8BM,SAAUE,EAAgB/C,SAW9B,OACE,uBAAKM,UAA0B,QAAf,EAAAN,EAAMM,iBAAS,QAAI,GAAIL,IAAKD,EAAMgD,cAChD,sBAAI1C,UAAS,qDACwB,oBAAsB,qBACvDN,EAAMiD,aAAe,gBAAqB,GAAE,qBAC5CjD,EAAMkD,cAAa,aAEpBlD,EAAMmD,KAAKC,IAAI,SAACT,EAAKU,GACpB,OACE,sBACE/C,UAAS,gCACD,QAAU,YAAIqC,EAAIW,OAAS,eAAiB,uBAAsB,6BACtEX,EAAIC,KAAO,aAAkB,GAAE,YAAID,EAAIrC,UAAS,oBAEpDM,IAAKyC,GAEJV,EAAIY,QACH,gBAAC,IAAO,CACNA,QAASZ,EAAIY,QACbC,cAAeb,EAAIa,cACnBC,iBAAkBd,EAAIc,iBACtBnD,UAAS,sKAE4C,YAAc,yBAGnE,gBAACoC,EAAW,CAACC,IAAKA,KAGpB,gBAAC,IAAS,CACRrC,UAAS,sKAE4C,YAAc,wBAEnEG,QAAS,WAAF,OA5CvB,SAAqBkC,IACfA,EAAIW,QAAWX,EAAIe,WAGvBf,EAAIe,WAEAf,EAAIa,eAAiBb,EAAIc,kBAC3B,kBAA8Bd,EAAIa,cAAeb,EAAIc,kBACzD,CAoC+BE,CAAYhB,EAAI,GAE/B,gBAACD,EAAW,CAACC,IAAKA,KAK5B,IAIR,CA5DAI,EAAgBN,aAAe,CAC7BQ,aAAc,sPC5DHW,EAA0B,CACrCC,OAAM,SACJf,GAEA,MAAO,CACLgB,IAAK,6BACLlD,IAAK,oBACLmD,WAAW,EACXjC,KAAMkC,EAAA,OACNlB,KAAAA,EACAmB,iBAAkB,CAAC,WAEvB,EAEAC,aAAY,WACV,MAAO,CACLtD,IAAK,UACLkD,IAAK,mDACLC,WAAW,EAEf,EAEAI,aAAY,SAACC,GACX,MAAO,CACLxD,IAAK,iBACLkD,IAAK,8BAAF,OAAgCM,GACnCtC,KAAMkC,EAAA,SACND,WAAW,EACXE,iBAAkB,CAAC,WAEvB,EAEAI,aAAY,SAACD,GACX,MAAO,CACLxD,IAAK,WAAF,OAAawD,EAAE,WAClBN,IAAK,uCAAF,OAAyCM,GAC5CtC,KAAMkC,EAAA,OACND,WAAW,EAEf,EAEAO,iBAAgB,WACd,MAAO,CACL1D,IAAK,iBACLkD,IAAK,mCACLhC,KAAMkC,EAAA,OACND,WAAW,EACXE,iBAAkB,CAAC,WAEvB,iuBC/CF,IAAMM,EAA6D,CACjE,eAAgB,aAChB,gBAAiB,gBAIbzD,EAAYC,EAAA,mBADA,kBAGLyD,EAAmB,CAC9BC,kBAAiB,SACfpB,EACAqB,EACAC,EACAC,GAGA,IAAMC,EAAcC,KAAKD,YAAYH,GAGrC,IAAKG,EAAYE,OACf,OAAOD,KAAKE,YAAY3B,EAAOqB,EAAaC,GAE9C,IAAMM,EAAiBJ,EAAYA,EAAYE,OAAS,GAGlDG,IACJ7B,IAAUwB,EAAYE,OAAS,IAC9BF,EAAYxB,GAAOP,KAAKqC,UAAUJ,SAAUF,EAAYxB,GAAOP,KAAKsC,MAAML,QAIvEM,KACJR,EAAYE,OAASH,IACpBK,EAAenC,KAAKqC,UAAUJ,QAAUE,EAAenC,KAAKsC,MAAML,SAIrE,OAAIG,GAA0BG,EACrBP,KAAKQ,SAAST,EAAaD,QADpC,CAIF,EAEAW,mBAAkB,SAACC,GACjB,OAAOA,EAAOC,OAAO,SAACC,EAAUC,GAC9B,OAAIA,EAAQ7C,KAAKsC,MAAML,OACd,GAAP,SAAYW,GAAQ,CAAEC,EAAQ7C,OAEzB4C,CACT,EAAG,GACL,EAEAE,mBAAkB,SAACJ,EAA2BK,SACtCC,EAAmB,EAAIN,GAEvBO,EAA6B,QAAlB,EAAAF,EAAMG,oBAAY,eAAED,SAarC,OAXAD,EAAiBG,QAAQ,SAAC1E,EAAO8B,GAC/B,IAAMwC,EAAQE,EAASG,KAAK,SAAAC,GAAI,OAAIA,EAAKf,QAAU7D,EAAMuB,KAAKsC,KAAK,GAC9DS,IACLC,EAAiBzC,GAAS,OAAH,wBAClB9B,GAAK,CACRsE,MAAO,CACLT,MAAOtE,EAAUyD,EAAesB,EAAMO,eAG5C,GAEON,CACT,EAEAjB,YAAW,SAACH,GACV,OAAOA,EAAY2B,OACjB,SAAAF,GAAI,OAAMA,EAAKrD,KAAKqC,UAAUJ,QAAUoB,EAAKrD,KAAKsC,MAAML,MAAM,EAElE,EAEAC,YAAW,SAAC3B,EAAeqB,EAAgCC,GACzD,OAAID,EAAYK,SAAWJ,GAAcD,EAAYrB,GAG9CqB,EAAY2B,OAAO,SAACC,EAAGC,GAAG,OAAKA,IAAQlD,CAAK,GAF1CqB,CAGX,EAEAY,SAAQ,SAACZ,EAAgCE,GACvC,OAAIF,EAAYK,QAAUH,EACjBF,EAEF,GAAP,SAAYA,GAAW,CAAEI,KAAK0B,oBAChC,EAEAA,iBAAgB,WACd,MAAO,CACL1D,KAAM,CACJqC,UAAW,GACXC,MAAO,IAGb,yGCrGF,IACM,EAAYrE,EAAA,mBADA,kBAGZ0F,EAAa,IAAIC,OAAO,8BACxBC,EAAiB,uDAEVC,EAAyB,CACpCC,SAAQ,SAACrB,GAAyB,aAC1BsB,iDAAuBtB,sjBACzBuB,GAAY,EAwBhB,OAtBAD,EAAiBb,QAAQ,SAACE,EAAM9C,GAO9B,GALEA,IAAUyD,EAAiB/B,OAAS,GAC1B,IAAV1B,GACE8C,EAAKrD,KAAKsC,MAAML,QAAWoB,EAAKrD,KAAKqC,UAAUJ,OAGnD,CAGA,IAAMiC,EAAyC,CAC7C7B,UAAW,EAAK8B,kBAAkBd,EAAKrD,KAAKqC,WAC5CC,MAAO,EAAK8B,cAAcf,EAAKrD,KAAKsC,SAGlC4B,EAAiB7B,WAAa6B,EAAiB5B,SACjDe,EAAKN,MAAQmB,EAERD,IAAWA,GAAY,GAVtB,CAYV,GAEO,CAAED,iBAAAA,EAAkBC,UAAAA,EAC7B,EAEAG,cAAa,SAAC9B,GACZ,OAAKA,EAAML,OAIN0B,EAAWU,KAAK/B,QAArB,EACS,EAAU,oBAJV,EAAU,kBAMrB,EAEA6B,kBAAiB,SAAC9B,GAChB,GAAKA,EAAUJ,OAIf,OAAK4B,EAAeQ,KAAKhC,QAAzB,EACS,EAAU,mBAErB,GCnDI,EAAYpE,EAAA,mBADA,+BAQZ,SAAUqG,EAAqBpH,GACnC,IAAQqH,EAA4CrH,EAA5CqH,aAAcC,EAA8BtH,EAA9BsH,0BAEtB,OACE,uBAAKhH,UAAU,QACb,uBAAKE,KAAK,QAAQF,UAAU,gDACzB,EAAU,eAAc,IAAE,8BAAS,EAAU,kBAC7C+G,EAAaE,SAASC,cACrB,uBAAKlH,UAAU,eACb,6BACG,EAAU,qBAAsB,CAAEuC,MAAOyE,QAAAA,EAA6B,EAAGG,IAAKJ,EAAaE,SAASC,kBAOnH,iSCzBA,IACM,EAAYzG,EAAA,mBADA,sCAsBZ,SAAU2G,EAAoB1H,GAClC,MAAwBA,EAAMuB,MAAtBuB,EAAI,EAAJA,KAAM+C,EAAK,EAALA,MAEd,SAAS8B,EAA8CC,EAAUrH,GAC/D,UAAMsH,EAAO,+BACR/E,MAAI,KACEvC,yRAARqH,kGAEH5H,EAAM2H,SAASC,EAAOC,EACxB,CAYA,OACE,uBAAKvH,UAAU,YACb,uBAAKA,UAAU,SACb,yBACEwB,KAAK,OACLc,KAAI,mBAAc5C,EAAMqD,OACxB/C,UAAU,+BACVwH,YAAa,EAAU,aACvBvH,MAAOuC,EAAKqC,UACZwC,SAnBR,SAA2BI,GACzBA,EAAMC,iBACNL,EAAS,YAAaI,EAAME,OAAO1H,MACrC,EAiBQwB,aAAa,QAEd8D,IAASA,aAAK,EAALA,EAAOV,YACf,qBAAG7E,UAAU,oBAAoBuF,EAAMV,YAG3C,uBAAK7E,UAAU,cACb,gBAACP,EAAA,EAAc,CACb+B,KAAK,OACLc,KAAI,wBAAmB5C,EAAMqD,OAC7B/C,UAAU,+BACVwH,YAAa,EAAU,eAAgB,CAAEjF,MAAO7C,EAAMqD,MAAQ,IAC9D9C,MAAOuC,EAAKsC,MACZuC,SA5BR,SAA2BI,GACzBA,EAAMC,iBACNL,EAAS,QAASI,EAAME,OAAO1H,MACjC,EA0BQL,aAAcF,EAAMkI,YACpBnG,aAAa,MACb5B,mBAAoB2C,EAAKqC,YAAarC,EAAKsC,SAE5CS,IAASA,aAAK,EAALA,EAAOT,QACf,qBAAG9E,UAAU,mBAAmB6H,wBAAyB,CAAEC,OAAQvC,EAAMT,UAKnF,+tBCxEA,IAAM,EAAY,qCAcZ,SAAUiD,EAAqBrI,GACnC,IAAQwF,EAAwDxF,EAAxDwF,OAAQ8C,EAAgDtI,EAAhDsI,UAAW3D,EAAqC3E,EAArC2E,UAAWC,EAA0B5E,EAA1B4E,UAAW2D,EAAevI,EAAfuI,WAE3CC,EAAa,UAAc,kBAAMhD,EAAOa,OAAO,SAAAoC,GAAC,QAAMA,EAAE3F,KAAKsC,KAAK,GAAEL,MAAM,EAAE,CAACS,IAqCnF,OACE,uBAAKlF,UAAU,QACb,gBAACoI,EAAA,QAAgB,CACfC,IAAKC,EAAA,0BACLtI,UAAU,oBAEZ,sBAAIA,UAAU,kBACZ,gBAACuI,EAAA,EAAI,CAACC,UAAW,EAAWC,OAAQR,EAAa,wBAA0B,mBAE7E,qBAAGjI,UAAU,eACX,gBAACuI,EAAA,EAAI,CAACC,UAAW,EAAWC,OAAO,sBAErC,uBAAKzI,UAAU,oBACb,uBAAKA,UAAU,SACb,gBAACuI,EAAA,EAAI,CAACC,UAAW,EAAWC,OAAO,eAErC,uBAAKzI,UAAU,cACb,gBAACuI,EAAA,EAAI,CAACC,UAAW,EAAWC,OAAO,qBACnC,wBAAMzI,UAAU,eAAa,OAGhCkF,EAAOpC,IAAI,SAAC+C,EAAM9C,GAAK,OACtB,gBAACqE,EAAmB,CAClBnG,MAAO4E,EACPvF,IAAKyC,EACLA,MAAOA,EACPsE,SAAU,SAACC,EAAOC,GAAO,OA7DjC,SAA2BxE,EAAeuE,EAAkC9E,GACtEO,EAAQmC,EAAOT,QAGnBuD,EAAU,SAAA9C,WACFqC,EAAU,EAAIrC,GAUpB,OATAqC,EAAQxE,GAAOP,KAAOA,GAGJ,QAAd,EAAA+E,EAAQxE,UAAM,eAAEwC,SAAuB,QAAd,EAAAgC,EAAQxE,UAAM,eAAEwC,MAAM+B,YAC1CC,EAAQxE,GAAOwC,MAAM+B,GAGHpD,EAAiBC,kBAAkBpB,EAAOwE,EAASlD,EAAWC,IAE5DiD,CAC/B,EACF,CA4CsCmB,CAAkB3F,EAAOuE,EAAOC,EAAQ,EACtEK,YAAa,WAAF,OA3CnB,SAAqB7E,GACfA,EAAQmC,EAAOT,QAGnBuD,EAAU,SAAA9C,GACR,IAAMqC,EAAU,EAAIrC,GAOpB,OANAqC,EAAQxE,GAAOP,KAAKqC,UAAY,GAChC0C,EAAQxE,GAAOP,KAAKsC,MAAQ,GAGDZ,EAAiBC,kBAAkBpB,EAAOwE,EAASlD,EAAWC,IAE5DiD,CAC/B,EACF,CA6B2B,CAAYxE,EAAM,GACrC,GAEJ,uBAAK/C,UAAU,aACb,gBAAC2I,EAAA,EAAa,CAACC,YAAalJ,EAAMkJ,YAAaC,QAAQ,OAAO7I,UAAU,eAAeG,QAAST,EAAMoJ,UACpG,gBAACP,EAAA,EAAI,CAACC,UAAW,EAAWC,OAAO,YAAYM,QAAS,CAAEC,WAAYd,GAAc,OAK9F,CC7FA,IAAM,EAAY,kCAOZ,SAAUe,EAAkBvJ,SAChC,GAAiB,QAAZ,EAAAA,EAAMwF,cAAM,eAAET,OAGnB,OACE,uBAAKzE,UAAU,oBACb,gBAACoI,EAAA,QAAgB,CACfC,IAAKC,EAAA,kCACLtI,UAAU,oBAEZ,sBAAIA,UAAU,MAAK,gBAACuI,EAAA,EAAI,CAACC,UAAW,EAAWC,OAAO,gBACtD,qBAAGzI,UAAU,QAAO,gBAACuI,EAAA,EAAI,CAACC,UAAW,EAAWC,OAAO,iBACvD,uBAAKzI,UAAU,QACZN,EAAMwF,OAAOpC,IAAI,SAAC+C,EAAM9C,GACvB,MAA6B8C,EAAKrD,KAA1BqC,EAAS,EAATA,UAAWC,EAAK,EAALA,MAEnB,GAAKA,EAGL,OACE,qBAAG9E,UAAU,OAAOM,IAAKyC,KACpB8B,EAAUJ,QACX,8BAASI,GAAmB,MAGxBC,EAAK,IAGjB,IAEF,yBACE,gBAACyD,EAAA,EAAI,CAACC,UAAW,EAAWC,OAAO,eAAe,IAClD,qBACEtI,QAAST,EAAMwJ,aACflJ,UAAU,iBAEV,gBAACuI,EAAA,EAAI,CAACC,UAAW,EAAWC,OAAO,iBAK7C,CCvCM,SAAUU,EAAWzJ,GACzB,IAAQwF,EAA6CxF,EAA7CwF,OAAQ8C,EAAqCtI,EAArCsI,UAAWY,EAA0BlJ,EAA1BkJ,YAAaE,EAAapJ,EAAboJ,SAOxC,OAAK5D,EAAOT,OAGR/E,EAAM0J,UACD,gBAACH,EAAiB,CAAC/D,OAAQA,EAAQgE,aAT5C,SAAsBzB,GACpBA,EAAMC,iBACNhI,EAAMwJ,cACR,IAUE,gBAACnB,EAAoB,CACnB7C,OAAQA,EACR8C,UAAWA,EACXY,YAAaA,EACbE,SAAUA,EACVxE,UAAW5E,EAAM4E,UACjBD,UAAW3E,EAAM2E,UACjB4D,WAAYvI,EAAMuI,aAdb,gCAiBX,gBCnCM,EAAYxH,EAAA,mBADA,4BAUZ,SAAU4I,EAAW3J,GACzB,IAAMmD,EAAkB,CAAC,CACvBP,KAAM,EAAU,UAChBc,SAAU,WAAF,OAAQ1D,EAAM4J,YAAY,aAAa,EAC/CtG,OAA4B,eAApBtD,EAAM6J,UACdrG,cAAe,CACbZ,KAAM,EAAU,WAElBa,iBAAkB,CAChBqG,WAAY,WACZC,OAAQ,SACRC,SAAU,iBAEX,CACDpH,KAAM,EAAU,WAChBc,SAAU,WAAF,OAAQ1D,EAAM4J,YAAY,iBAAiB,EACnDtG,OAA4B,mBAApBtD,EAAM6J,UACdrG,cAAe,CACbZ,KAAM,EAAU,YAElBa,iBAAkB,CAChBqG,WAAY,WACZC,OAAQ,SACRC,SAAU,kBAId,OACE,gBAACjH,EAAA,EAAe,CACdzC,UAAU,qCACV6C,KAAMA,GAGZ,gBC5CM,EAAY,+BAMZ,SAAU8G,EAAoBjK,GAMlC,OACE,uBAAKM,UAAU,yBACb,gBAACoI,EAAA,QAAgB,CACfC,IAAKC,EAAA,+BACLtI,UAAU,oBAEZ,sBAAIA,UAAU,WACZ,gBAACuI,EAAA,EAAI,CAACC,UAAW,EAAWC,OAAO,gBAErC,yBACE,gBAACF,EAAA,EAAI,CAACC,UAAW,EAAWC,OAAO,qBAAqB,IAExD,qBAAGtI,QAjBT,SAAsBsH,GACpBA,EAAMC,iBACNhI,EAAMwJ,cACR,EAcgClJ,UAAU,aAClC,gBAACuI,EAAA,EAAI,CAACC,UAAW,EAAWC,OAAO,kBAK7C,CCpCA,SAAgB,OAAS,QAAQ,QAAU,QAAQ,QAAU,QAAQ,iBAAmB,SCGxF,SAASmB,IACP,OACE,uBAAK5J,UAAU,uCACb,uBAAKA,UAAU,mCACb,uBAAKA,UAAS,oDAA+C,YAC7D,uBAAKA,UAAU,cACb,uBAAKA,UAAS,+CAA0C,aACxD,uBAAKA,UAAS,2CAAsC,eAGxD,uBAAKA,UAAU,qDACb,uBAAKA,UAAS,2CAAsC,cAI5D,CAEM,SAAU6J,KACd,OACE,uBAAK7J,UAAU,QACb,uBAAKA,UAAS,8CAAyC,aACtD8J,MAAM,GAAGC,KAAK,MAAMjH,IAAI,SAAC+C,EAAM9C,GAAK,OAAK,gBAAC6G,EAAyB,CAACtJ,IAAKyC,GAAS,GAGzF,KC5BYiH,oDAAZ,SAAYA,GACV,kBACA,sBACA,mBACD,CAJD,CAAYA,KAAAA,GAAY,KCMxB,IACM,GAAYvJ,EAAA,mBADA,kBASLwJ,GAAuB,CAClCC,eAAc,SAACnB,GACb,IAAQoB,EAAuCpB,EAAvCoB,OAAQpG,EAA+BgF,EAA/BhF,aAAcqG,EAAiBrB,EAAjBqB,aAE9B,OAAID,IAAWH,GAAaK,SAAiB,GAEJ,CACvC,CACEpI,MAAO,GAAU,gBACjB9B,QAAS4D,GAEX,CACE9B,MAAO,GAAU,gBACjB9B,QAASiK,EACTpK,UAAW,eAKjB,GCxBI,GAAYS,EAAA,mBADA,kCAOZ,SAAU6J,GAAiB5K,GAC/B,OAAIA,EAAMyK,SAAWH,GAAaK,SAE9B,gBAACE,GAAqB,CACpBC,oBAAoB,eACpBC,UAAW,WAAF,OACP,gBAACC,GAAA,EAAY,CACXC,KAAMD,GAAAE,EAAA,MACN/I,QAAS,aACT,EAEJF,KAAM,GAAU,cAKlBjC,EAAMyK,SAAWH,GAAaa,OAE9B,gBAACN,GAAqB,CACpBE,UAAW,WAAF,OACP,gBAACC,GAAA,EAAY,CACXC,KAAMD,GAAAE,EAAA,MACN/I,QAAS,oBACT7B,UAAU,0CACV,EAEJ8K,eAAe,iBACfnJ,KAAM,GAAU,YAKlBjC,EAAMyK,SAAWH,GAAae,QAE9B,gBAACR,GAAqB,CACpBC,oBAAoB,cACpBC,UAAW,WAAF,OACP,gBAACC,GAAA,EAAY,CACXC,KAAMD,GAAAE,EAAA,MACN/I,QAAS,YACT7B,UAAU,gCACV,EAEJ2B,KAAM,GAAU,aAKf,gCACT,CAUA,SAAS4I,GAAsB7K,GAC7B,SAASsL,EAAgBC,EAAmBC,GAC1C,OAAIA,EACK,GAAP,OAAUD,EAAS,YAAIC,GAElBD,CACT,CAEA,IAAME,EAAiBH,EAAgB,4BAA6BtL,EAAM8K,qBACpEY,EAAYJ,EAAgB,OAAQtL,EAAMoL,gBAEhD,OACE,uBAAK9K,UAAWmL,GACbzL,EAAM+K,WAAa/K,EAAM+K,YAC1B,yBAAOzK,UAAWoL,GACf1L,EAAMiC,MAIf,CC7FA,UAAgB,OAAS,QAAQ,MAAQ,SCyBzC,SAAS0J,GAAa3L,GACpB,OAAIA,EAAM4L,QAEN,gBAACC,GAAA,EAAM,CACLC,YAAa9L,EAAM8L,YACnBC,SAAU/L,EAAM4L,UAMpB,uBAAKtL,UAAU,kGACb,gBAAC0K,GAAA,EAAY,CAAC7I,QAAS,YAAoB8I,KAAMD,GAAAE,EAAA,QAGvD,CAEM,SAAUc,GAAmBhM,WACjC,EAA4BA,EAAM6D,OAA1BoI,EAAO,EAAPA,QAASxB,EAAM,EAANA,OACXrF,EAAsB,QAAd,EAAA6G,aAAO,EAAPA,EAAS7G,aAAK,QAAIpF,EAAM6D,OAAO0D,SAASnC,MAChD8G,EAAU3B,GAAqBC,eAAe,CAClDC,OAAAA,EACApG,aAAc,WAAF,OAAQrE,EAAMqE,aAAarE,EAAM6D,OAAOO,GAAG,EACvDsG,aAAc,WAAF,OAAQ1K,EAAM0K,aAAa1K,EAAM6D,OAAOO,GAAG,IAEnDe,EAAiC,QAArB,EAAAnF,EAAM6D,OAAO0D,gBAAQ,eAAEpC,UACnCyG,EAAUzG,aAAS,EAATA,EAAWgH,OAAO,EAAG,GAErC,OACE,uBAAK7L,UAAU,4CACb,uBAAKA,UAAU,kCACb,uBAAKA,UAAW,WACd,gBAACqL,GAAY,CACXC,QAASA,EACTQ,OAAQH,aAAO,EAAPA,EAASG,OACjBN,YAAa9L,EAAM8L,eAGvB,uBAAKxL,UAAU,UACV6E,GACD,sBAAI7E,UAAU,WAAW6E,GAE3B,qBACE7E,UAAS,kDAA6C,UACtD+L,MAAOjH,GAENA,KAIP,uBAAK9E,UAAU,0DACb,gBAACsK,GAAgB,CAACH,OAAQA,MACvByB,EAAQnH,QACT,gBAACuH,GAAA,EAAe,CACdC,wBAAwB,oBACxBL,QAASA,KAMrB,CC3EA,IAAM,GAAY,+BAWZ,SAAUM,GAAexM,SAC7B,OAAIA,EAAMyM,UACD,gBAACtC,GAAqB,OAGZ,QAAd,EAAAnK,aAAK,EAALA,EAAO0M,eAAO,eAAE3H,QAKnB,uBAAKzE,UAAU,QACb,sBAAIA,UAAU,WACZ,gBAACuI,EAAA,EAAI,CAACC,UAAW,GAAWC,OAAO,aAErC,gBAAC,KAAU,CACTzI,UAAS,UAAK,qBAEbN,EAAM0M,QAAQtJ,IAAI,SAAC+C,EAAM9C,GAAK,OAC7B,gBAAC2I,GAAkB,CACjBpL,IAAKyC,EACLQ,OAAQsC,EACR2F,YAAa9L,EAAM8L,YACnBpB,aAAc1K,EAAM0K,aACpBrG,aAAcrE,EAAMqE,cACpB,KAlBD,gBAAC4F,EAAmB,CAACT,aAAcxJ,EAAMwJ,cAuBpD,6BC5CM,GAAY,gCASZ,SAAUmD,GAAgB3M,GAC9B,OAAIA,EAAMkJ,YAEN,uBAAK5I,UAAU,qBACb,gBAACsM,GAAA,EAAO,CAACC,GAAG,MAAMC,UAAU,SAAStM,KAAK,YAM9C,uBAAKF,UAAU,SACb,uBAAKA,UAAU,kCACb,sBAAIA,UAAU,MAAK,gBAACuI,EAAA,EAAI,CAACC,UAAW,GAAWC,OAAO,WACrD/I,EAAM+M,MACL,0BAAQzM,UAAU,kCAAkCG,QAAST,EAAMgN,eACjE,gBAACnE,EAAA,EAAI,CAACC,UAAW,GAAWC,OAAO,aAKxC/I,EAAM+M,KACH,gBAAC/L,GAAA,EAAS,CAACT,MAAOP,EAAM+M,OACxB,uBAAKzM,UAAU,wCACf,2BACE,gBAAC0K,GAAA,EAAY,CAAC7I,QAAS,WAAmB7B,UAAU,sCACpD,gBAACuI,EAAA,EAAI,CAACC,UAAW,GAAWC,OAAO,cAErC,0BAAQzI,UAAU,oBAAoBG,QAAST,EAAMiN,eACnD,gBAACpE,EAAA,EAAI,CAACC,UAAW,GAAWC,OAAO,aAM/C,KC9CYmE,uCCQN,GAAYnM,EAAA,mBADA,+BAQZ,SAAUoM,GAAqBnN,GACnC,IAAQqH,EAA4CrH,EAA5CqH,aAAcC,EAA8BtH,EAA9BsH,0BAEtB,OACE,uBAAKhH,UAAU,QACb,uBAAKE,KAAK,QAAQF,UAAU,4DAC1B,uBAAKA,UAAU,oDACb,gBAAC0K,GAAA,EAAY,CAAC7I,QAAS,kBAA0B8I,KAAMD,GAAAE,EAAA,SACvD,2BACG,GAAU,eAAc,IAEzB,gBAACkC,GAAA,EAAO,CACN7J,QAAS,CACP8J,YAAa,aACbC,OAAQ,8BAEVhN,UAAU,mDAEV,8BAAS,GAAU,gBAAiB,CAAEiN,UAAWlG,EAAaE,SAASiG,kBAAkBC,MAAM,KAAK,SAIzGpG,EAAaE,SAASC,cACvB,2BACE,6BACG,GAAU,qBAAsB,CAAE3E,MAAOyE,QAAAA,EAA6B,EAAGG,IAAKJ,EAAaE,SAASC,kBAOjH,ED/CA,SAAY0F,GACV,cACA,iBACD,CAHD,CAAYA,KAAAA,GAAU,KEJtB,UAAgB,UAAY,k1GCmCtB,GAAYnM,EAAA,mBADA,yBAGZ2M,GAAa,EACbC,GAAa,EAWb,SAAUC,GAAoB5N,WAC2B,KAArC,WAA2BA,EAAM2C,KAAI,GAArDA,EAAG,KAAEkL,EAAM,KACqE,KAA9B,YAAwB,GAAM,GAAhFC,EAAoB,KAAEC,EAAuB,KACY,KAArB,YAAe,GAAM,GAAzDC,EAAa,KAAEC,EAAgB,KAE8B,KAArB,YAAe,GAAM,GAA7DC,EAAe,KAAEC,EAAkB,KACiE,KAA9E,WAAkC,iBAAM,CAAC3J,EAAiBgC,mBAAmB,GAAC,GAApGhB,EAAM,KAAE8C,EAAS,KAEjBjB,GAAiB,EAAA+G,EAAA,MAAjB/G,aACAC,GAA8B,EAAA+G,EAAA,GAAY,MAA1C/G,0BAEFgH,EAAa,uBAEbC,GAAS,SACThG,GAAa,EAAAiG,EAAA,KAEbC,EAAc,kBAAkCC,EAAA,iBAChDC,EAAS,kBAA6BC,EAAA,YACtClC,EAAU,kBAAmC9I,EAAwBM,gBAE3E,ECjEI,SAA0BwI,GAC9B,OAAO,UAAc,WACnB,OAAKA,EAIEA,EAAQjH,OAAO,SAACoJ,EAAMC,GAC3B,OAAIA,EAAKhN,OAASoL,GAAW6B,QAC3BF,EAAKG,cAAcC,KAAKH,GACjBD,IAGTA,EAAKK,MAAMD,KAAKH,GACTD,EACT,EAAG,CACDG,cAAe,GACfE,MAAO,KAbA,CAAEF,cAAe,KAAME,MAAO,KAezC,EAAG,CAACxC,GACN,CD8CmCyC,CAAgBzC,EAAQ5J,MAAjDkM,EAAa,EAAbA,cAAeE,EAAK,EAALA,MACjBnC,EAAOmC,aAAK,EAALA,EAAQ,GAuDrB,SAASE,EAAWC,GAClBC,EAAA,gBAA8B,CAAED,WAAAA,GAAc,CAC5CvF,WAAY,eACZE,SAAU,iBACVD,OAAQ,UACRwF,WAAY,qBACZC,cAAe,eAEnB,CAEA,SAASC,IACPxB,GAAiB,GACjB3F,EAAU,CAAC9D,EAAiBgC,qBAChB,eAAR7D,IACFkL,EAAO,cACPM,GAAmB,GAEvB,CAoBA,IAAMuB,EAAajB,EAAYkB,cAAgBhB,EAAOgB,cAAgBjD,EAAQiD,aAE9E,OACE,gBAACC,EAAA,EAAK,CACJvD,MAAO,GAAU,SACjBwD,WAAY7P,EAAM6P,WAClBC,cAAc,kBACdC,oBAAqBL,GAEpBA,GACC,gCACE,uBAAKpP,UAAW,eACS,QAAtB,EAAA+G,aAAY,EAAZA,EAAcE,gBAAQ,eAAEiG,oBACvB,gBAACL,GAAoB,CAAC9F,aAAcA,EAAcC,0BAA2BA,KAExD,QAAtB,EAAAD,aAAY,EAAZA,EAAcE,gBAAQ,eAAEyI,6BACvB,gBAAC5I,EAAoB,CAACC,aAAcA,EAAcC,0BAA2BA,KAG7E0G,GACA,gBAACrE,EAAU,CAACE,UAAWlH,EAAKiH,YAAa,SAAAjH,GAAG,OAAIkL,EAAOlL,EAAI,IAI/C,mBAARA,EAEA,gBAAC6J,GAAc,CACbV,YAAa6C,EAAO7L,KAAKgJ,YACzBY,QAASsC,EACTxF,aAAciG,EACd/E,aAhDlB,SAAkCtG,8GAE9B,mBAAMkK,EAAW1K,EAAwBO,aAAaC,IAAI,OAC1DmK,EAAO0B,QAAQ,GAAU,kBAAkB,+BAE3C1B,EAAO1I,MAAMqK,EAAA,uBAAwC,IAAM,yCAE9D,EA0CiB7L,aAxClB,SAAkCD,8GAE9B,mBAAMkK,EAAW1K,EAAwBS,aAAaD,IAAI,OAC1DmK,EAAO0B,QAAQ,GAAU,kBAAkB,+BAE3C1B,EAAO1I,MAAMqK,EAAA,uBAAwC,IAAM,yCAE9D,EAkCiBzD,WAAYC,EAAQiD,eAKxB,gBAAClG,EAAU,CACTjE,OAAQA,EACR8C,UAAWA,EACXY,YAAagF,EACbxE,UAAWsE,EACX5E,SA/GhB,0IACM8E,EAAiB,CAAF,iCAEgB,GAFhB,EAEqBtH,EAAuBC,SAASrB,GAAhEsB,EAAgB,EAAhBA,kBAA2B,EAATC,UACX,CAAF,YACiB,OAA5BuB,EAAUxB,GAAkB,cAO5B,OAP4B,MAK5BqH,GAAmB,GACbgC,EAAyC3L,EAAiBe,mBAAmBC,GAAO,MACpF8I,EAAW1K,EAAwBC,OAAOsM,IAAiB,OAE9B,OADnClC,GAAiB,GACjBmB,EAAWe,EAAgBpL,QAAQ,cAGxB,GAHwB,YAKF,8BAAX,QAAlB,GAFEc,EAAQ,GAEJG,oBAAY,eAAElE,MAAmC,aACI,OAA7DyM,EAAO1I,MAAMqK,EAAA,uBAAwCrK,IAAQ,cAIzDC,EAAmBtB,EAAiBoB,mBAAmBJ,EAAQK,GAErEyC,EAAUxC,GAAkB,OAEF,OAFE,MAE5BqI,GAAmB,GAAO,oDAE7B,EAkFe3E,aAAciG,EACd7K,UAAW+I,GACXhJ,UAAW+I,GACXnF,WAAYA,MAKlByF,GACA,uBAAK1N,UAAU,QACb,gBAAC8P,EAAA,EAAY,KACX,gBAACzD,GAAe,CACdM,cAjJhB,gHAII,OAHFc,GAAwB,GAAM,YAGtBO,EAAW1K,EAAwBU,oBAAmB,oCAE5DiK,EAAO1I,MAAM,GAAU,UAAU,OAEF,OAFE,MAEjCkI,GAAwB,GAAO,oDAElC,EAwIef,cAtIhB,sHAEI,mBAAMsB,EAAW1K,EAAwBO,aAAa4I,EAAK3I,KAAI,OAC/DmK,EAAO0B,QAAQ,GAAU,sBAAsB,+BAE/C1B,EAAO1I,MAAMqK,EAAA,uBAAwC,IAAM,yCAE9D,EAgIenD,KAAMA,aAAI,EAAJA,EAAMsD,UACZnH,YAAa4E,OAS/B,gCEpOA,IAAIwC,EAAkB,EAAQ,OAE1BC,EAA4B,CAC9B,aAAc,OACd,YAAa,MACb,QAAW,QA2GbC,EAAOC,QAjGP,SAAcxO,EAAMoH,GAClB,IAAIqH,EACFC,EACAC,EACAC,EACAC,EACAC,EACAd,GAAU,EACP5G,IACHA,EAAU,CAAC,GAEbqH,EAAQrH,EAAQqH,QAAS,EACzB,IAkDE,GAjDAE,EAAmBN,IAEnBO,EAAQG,SAASC,cACjBH,EAAYE,SAASE,gBAErBH,EAAOC,SAASG,cAAc,SACzBC,YAAcnP,EAEnB8O,EAAKM,WAAa,OAElBN,EAAKO,MAAMC,IAAM,QAEjBR,EAAKO,MAAME,SAAW,QACtBT,EAAKO,MAAMG,IAAM,EACjBV,EAAKO,MAAMI,KAAO,mBAElBX,EAAKO,MAAMK,WAAa,MAExBZ,EAAKO,MAAMM,iBAAmB,OAC9Bb,EAAKO,MAAMO,cAAgB,OAC3Bd,EAAKO,MAAMQ,aAAe,OAC1Bf,EAAKO,MAAMS,WAAa,OACxBhB,EAAKiB,iBAAiB,OAAQ,SAASrR,GAErC,GADAA,EAAEsR,kBACE5I,EAAQ6I,OAEV,GADAvR,EAAEqH,sBAC6B,IAApBrH,EAAEwR,cAA+B,CAC1CzB,GAAS0B,QAAQC,KAAK,iCACtB3B,GAAS0B,QAAQC,KAAK,4BACtBC,OAAOH,cAAcI,YACrB,IAAIL,EAAS3B,EAA0BlH,EAAQ6I,SAAW3B,EAAmC,QAC7F+B,OAAOH,cAAcK,QAAQN,EAAQjQ,EACvC,MACEtB,EAAEwR,cAAcI,YAChB5R,EAAEwR,cAAcK,QAAQnJ,EAAQ6I,OAAQjQ,GAGxCoH,EAAQ/H,SACVX,EAAEqH,iBACFqB,EAAQ/H,OAAOX,EAAEwR,eAErB,GAEAnB,SAASyB,KAAKC,YAAY3B,GAE1BF,EAAM8B,mBAAmB5B,GACzBD,EAAU8B,SAAS/B,IAEFG,SAAS6B,YAAY,QAEpC,MAAM,IAAIC,MAAM,iCAElB7C,GAAU,CACZ,CAAE,MAAO8C,GACPrC,GAAS0B,QAAQvM,MAAM,qCAAsCkN,GAC7DrC,GAAS0B,QAAQC,KAAK,4BACtB,IACEC,OAAOH,cAAcK,QAAQnJ,EAAQ6I,QAAU,OAAQjQ,GACvDoH,EAAQ/H,QAAU+H,EAAQ/H,OAAOgR,OAAOH,eACxClC,GAAU,CACZ,CAAE,MAAO8C,GACPrC,GAAS0B,QAAQvM,MAAM,uCAAwCkN,GAC/DrC,GAAS0B,QAAQvM,MAAM,0BACvB8K,EAjFN,SAAgBA,GACd,IAAIqC,GAAW,YAAY7L,KAAK8L,UAAUC,WAAa,IAAM,QAAU,KACvE,OAAOvC,EAAQwC,QAAQ,gBAAiBH,EAC1C,CA8EgBd,CAAO,YAAa7I,EAAUA,EAAQsH,QAnFjC,oCAoFf2B,OAAOc,OAAOzC,EAAS1O,EACzB,CACF,CAAE,QACI6O,IACkC,mBAAzBA,EAAUuC,YACnBvC,EAAUuC,YAAYxC,GAEtBC,EAAUwC,mBAIVvC,GACFC,SAASyB,KAAKc,YAAYxC,GAE5BH,GACF,CAEA,OAAOX,CACT,iDC/GA,SAAgB,gBAAkB,QAAQ,IAAM,QAAQ,SAAW,QAAQ,YAAc,QAAQ,QAAU,uCCC3G,SAASuD,EAAQC,GAAkC,OAAOD,EAAU,mBAAqBE,QAAU,iBAAmBA,OAAOC,SAAW,SAAUF,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAO,mBAAqBC,QAAUD,EAAIG,cAAgBF,QAAUD,IAAQC,OAAOG,UAAY,gBAAkBJ,CAAK,EAAGD,EAAQC,EAAM,CAE/UK,OAAOC,eAAetD,EAAS,aAAc,CAC3ClQ,OAAO,IAETkQ,EAAQzO,qBAAkB,EAE1B,IAAIgS,EAASC,EAAuB,EAAQ,QAExCC,EAAmBD,EAAuB,EAAQ,QAElDE,EAAY,CAAC,OAAQ,SAAU,UAAW,YAE9C,SAASF,EAAuBR,GAAO,OAAOA,GAAOA,EAAIW,WAAaX,EAAM,CAAE,QAAWA,EAAO,CAEhG,SAASY,EAAQC,EAAQC,GAAkB,IAAIC,EAAOV,OAAOU,KAAKF,GAAS,GAAIR,OAAOW,sBAAuB,CAAE,IAAIC,EAAUZ,OAAOW,sBAAsBH,GAASC,IAAmBG,EAAUA,EAAQrO,OAAO,SAAUsO,GAAO,OAAOb,OAAOc,yBAAyBN,EAAQK,GAAKE,UAAY,IAAKL,EAAKvF,KAAK6F,MAAMN,EAAME,EAAU,CAAE,OAAOF,CAAM,CAEpV,SAASO,EAAc9M,GAAU,IAAK,IAAI+M,EAAI,EAAGA,EAAIC,UAAUlQ,OAAQiQ,IAAK,CAAE,IAAIE,EAAS,MAAQD,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIX,EAAQP,OAAOoB,IAAS,GAAIjP,QAAQ,SAAUrF,GAAOuU,EAAgBlN,EAAQrH,EAAKsU,EAAOtU,GAAO,GAAKkT,OAAOsB,0BAA4BtB,OAAOuB,iBAAiBpN,EAAQ6L,OAAOsB,0BAA0BF,IAAWb,EAAQP,OAAOoB,IAASjP,QAAQ,SAAUrF,GAAOkT,OAAOC,eAAe9L,EAAQrH,EAAKkT,OAAOc,yBAAyBM,EAAQtU,GAAO,EAAI,CAAE,OAAOqH,CAAQ,CAQzf,SAASqN,EAAkBrN,EAAQjI,GAAS,IAAK,IAAIgV,EAAI,EAAGA,EAAIhV,EAAM+E,OAAQiQ,IAAK,CAAE,IAAIzF,EAAavP,EAAMgV,GAAIzF,EAAWsF,WAAatF,EAAWsF,aAAc,EAAOtF,EAAWgG,cAAe,EAAU,UAAWhG,IAAYA,EAAWiG,UAAW,GAAM1B,OAAOC,eAAe9L,EAAQsH,EAAW3O,IAAK2O,EAAa,CAAE,CAM5T,SAASkG,EAAgBC,EAAGC,GAA+G,OAA1GF,EAAkB3B,OAAO8B,gBAAkB,SAAyBF,EAAGC,GAAsB,OAAjBD,EAAEG,UAAYF,EAAUD,CAAG,EAAUD,EAAgBC,EAAGC,EAAI,CAMzK,SAASG,EAAuBC,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIC,eAAe,6DAAgE,OAAOD,CAAM,CAIrK,SAASE,EAAgBP,GAAwJ,OAAnJO,EAAkBnC,OAAO8B,eAAiB9B,OAAOoC,eAAiB,SAAyBR,GAAK,OAAOA,EAAEG,WAAa/B,OAAOoC,eAAeR,EAAI,EAAUO,EAAgBP,EAAI,CAE5M,SAASP,EAAgB1B,EAAK7S,EAAKL,GAAiK,OAApJK,KAAO6S,EAAOK,OAAOC,eAAeN,EAAK7S,EAAK,CAAEL,MAAOA,EAAOsU,YAAY,EAAMU,cAAc,EAAMC,UAAU,IAAkB/B,EAAI7S,GAAOL,EAAgBkT,CAAK,CAEhN,IAAIzR,EAA+B,SAAUmU,IAhB7C,SAAmBC,EAAUC,GAAc,GAA0B,mBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIC,UAAU,sDAAyDF,EAASvC,UAAYC,OAAOyC,OAAOF,GAAcA,EAAWxC,UAAW,CAAED,YAAa,CAAErT,MAAO6V,EAAUZ,UAAU,EAAMD,cAAc,KAAWzB,OAAOC,eAAeqC,EAAU,YAAa,CAAEZ,UAAU,IAAca,GAAYZ,EAAgBW,EAAUC,EAAa,CAiBjcG,CAAUxU,EAAiBmU,GAE3B,IArBoBM,EAAaC,EAMbC,EAAeC,EAe/BC,GAfgBF,EAeM3U,EAfS4U,EAMrC,WAAuC,GAAuB,oBAAZE,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,mBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQrD,UAAUsD,QAAQC,KAAKN,QAAQC,UAAUG,QAAS,GAAI,WAAa,KAAY,CAAM,CAAE,MAAOvW,GAAK,OAAO,CAAO,CAAE,CANvQ0W,GAAoC,WAAkC,IAAsCC,EAAlCC,EAAQtB,EAAgBU,GAAkB,GAAIC,EAA2B,CAAE,IAAIY,EAAYvB,EAAgBnR,MAAM8O,YAAa0D,EAASR,QAAQC,UAAUQ,EAAOtC,UAAWuC,EAAY,MAASF,EAASC,EAAMzC,MAAMhQ,KAAMmQ,WAAc,OAEpX,SAAoCc,EAAMqB,GAAQ,GAAIA,IAA2B,WAAlB5D,EAAQ4D,IAAsC,mBAATA,GAAwB,OAAOA,EAAa,QAAa,IAATA,EAAmB,MAAM,IAAId,UAAU,4DAA+D,OAAOR,EAAuBC,EAAO,CAF4F0B,CAA2B3S,KAAMwS,EAAS,GAiBna,SAAStV,IACP,IAAI0V,GA5BR,SAAyBC,EAAUlB,GAAe,KAAMkB,aAAoBlB,GAAgB,MAAM,IAAIH,UAAU,oCAAwC,CA8BpJsB,CAAgB9S,KAAM9C,GAEtB,IAAK,IAAI6V,EAAO5C,UAAUlQ,OAAQ+S,EAAO,IAAI1N,MAAMyN,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC/ED,EAAKC,GAAQ9C,UAAU8C,GA0BzB,OArBA5C,EAAgBW,EAFhB4B,EAAQb,EAAOO,KAAKtC,MAAM+B,EAAQ,CAAC/R,MAAMkT,OAAOF,KAED,UAAW,SAAU/P,GAClE,IAAIkQ,EAAcP,EAAM1X,MACpBiC,EAAOgW,EAAYhW,KACnBX,EAAS2W,EAAY3W,OACrB4W,EAAWD,EAAYC,SACvB7O,EAAU4O,EAAY5O,QAEtB8O,EAAOnE,EAAgB,QAAEoE,SAASC,KAAKH,GAEvCZ,GAAS,EAAIpD,EAA0B,SAAGjS,EAAMoH,GAEhD/H,GACFA,EAAOW,EAAMqV,GAIXa,GAAQA,EAAKnY,OAAuC,mBAAvBmY,EAAKnY,MAAMS,SAC1C0X,EAAKnY,MAAMS,QAAQsH,EAEvB,GAEO2P,CACT,CAoBA,OA5EoBjB,EA0DPzU,GA1DoB0U,EA0DH,CAAC,CAC7B9V,IAAK,SACLL,MAAO,WACL,IAAI+X,EAAexT,KAAK9E,MAIpBkY,GAHQI,EAAarW,KACXqW,EAAahX,OACZgX,EAAajP,QACbiP,EAAaJ,UACxBlY,EA1EV,SAAkCkV,EAAQqD,GAAY,GAAc,MAAVrD,EAAgB,MAAO,CAAC,EAAG,IAAkEtU,EAAKoU,EAAnE/M,EAEzF,SAAuCiN,EAAQqD,GAAY,GAAc,MAAVrD,EAAgB,MAAO,CAAC,EAAG,IAA2DtU,EAAKoU,EAA5D/M,EAAS,CAAC,EAAOuQ,EAAa1E,OAAOU,KAAKU,GAAqB,IAAKF,EAAI,EAAGA,EAAIwD,EAAWzT,OAAQiQ,IAAOpU,EAAM4X,EAAWxD,GAAQuD,EAASE,QAAQ7X,IAAQ,IAAaqH,EAAOrH,GAAOsU,EAAOtU,IAAQ,OAAOqH,CAAQ,CAFhNyQ,CAA8BxD,EAAQqD,GAAuB,GAAIzE,OAAOW,sBAAuB,CAAE,IAAIkE,EAAmB7E,OAAOW,sBAAsBS,GAAS,IAAKF,EAAI,EAAGA,EAAI2D,EAAiB5T,OAAQiQ,IAAOpU,EAAM+X,EAAiB3D,GAAQuD,EAASE,QAAQ7X,IAAQ,GAAkBkT,OAAOD,UAAU+E,qBAAqBxB,KAAKlC,EAAQtU,KAAgBqH,EAAOrH,GAAOsU,EAAOtU,GAAQ,CAAE,OAAOqH,CAAQ,CA0Ezd4Q,CAAyBP,EAAcnE,GAE/CgE,EAAOnE,EAAgB,QAAEoE,SAASC,KAAKH,GAE3C,OAAoBlE,EAAgB,QAAE8E,aAAaX,EAAMpD,EAAcA,EAAc,CAAC,EAAG/U,GAAQ,CAAC,EAAG,CACnGS,QAASqE,KAAKrE,UAElB,MAzE0E6U,EAAkBmB,EAAY5C,UAAW6C,GAA2E5C,OAAOC,eAAe0C,EAAa,YAAa,CAAEjB,UAAU,IA4ErPxT,CACT,CA3DmC,CA2DjCgS,EAAgB,QAAE+E,eAEpBtI,EAAQzO,gBAAkBA,EAE1BmT,EAAgBnT,EAAiB,eAAgB,CAC/CV,YAAQ0X,EACR3P,aAAS2P,kCC9GX,IACIhX,EADW,EAAQ,OACQA,gBAE/BA,EAAgBA,gBAAkBA,EAClCwO,EAAOC,QAAUzO,aCLjBwO,EAAOC,QAAU,WACf,IAAIK,EAAYE,SAASE,eACzB,IAAKJ,EAAUmI,WACb,OAAO,WAAa,EAKtB,IAHA,IAAI3V,EAAS0N,SAASkI,cAElBC,EAAS,GACJnE,EAAI,EAAGA,EAAIlE,EAAUmI,WAAYjE,IACxCmE,EAAOlK,KAAK6B,EAAUsI,WAAWpE,IAGnC,OAAQ1R,EAAO+V,QAAQC,eACrB,IAAK,QACL,IAAK,WACHhW,EAAOiW,OACP,MAEF,QACEjW,EAAS,KAKb,OADAwN,EAAUwC,kBACH,WACc,UAAnBxC,EAAUhP,MACVgP,EAAUwC,kBAELxC,EAAUmI,YACbE,EAAOlT,QAAQ,SAAS4K,GACtBC,EAAU8B,SAAS/B,EACrB,GAGFvN,GACAA,EAAOkW,OACT,CACF","sources":["file:///app/packages/libs/shared/src/images/components/CloseIcon.tsx","file:///app/packages/libs/shared/src/apps/sign-up/components/general/clear-input/ClearableInput.tsx","file:///app/packages/libs/shared/src/apps/sign-up/components/general/clear-input/clearable-input.scss","file:///app/packages/libs/shared/src/components/copy-input/copy-input.scss","file:///app/packages/libs/shared/src/components/copy-input/CopyInput.tsx","file:///app/packages/libs/shared/src/components/pill-tab-selector/PillTabSelector.tsx","file:///app/packages/projects/lite/src/apps/sign-up/flight-requests/InviteColleagueRequests.ts","file:///app/packages/projects/lite/src/apps/sign-up/helpers/InputGroupHelper.ts","file:///app/packages/projects/lite/src/apps/sign-up/helpers/InviteValidationHelper.ts","file:///app/packages/projects/lite/src/apps/sign-up/views/invite-colleague/components/invite/hard-gate-invite-banner/HardGateInviteBanner.tsx","file:///app/packages/projects/lite/src/apps/sign-up/views/invite-colleague/components/invite/invite-form-input-group/InviteFormInputItem.tsx","file:///app/packages/projects/lite/src/apps/sign-up/views/invite-colleague/components/invite/invite-form-input-group/InviteFormInputGroup.tsx","file:///app/packages/projects/lite/src/apps/sign-up/views/invite-colleague/components/invite/invite-form-success/InviteFormSuccess.tsx","file:///app/packages/projects/lite/src/apps/sign-up/views/invite-colleague/components/invite/invite-form/InviteForm.tsx","file:///app/packages/projects/lite/src/apps/sign-up/views/invite-colleague/components/invite/invite-tabs/InviteTabs.tsx","file:///app/packages/projects/lite/src/apps/sign-up/views/invite-colleague/components/invite/pending-invites/EmptyPendingInvites.tsx","file:///app/packages/projects/lite/src/apps/sign-up/views/invite-colleague/components/invite/pending-invites/pending-invites.scss","file:///app/packages/projects/lite/src/apps/sign-up/views/invite-colleague/components/invite/pending-invites/PartialPendingInvites.tsx","file:///app/packages/projects/lite/src/apps/sign-up/enums/InviteStatus.ts","file:///app/packages/projects/lite/src/apps/sign-up/helpers/PendingInvitesHelper.ts","file:///app/packages/projects/lite/src/apps/sign-up/views/invite-colleague/components/invite/invite-status-info/InviteStatusInfo.tsx","file:///app/packages/projects/lite/src/apps/sign-up/views/invite-colleague/components/invite/pending-invites-item/pending-invites-item.scss","file:///app/packages/projects/lite/src/apps/sign-up/views/invite-colleague/components/invite/pending-invites-item/PendingInvitesItem.tsx","file:///app/packages/projects/lite/src/apps/sign-up/views/invite-colleague/components/invite/pending-invites/PendingInvites.tsx","file:///app/packages/projects/lite/src/apps/sign-up/views/invite-colleague/components/invite/share-invite-link/ShareInviteLink.tsx","file:///app/packages/projects/lite/src/apps/sign-up/enums/InviteType.ts","file:///app/packages/projects/lite/src/apps/sign-up/views/invite-colleague/components/invite/soft-gate-invite-banner/SoftGateInviteBaner.tsx","file:///app/packages/projects/lite/src/apps/sign-up/views/invite-colleague/invite-colleague.scss","file:///app/packages/projects/lite/src/apps/sign-up/views/invite-colleague/InviteColleagueView.tsx","file:///app/packages/projects/lite/src/apps/sign-up/views/invite-colleague/useSplitInvites.ts","file:///app/node_modules/copy-to-clipboard/index.js","file:///app/packages/libs/shared/src/components/pill-tab-selector/pill-tab-selector.scss","file:///app/node_modules/react-copy-to-clipboard/lib/Component.js","file:///app/node_modules/react-copy-to-clipboard/lib/index.js","file:///app/node_modules/toggle-selection/index.js"],"sourcesContent":["import React from 'react';\n\nexport function CloseIcon(): JSX.Element {\n return (\n <svg viewBox='0 0 24 24'>\n <path d='M11.959 10.641l4.402-4.296a.964.964 0 0 1 1.358 0 .951.951 0 0 1 0 1.35l-4.403 4.297 4.403 4.378a.951.951 0 0 1 0 1.35.964.964 0 0 1-1.358 0l-4.402-4.378-4.32 4.378a.964.964 0 0 1-1.358 0 .951.951 0 0 1 0-1.35l4.32-4.378-4.32-4.362a.951.951 0 0 1 0-1.35.964.964 0 0 1 1.358 0l4.32 4.361z'/>\n </svg>\n );\n}","import React from 'react';\n\nimport { CloseIcon } from 'libs/shared/images/components/CloseIcon';\n\nimport styles from './clearable-input.scss';\n\ninterface ClearInputProps extends React.HTMLProps<HTMLInputElement> {\n showClearButton?: boolean;\n onClickClear: () => void;\n clearClassName?: string;\n}\n\nexport const ClearableInput = React.forwardRef((\n props: ClearInputProps,\n ref: React.ForwardedRef<HTMLInputElement>\n) => {\n const { onClickClear, showClearButton, clearClassName, ...inputProps } = props;\n\n return (\n <div className='position-relative'>\n <input\n {...inputProps}\n ref={ref}\n className={`${props.className} ${styles.clearableInput}`}\n />\n {(!!props.value || showClearButton) &&\n <span\n className={`${styles.clearInput} position-absolute cursor-pointer text-secondary ${clearClassName || ''}`}\n role='button'\n onClick={onClickClear}\n onKeyDown={(e: React.KeyboardEvent) => e.key === 'Enter' && onClickClear()}\n tabIndex={0}\n >\n <div className='d-inline-block svg-container md'>\n <CloseIcon />\n </div>\n </span>\n }\n </div>\n );\n});","// extracted by mini-css-extract-plugin\nexport default {\"clearInput\":\"ygMgF\",\"clearableInput\":\"aYpO7\"};","// extracted by mini-css-extract-plugin\nexport default {\"normal\":\"Q1UGv\",\"copyBtn\":\"J3fBx\",\"embedHtmlInput\":\"RcwAD\"};","import * as React from 'react';\nimport { Form } from 'react-bootstrap';\nimport { CopyToClipboard } from 'react-copy-to-clipboard';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { classNames } from 'libs/common/react/utils/ClassNameHelper';\n\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { IconButton } from '../icon-button/IconButton';\n\nimport styles from './copy-input.scss';\n\nconst namespace = 'shared.copyInput';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface CopyInputProps {\n value: string;\n label?: string;\n // Greyed means the input will be greyed out. Normal means it will appear like a normal input\n styling?: 'greyed' | 'normal' | 'normal-v2';\n onCopy?: () => void;\n copyText?: string;\n copiedText?: string;\n showCopiedText?: boolean;\n extraButtonClassNames?: string;\n textarea?: boolean;\n hasInputBg?: boolean;\n}\n\nCopyInput.defaultProps = {\n styling: 'normal'\n};\n\nexport function CopyInput(props: CopyInputProps): JSX.Element {\n const [ localShowCopiedText, setLocalShowCopiedText ] = React.useState(props.showCopiedText || false);\n\n function revertLocalShowCopiedText() {\n setTimeout(() => setLocalShowCopiedText(false), 2000);\n }\n\n function onCopy(): void {\n if (props.onCopy)\n props.onCopy();\n\n if (localShowCopiedText)\n return;\n\n setLocalShowCopiedText(true);\n revertLocalShowCopiedText();\n }\n\n React.useEffect(() => {\n if (!props.showCopiedText)\n return;\n \n revertLocalShowCopiedText();\n }, [props.showCopiedText]);\n\n function Button() {\n if (props.styling === 'normal-v2') {\n return (\n <CopyToClipboard text={props.value} onCopy={onCopy}>\n <IconButton\n role={localShowCopiedText ? 'status' : ''}\n svgName={localShowCopiedText ? cvSvgLibrary.Check : cvSvgLibrary.Copy}\n className={classNames(\n styles.copyBtn,\n 'btn py-0 text-nowrap',\n localShowCopiedText ? 'btn-success text-white' : 'btn-outline-dark border-secondary',\n props.extraButtonClassNames\n )}\n >\n {localShowCopiedText ?\n props.copiedText || getPhrase('copiedLink') :\n props.copyText || getPhrase('copy')\n }\n </IconButton>\n </CopyToClipboard>\n );\n }\n\n return (\n <CopyToClipboard text={props.value} onCopy={onCopy}>\n <button\n role={localShowCopiedText ? 'status' : ''}\n className={classNames(\n 'btn btn-outline-dark border border-secondary py-0 text-nowrap',\n props.extraButtonClassNames\n )}\n >\n {localShowCopiedText ?\n props.copiedText || getPhrase('copied') :\n props.copyText || getPhrase('copy')\n }\n </button>\n </CopyToClipboard>\n );\n }\n\n const input = (\n <div className={props.styling === 'normal-v2' ? 'd-flex flex-row gap-2 position-relative w-100' : 'input-group'}>\n {props.textarea\n ? <textarea\n className={classNames('form-control rounded w-100 h-100', !props.hasInputBg && styles.embedHtmlInput)}\n spellCheck={false}\n value={props.value}\n rows={7}\n readOnly\n />\n : <input\n type='text'\n autoComplete='off'\n className={classNames(\n 'form-control',\n props.styling === 'normal' && props.styling\n )}\n spellCheck={false}\n value={props.value}\n readOnly\n />\n }\n \n <Button />\n </div>\n );\n\n if (props.label) {\n return (\n <Form.Group className='form-group'>\n <Form.Label>{props.label}</Form.Label>\n {input}\n </Form.Group>\n );\n }\n\n return input;\n}\n","import React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Badge, BadgeType } from 'libs/shared/components/badges/Badge';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\n\nimport { SvgContainer } from '../svg-container/SvgContainer';\n\nimport styles from './pill-tab-selector.scss';\n\ninterface TabContentsProps {\n tab: PillTab;\n}\n\nfunction TabContents(props: TabContentsProps): JSX.Element {\n return (\n <>\n {!!props.tab.svgName && (\n <div className={props.tab.name ? 'pe-1' : ''}>\n <SvgContainer svgName={props.tab.svgName} />\n </div>\n )}\n\n {props.tab.name}\n\n {typeof (props.tab.count) === 'number' && (\n <div className='ps-2'>\n <Badge type={BadgeType.Count} data={props.tab.count} />\n </div>\n )}\n </>\n );\n}\n\nexport interface PillTab {\n name: string;\n active: boolean;\n svgName?: string;\n\n className?: string;\n\n appLink?: Core.AppLink;\n onSelect?: () => void;\n\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n\n count?: number;\n}\n\ninterface PillTabSelectorProps {\n tabs: PillTab[];\n containerRef?: (el: HTMLElement) => void;\n listClassName?: string;\n className?: string;\n borderRadius?: 'sm' | 'lg'\n}\n\nPillTabSelector.defaultProps = {\n borderRadius: 'lg'\n};\n\nexport function PillTabSelector(props: PillTabSelectorProps): JSX.Element {\n function onSelectTab(tab: PillTab): void {\n if (tab.active || !tab.onSelect)\n return;\n\n tab.onSelect();\n\n if (tab.analyticsData && tab.analyticsOptions)\n AnalyticsHelper.logUserAction(tab.analyticsData, tab.analyticsOptions);\n }\n\n return (\n <nav className={props.className ?? ''} ref={props.containerRef}>\n <ul className={`\n list-unstyled d-inline-block m-0 ${styles.pillTabSelector}\n ${props.borderRadius ? styles.radiusSmall : ''}\n ${props.listClassName}\n `}>\n {props.tabs.map((tab, index) => {\n return (\n <li\n className={`\n p-0 ${styles.tab} ${tab.active ? 'btn btn-dark' : 'btn btn-outline-dark'}\n ${tab.name ? styles.minWidth : ''} ${tab.className}\n `}\n key={index}\n >\n {tab.appLink ? (\n <AppLink\n appLink={tab.appLink}\n analyticsData={tab.analyticsData}\n analyticsOptions={tab.analyticsOptions}\n className={`\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ${styles.tabLink}\n `}\n >\n <TabContents tab={tab} />\n </AppLink>\n ) : (\n <DivButton\n className={`\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ${styles.tabLink}\n `}\n onClick={() => onSelectTab(tab)}\n >\n <TabContents tab={tab} />\n </DivButton>\n )}\n </li>\n );\n })}\n </ul>\n </nav>\n );\n}\n","import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { Flight } from 'libs/common/flight';\n\nimport { InviteFormInputData } from 'apps/sign-up/views/invite-colleague/components/invite/invite-form-input-group/InviteFormInputItem';\n\nexport const InviteColleagueRequests = {\n invite(\n data: InviteFormInputData[]\n ): Flight.Request {\n return {\n url: '{gateway}/v1/users/invites',\n key: 'invites:colleague',\n normalize: false,\n type: HttpVerbs.POST,\n data,\n invalidationKeys: ['invites']\n };\n },\n\n inviteByType(): Flight.Request {\n return {\n key: `invites`,\n url: `{gateway}/v1/users/invites?type=link&type=direct`,\n normalize: false\n };\n },\n\n deleteInvite(id: string): Flight.Request {\n return {\n key: `invites:delete`,\n url: `{gateway}/v1/users/invites/${id}`,\n type: HttpVerbs.DELETE,\n normalize: false,\n invalidationKeys: ['invites']\n };\n },\n\n resendInvite(id: string): Flight.Request {\n return {\n key: `invites:${id}:resend`,\n url: `{gateway}/v1/users/invites/email?id=${id}`,\n type: HttpVerbs.POST,\n normalize: false\n };\n },\n\n createInviteLink(): Flight.Request {\n return {\n key: `invites:create`,\n url: `{gateway}/v1/users/invites/links`,\n type: HttpVerbs.POST,\n normalize: false,\n invalidationKeys: ['invites']\n };\n }\n};","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { InviteColleagueProblems, InviteColleagueXhr } from 'libs/shared/interfaces/responses/ErrorResponse';\n\nimport { InviteFormInput, InviteFormInputData } from 'apps/sign-up/views/invite-colleague/components/invite/invite-form-input-group/InviteFormInputItem';\n\n\nconst ErrorPhraseMap: {[key in InviteColleagueProblems]: string} = {\n 'email-in-use': 'emailInUse',\n 'invalid-email': 'invalidEmail'\n};\n\nconst namespace = 'signUp.helpers';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport const InputGroupHelper = {\n recalculateFields(\n index: number,\n inputFields: InviteFormInput[],\n minFields: number,\n maxFields: number\n ): InviteFormInput[] {\n // Remove any fields that have empty inputs\n const cleanFields = this.cleanFields(inputFields);\n\n // If all the fields are empty then just remove the current field\n if (!cleanFields.length)\n return this.removeField(index, inputFields, minFields);\n\n const lastInviteData = cleanFields[cleanFields.length - 1];\n\n // Add new empty field if we are entering data in any of the inputs on the last field\n const enteredDataOnLastField = !!(\n index === cleanFields.length - 1 &&\n (cleanFields[index].data.firstName.length || cleanFields[index].data.email.length)\n );\n\n // Add new empty field if the last field currently has data in any of the inputs but is less than max allowed field size\n const shouldAddField = !!(\n cleanFields.length < maxFields &&\n (lastInviteData.data.firstName.length || lastInviteData.data.email.length)\n );\n\n \n if (enteredDataOnLastField || shouldAddField)\n return this.addField(cleanFields, maxFields);\n\n return;\n },\n\n getValidFieldsData(fields: InviteFormInput[]) {\n return fields.reduce((previous, current) => {\n if (current.data.email.length) {\n return [ ...previous, current.data ];\n }\n return previous;\n }, [] as InviteFormInputData[]);\n },\n\n getInputWithErrors(fields: InviteFormInput[], error: InviteColleagueXhr) {\n const inputsWithErrors = [...fields];\n\n const problems = error.responseJSON?.problems;\n\n inputsWithErrors.forEach((input, index) => {\n const error = problems.find(item => item.email === input.data.email);\n if (!error) return;\n inputsWithErrors[index] = {\n ...input,\n error: {\n email: getPhrase(ErrorPhraseMap[error.errorCode])\n }\n };\n });\n\n return inputsWithErrors;\n },\n\n cleanFields(inputFields: InviteFormInput[]): InviteFormInput[] {\n return inputFields.filter(\n item => ((item.data.firstName.length || item.data.email.length))\n );\n },\n\n removeField(index: number, inputFields: InviteFormInput[], minFields: number): InviteFormInput[] {\n if (inputFields.length === minFields || !inputFields[index])\n return inputFields;\n\n return inputFields.filter((_, idx) => idx !== index);\n },\n\n addField(inputFields: InviteFormInput[], maxFields: number): InviteFormInput[] {\n if (inputFields.length >= maxFields)\n return inputFields;\n\n return [ ...inputFields, this.getNewEmptyField() ];\n },\n\n getNewEmptyField(): InviteFormInput {\n return {\n data: {\n firstName: '',\n email: ''\n }\n };\n }\n};","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { InviteFormInput, InviteFormInputError } from 'apps/sign-up/views/invite-colleague/components/invite/invite-form-input-group/InviteFormInputItem';\n\nconst namespace = 'signUp.helpers';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst emailRegex = new RegExp(/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/);\nconst firstNameRegex = /^[\\w0-9'\\-,.():;&][^_!¡?÷¿/\\\\+=@#$%ˆ*{}|~<>[\\]]{0,}$/;\n\nexport const InviteValidationHelper = {\n validate(fields: InviteFormInput[]): { fieldsWithErrors: InviteFormInput[], hasErrors: boolean } {\n const fieldsWithErrors = [...fields];\n let hasErrors = false;\n \n fieldsWithErrors.forEach((item, index) => {\n const shouldNotValidate = (\n index === fieldsWithErrors.length - 1 &&\n index !== 0 &&\n (!item.data.email.length && !item.data.firstName.length)\n );\n\n if (shouldNotValidate)\n return;\n \n const currentItemError: InviteFormInputError = {\n firstName: this.validateFirstName(item.data.firstName),\n email: this.validateEmail(item.data.email)\n };\n \n if (currentItemError.firstName || currentItemError.email) {\n item.error = currentItemError;\n\n if (!hasErrors) hasErrors = true;\n }\n });\n\n return { fieldsWithErrors, hasErrors };\n },\n\n validateEmail(email: string): string {\n if (!email.length) {\n return getPhrase('enterValidEmail');\n }\n\n if (!emailRegex.test(email)) {\n return getPhrase('validSchoolEmail');\n }\n },\n \n validateFirstName(firstName: string): string {\n if (!firstName.length) {\n return;\n }\n\n if (!firstNameRegex.test(firstName)) {\n return getPhrase('invalidFirstname');\n }\n }\n};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { AccessPolicy } from 'libs/shared/interfaces/models/AccessPolicy';\n\nconst namespace = 'signUp.hardGateInviteBanner';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface HardGateInviteBannerProps {\n accessPolicy: AccessPolicy;\n reverseTrialReferralCount: number;\n}\n\nexport function HardGateInviteBanner(props: HardGateInviteBannerProps): JSX.Element {\n const { accessPolicy, reverseTrialReferralCount } = props;\n \n return (\n <div className='px-3'>\n <div role='alert' className='bg-light-indigo rounded p-2 mb-4 text-indigo'>\n {getPhrase('titlePrefix')} <strong>{getPhrase('titleEmphasis')}</strong>\n {accessPolicy.metadata.maxReferrals &&\n <div className='text-center'>\n <small>\n {getPhrase('extensionsRedeemed', { count: reverseTrialReferralCount ?? 0, max: accessPolicy.metadata.maxReferrals })}\n </small>\n </div>\n }\n </div>\n </div>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { ClearableInput } from 'libs/shared/apps/sign-up/components/general/clear-input/ClearableInput';\n\nconst namespace = 'signUp.invite.inviteFormInputGroup';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport interface InviteFormInputData {\n firstName: string;\n email: string;\n}\n\nexport interface InviteFormInputError extends Partial<InviteFormInputData> {}\n\nexport interface InviteFormInput {\n data: InviteFormInputData,\n error?: InviteFormInputError\n}\n\ninterface InviteFormInputItemProps {\n index: number;\n input: InviteFormInput;\n onChange: (field: keyof InviteFormInputData, data: InviteFormInputData) => void;\n clearInputs: () => void;\n}\n\nexport function InviteFormInputItem(props: InviteFormInputItemProps): JSX.Element {\n const { data, error } = props.input;\n\n function onChange<T extends keyof InviteFormInputData>(field: T, value: InviteFormInputData[T]) {\n const newData: InviteFormInputData = {\n ...data,\n [field]: value\n };\n props.onChange(field, newData);\n }\n\n function onChangeFirstName(event: React.ChangeEvent<HTMLInputElement>): void {\n event.preventDefault();\n onChange('firstName', event.target.value);\n }\n\n function onChangeWorkEmail(event: React.ChangeEvent<HTMLInputElement>): void {\n event.preventDefault();\n onChange('email', event.target.value);\n }\n \n return (\n <div className='row mb-2'>\n <div className='col-4'>\n <input\n type='text'\n name={`firstName${props.index}`}\n className='form-control form-control-lg'\n placeholder={getPhrase('firstName')}\n value={data.firstName}\n onChange={onChangeFirstName}\n autoComplete='off'\n />\n {error && error?.firstName &&\n <p className='mb-0 text-danger'>{error.firstName}</p>\n }\n </div>\n <div className='col-8 ps-0'>\n <ClearableInput\n type='text'\n name={`electronicMail${props.index}`}\n className='form-control form-control-lg'\n placeholder={getPhrase('emailAddress', { count: props.index + 1 })}\n value={data.email}\n onChange={onChangeWorkEmail}\n onClickClear={props.clearInputs}\n autoComplete='off'\n showClearButton={!!(data.firstName || data.email)}\n />\n {error && error?.email &&\n <p className='mb-0 text-danger' dangerouslySetInnerHTML={{ __html: error.email }}></p>\n }\n </div>\n </div>\n );\n}","import React from 'react';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { SpinnerButton } from 'libs/shared/components/spinner-button/SpinnerButton';\nimport { Text } from 'libs/shared/components/text/Text';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nimport { InputGroupHelper } from 'apps/sign-up/helpers/InputGroupHelper';\nimport { InviteFormInput, InviteFormInputData, InviteFormInputItem } from 'apps/sign-up/views/invite-colleague/components/invite/invite-form-input-group/InviteFormInputItem';\n\nconst namespace = 'signUp.invite.inviteFormInputGroup';\n\n\ninterface InviteFormInputGroupProps {\n fields: InviteFormInput[];\n setFields: React.Dispatch<React.SetStateAction<InviteFormInput[]>>\n showSpinner: boolean;\n onSubmit: () => void;\n \n minFields: number;\n maxFields: number;\n isTertiary: boolean;\n}\n\nexport function InviteFormInputGroup(props: InviteFormInputGroupProps): JSX.Element {\n const { fields, setFields, minFields, maxFields, isTertiary } = props;\n\n const fieldCount = React.useMemo(() => fields.filter(f => !!f.data.email).length, [fields]);\n\n function onChangeFieldData(index: number, field: keyof InviteFormInputData, data: InviteFormInputData): void {\n if (index > fields.length)\n return;\n\n setFields(fields => {\n const newData = [...fields];\n newData[index].data = data;\n\n // remove any errors for the field\n if (newData[index]?.error && newData[index]?.error[field]) {\n delete newData[index].error[field];\n }\n\n const recalculatedFields = InputGroupHelper.recalculateFields(index, newData, minFields, maxFields);\n\n return recalculatedFields || newData;\n });\n }\n\n function clearInputs(index: number): void {\n if (index > fields.length)\n return;\n\n setFields(fields => {\n const newData = [...fields];\n newData[index].data.firstName = '';\n newData[index].data.email = '';\n\n // remove any errors for the field\n const recalculatedFields = InputGroupHelper.recalculateFields(index, newData, minFields, maxFields);\n\n return recalculatedFields || newData;\n });\n }\n\n return (\n <div className='px-3'>\n <EmptyState.Image\n src={ImageUrls.SignUp.INVITE_COLLEAGUE}\n className='d-block mx-auto'\n />\n <h2 className='h5 text-center'>\n <Text namespace={namespace} phrase={isTertiary ? 'inviteHeadingTertiary' : 'inviteHeading'} />\n </h2>\n <p className='text-center'>\n <Text namespace={namespace} phrase='inviteSubheading' />\n </p>\n <div className='row fw-bold mb-2'>\n <div className='col-4'>\n <Text namespace={namespace} phrase='firstName' />\n </div>\n <div className='col-8 ps-0'>\n <Text namespace={namespace} phrase='workEmailAddress' />\n <span className='text-danger'>*</span>\n </div>\n </div>\n {fields.map((item, index) => (\n <InviteFormInputItem\n input={item}\n key={index}\n index={index}\n onChange={(field, newData) => onChangeFieldData(index, field, newData)}\n clearInputs={() => clearInputs(index)}\n />\n ))}\n <div className='pt-2 pb-3'>\n <SpinnerButton showSpinner={props.showSpinner} variant='dark' className='btn-lg w-100' onClick={props.onSubmit}>\n <Text namespace={namespace} phrase='btnInvite' options={{ smartCount: fieldCount || 1 }} />\n </SpinnerButton>\n </div>\n </div>\n );\n}","import React from 'react';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { Text } from 'libs/shared/components/text/Text';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nimport { InviteFormInput } from 'apps/sign-up/views/invite-colleague/components/invite/invite-form-input-group/InviteFormInputItem';\n\nconst namespace = 'signUp.invite.inviteFormSuccess';\n\ninterface InviteFormSuccessProps {\n fields: InviteFormInput[];\n onInviteMore: (event: React.MouseEvent) => void;\n}\n\nexport function InviteFormSuccess(props: InviteFormSuccessProps): JSX.Element {\n if (!props.fields?.length)\n return;\n\n return (\n <div className='text-center px-3'>\n <EmptyState.Image\n src={ImageUrls.SignUp.INVITE_COLLEAGUE_SUCCESS}\n className='d-block mx-auto'\n />\n <h2 className='h4'><Text namespace={namespace} phrase='inviteSent' /></h2>\n <p className='mb-0'><Text namespace={namespace} phrase='emailSentTo' /></p>\n <div className='mb-3'>\n {props.fields.map((item, index) => {\n const { firstName, email } = item.data;\n\n if (!email)\n return;\n\n return (\n <p className='mb-0' key={index}>\n {!!firstName.length &&\n <strong>{firstName}</strong>\n }\n \n ({email})\n </p>\n );\n })}\n </div>\n <p>\n <Text namespace={namespace} phrase='moreInvite' /> \n <a\n onClick={props.onInviteMore}\n className='info-link p-0'\n >\n <Text namespace={namespace} phrase='inviteMore' />\n </a>\n </p>\n </div>\n );\n}","import React from 'react';\n\nimport { InviteFormInputGroup } from 'apps/sign-up/views/invite-colleague/components/invite/invite-form-input-group/InviteFormInputGroup';\nimport { InviteFormInput } from 'apps/sign-up/views/invite-colleague/components/invite/invite-form-input-group/InviteFormInputItem';\nimport { InviteFormSuccess } from 'apps/sign-up/views/invite-colleague/components/invite/invite-form-success/InviteFormSuccess';\n\ninterface InviteFormProps {\n maxFields: number;\n minFields: number;\n fields: InviteFormInput[];\n setFields: React.Dispatch<React.SetStateAction<InviteFormInput[]>>\n showSpinner: boolean;\n completed: boolean;\n onSubmit: () => Promise<void>;\n onInviteMore: () => void;\n isTertiary: boolean;\n}\n\nexport function InviteForm(props: InviteFormProps): JSX.Element {\n const { fields, setFields, showSpinner, onSubmit } = props;\n\n function onInviteMore(event: React.MouseEvent) {\n event.preventDefault();\n props.onInviteMore();\n }\n \n if (!fields.length)\n return <></>;\n\n if (props.completed) {\n return <InviteFormSuccess fields={fields} onInviteMore={onInviteMore} />;\n }\n \n return (\n <InviteFormInputGroup\n fields={fields}\n setFields={setFields}\n showSpinner={showSpinner}\n onSubmit={onSubmit}\n maxFields={props.maxFields}\n minFields={props.minFields}\n isTertiary={props.isTertiary}\n />\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EntityType, LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { PillTab, PillTabSelector } from 'libs/shared/components/pill-tab-selector/PillTabSelector';\n\nconst namespace = 'signUp.invite.inviteTabs';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport type InviteTabs = 'inviteForm' | 'pendingInvites';\n\ninterface InviteTabsProps {\n activeTab: InviteTabs;\n onChangeTab: (tab: InviteTabs) => void;\n}\n\nexport function InviteTabs(props: InviteTabsProps): JSX.Element {\n const tabs: PillTab[] = [{\n name: getPhrase('invite'),\n onSelect: () => props.onChangeTab('inviteForm'),\n active: props.activeTab === 'inviteForm',\n analyticsData: {\n name: getPhrase('invite')\n },\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Url,\n location: LocationContext.MagicTabs\n }\n }, {\n name: getPhrase('pending'),\n onSelect: () => props.onChangeTab('pendingInvites'),\n active: props.activeTab === 'pendingInvites',\n analyticsData: {\n name: getPhrase('pending')\n },\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Url,\n location: LocationContext.MagicTabs\n }\n }];\n \n return (\n <PillTabSelector\n className='d-flex justify-content-center mb-3'\n tabs={tabs}\n />\n );\n}","import React from 'react';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { Text } from 'libs/shared/components/text/Text';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nconst namespace = 'signUp.invite.pendingInvites';\n\ninterface EmptyPendingInvitesProps {\n onInviteMore: () => void;\n}\n\nexport function EmptyPendingInvites(props: EmptyPendingInvitesProps): JSX.Element {\n function onInviteMore(event: React.MouseEvent): void {\n event.preventDefault();\n props.onInviteMore();\n }\n \n return (\n <div className='text-center py-4 px-3'>\n <EmptyState.Image\n src={ImageUrls.SignUp.EMPTY_PENDING_INVITES}\n className='d-block mx-auto'\n />\n <h2 className='h5 mb-0'>\n <Text namespace={namespace} phrase='emptyTitle' />\n </h2>\n <p>\n <Text namespace={namespace} phrase='emptyDescription' />\n \n <a onClick={onInviteMore} className='info-link'>\n <Text namespace={namespace} phrase='emptyAction' />\n </a>\n </p>\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"avatar\":\"cin_G\",\"oneLine\":\"FrlTw\",\"twoLine\":\"rBQWR\",\"minPendingHeight\":\"LMnOk\"};","import React from 'react';\n\nimport styles from './pending-invites.scss';\n\nfunction PartialPendingInvitesItem() {\n return (\n <div className='d-flex mb-2 justify-content-between'>\n <div className='col-8 d-flex align-items-center'>\n <div className={`partial-loading-background rounded-circle ${styles.avatar}`}></div>\n <div className='ms-2 w-100'>\n <div className={`partial-loading-background mb-1 w-50 ${styles.oneLine}`}></div>\n <div className={`partial-loading-background w-100 ${styles.oneLine}`}></div>\n </div>\n </div>\n <div className='col d-flex align-items-center justify-content-end'>\n <div className={`partial-loading-background w-100 ${styles.twoLine}`}></div>\n </div>\n </div>\n );\n}\n\nexport function PartialPendingInvites() {\n return (\n <div className='px-3'>\n <div className={`partial-loading-background w-25 m-2 ${styles.oneLine}`}></div>\n {Array(6).fill(null).map((item, index) => <PartialPendingInvitesItem key={index} />)}\n </div>\n );\n}","export enum InviteStatus {\n Active = 'Active',\n Accepted = 'Accepted',\n Expired = 'Expired'\n}","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { DropdownActionOptions } from 'libs/shared/components/actions/ActionsDropdown';\n\nimport { InviteStatus } from 'apps/sign-up/enums/InviteStatus';\n\nconst namesapce = 'signUp.helpers';\nconst getPhrase = LanguageService.encloseNamespace(namesapce);\n\ninterface ItemActionsOptions {\n status: InviteStatus,\n resendInvite: () => void,\n removeInvite: () => void\n}\n\nexport const PendingInvitesHelper = {\n getItemActions(options: ItemActionsOptions): DropdownActionOptions[] {\n const { status, resendInvite, removeInvite } = options;\n\n if (status === InviteStatus.Accepted) return [];\n \n const actions: DropdownActionOptions[] = [\n {\n label: getPhrase('resendInvite'),\n onClick: resendInvite\n },\n {\n label: getPhrase('removeInvite'),\n onClick: removeInvite,\n className: 'text-danger'\n }\n ];\n \n return actions;\n }\n};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { InviteStatus } from 'apps/sign-up/enums/InviteStatus';\n\nconst namespace = 'signUp.invite.inviteStatusInfo';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface InviteStatusInfoProps {\n status: InviteStatus;\n}\n\nexport function InviteStatusInfo(props: InviteStatusInfoProps): JSX.Element {\n if (props.status === InviteStatus.Accepted) {\n return (\n <InviteStatusInfoFrame\n extraContainerClass='text-success'\n renderSvg={() => (\n <SvgContainer\n size={SvgContainerSize.Small}\n svgName={cvSvgLibrary.Check}\n />\n )}\n text={getPhrase('accepted')}\n />\n );\n }\n\n if (props.status === InviteStatus.Active) {\n return (\n <InviteStatusInfoFrame\n renderSvg={() => (\n <SvgContainer\n size={SvgContainerSize.Small}\n svgName={cvSvgLibrary.PendingCircle}\n className='d-inline-block svg-container text-info'\n />\n )}\n extraTextClass='text-secondary'\n text={getPhrase('active')}\n />\n );\n }\n\n if (props.status === InviteStatus.Expired) {\n return (\n <InviteStatusInfoFrame\n extraContainerClass='text-danger'\n renderSvg={() => (\n <SvgContainer\n size={SvgContainerSize.Small}\n svgName={cvSvgLibrary.Close}\n className='d-inline-block svg-container'\n />\n )}\n text={getPhrase('expired')}\n />\n );\n }\n\n return <></>;\n}\n\ninterface InviteStatusInfoFrameProps {\n text: string;\n\n renderSvg?: () => React.ReactElement;\n extraContainerClass?: string;\n extraTextClass?: string;\n}\n\nfunction InviteStatusInfoFrame(props: InviteStatusInfoFrameProps): JSX.Element {\n function mergeClassNames(baseClass: string, extraClass: string): string {\n if (extraClass)\n return `${baseClass} ${extraClass}`;\n\n return baseClass;\n }\n\n const containerClass = mergeClassNames('d-flex align-items-center', props.extraContainerClass);\n const textClass = mergeClassNames('ps-1', props.extraTextClass);\n \n return (\n <div className={containerClass}>\n {props.renderSvg && props.renderSvg()}\n <small className={textClass}>\n {props.text}\n </small>\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"avatar\":\"VsdKR\",\"email\":\"L65Cs\"};","import React from 'react';\n\nimport { ActionsDropdown } from 'libs/shared/components/actions/ActionsDropdown';\nimport { Avatar } from 'libs/shared/components/avatar/Avatar';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { PendingInvitesHelper } from 'apps/sign-up/helpers/PendingInvitesHelper';\nimport { Invitation } from 'apps/sign-up/models/Invitation';\nimport { InviteStatusInfo } from 'apps/sign-up/views/invite-colleague/components/invite/invite-status-info/InviteStatusInfo';\n\nimport styles from './pending-invites-item.scss';\n\ninterface PendingInvitesItemProps {\n imageCdnUrl: string;\n invite: Invitation;\n removeInvite: (id: string) => void;\n resendInvite: (id: string) => void;\n}\n\ninterface InviteAvatarProps {\n imageCdnUrl: string;\n initial: string;\n userId: string;\n}\n\nfunction InviteAvatar(props: InviteAvatarProps): JSX.Element {\n if (props.initial) {\n return (\n <Avatar\n imageCdnUrl={props.imageCdnUrl}\n initials={props.initial}\n />\n );\n }\n\n return (\n <div className='d-flex align-items-center justify-content-center rounded-circle bg-dark text-white w-100 h-100'>\n <SvgContainer svgName={cvSvgLibrary.Email} size={SvgContainerSize.Large} />\n </div>\n );\n}\n\nexport function PendingInvitesItem(props: PendingInvitesItemProps): JSX.Element {\n const { invitee, status } = props.invite;\n const email = invitee?.email ?? props.invite.metadata.email;\n const actions = PendingInvitesHelper.getItemActions({\n status,\n resendInvite: () => props.resendInvite(props.invite.id),\n removeInvite: () => props.removeInvite(props.invite.id)\n });\n const firstName = props.invite.metadata?.firstName;\n const initial = firstName?.substr(0, 1);\n \n return (\n <div className='d-flex mb-2 justify-content-between px-3'>\n <div className='d-flex align-items-center ps-0'>\n <div className={styles.avatar}>\n <InviteAvatar\n initial={initial}\n userId={invitee?.userId}\n imageCdnUrl={props.imageCdnUrl}\n />\n </div>\n <div className='ms-2'>\n {!!firstName &&\n <h3 className='h6 mb-0'>{firstName}</h3>\n }\n <p\n className={`mb-0 text-secondary w-100 text-truncate ${styles.email}`}\n title={email}\n >\n {email}\n </p>\n </div>\n </div>\n <div className='d-flex align-items-center justify-content-between pe-0'>\n <InviteStatusInfo status={status} />\n {!!actions.length &&\n <ActionsDropdown\n dropdownToggleClassName='btn btn-link ms-1'\n actions={actions}\n />\n }\n </div>\n </div>\n );\n}","import React from 'react';\nimport { Scrollbars } from 'react-custom-scrollbars-2';\n\nimport { Text } from 'libs/shared/components/text/Text';\n\nimport { Invitation } from 'apps/sign-up/models/Invitation';\nimport { EmptyPendingInvites } from 'apps/sign-up/views/invite-colleague/components/invite/pending-invites/EmptyPendingInvites';\nimport { PartialPendingInvites } from 'apps/sign-up/views/invite-colleague/components/invite/pending-invites/PartialPendingInvites';\nimport { PendingInvitesItem } from 'apps/sign-up/views/invite-colleague/components/invite/pending-invites-item/PendingInvitesItem';\n\nimport styles from './pending-invites.scss';\n\nconst namespace = 'signUp.invite.pendingInvites';\n\ninterface PendingInvitesProps {\n imageCdnUrl: string;\n invites: Invitation[];\n isLoading: boolean;\n removeInvite: (id: string) => void;\n resendInvite: (id: string) => void;\n onInviteMore: () => void;\n}\n\nexport function PendingInvites(props: PendingInvitesProps): JSX.Element {\n if (props.isLoading) {\n return <PartialPendingInvites />;\n }\n \n if (!props?.invites?.length) {\n return <EmptyPendingInvites onInviteMore={props.onInviteMore} />;\n }\n\n return (\n <div className='px-1'>\n <h3 className='h6 px-3'>\n <Text namespace={namespace} phrase='heading' />\n </h3>\n <Scrollbars\n className={`${styles.minPendingHeight}`}\n >\n {props.invites.map((item, index) => (\n <PendingInvitesItem\n key={index}\n invite={item}\n imageCdnUrl={props.imageCdnUrl}\n removeInvite={props.removeInvite}\n resendInvite={props.resendInvite}\n />\n ))}\n </Scrollbars>\n </div>\n );\n}","import React from 'react';\nimport { Spinner } from 'react-bootstrap';\n\nimport { CopyInput } from 'libs/shared/components/copy-input/CopyInput';\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 = 'signUp.invite.shareInviteLink';\n\ninterface ShareInviteLinkProps {\n link: string;\n showSpinner: boolean;\n onClickCreate: () => void;\n onClickDelete: () => void;\n}\n\nexport function ShareInviteLink(props: ShareInviteLinkProps): JSX.Element {\n if (props.showSpinner) {\n return (\n <div className='text-center w-100'>\n <Spinner as='div' animation='border' role='status' />\n </div>\n );\n }\n \n return (\n <div className='w-100'>\n <div className='d-flex justify-content-between'>\n <h2 className='h6'><Text namespace={namespace} phrase='title' /></h2>\n {props.link &&\n <button className='btn btn-link info-link p-0 mb-2' onClick={props.onClickDelete}>\n <Text namespace={namespace} phrase='delete' />\n </button>\n }\n </div>\n \n {props.link\n ? <CopyInput value={props.link} />\n : <div className='d-flex w-100 justify-content-between'>\n <div>\n <SvgContainer svgName={cvSvgLibrary.Link} className='me-2 d-inline-block svg-container' />\n <Text namespace={namespace} phrase='generate' />\n </div>\n <button className='btn info-link p-0' onClick={props.onClickCreate}>\n <Text namespace={namespace} phrase='create' />\n </button>\n </div>\n }\n </div>\n );\n}","/**\n * Differe ways we can invite prospects.\n * @readonly\n * @enum {string}\n */\nexport enum InviteType {\n Link = 'link',\n Direct = 'direct'\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { AccessPolicy } from 'libs/shared/interfaces/models/AccessPolicy';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nconst namespace = 'signUp.softGateInviteBanner';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface SoftGateInviteBannerProps {\n accessPolicy: AccessPolicy;\n reverseTrialReferralCount: number;\n}\n\nexport function SoftGateInviteBanner(props: SoftGateInviteBannerProps): JSX.Element {\n const { accessPolicy, reverseTrialReferralCount } = props;\n \n return (\n <div className='px-3'>\n <div role='alert' className='bg-light-indigo rounded p-2 mb-4 text-indigo text-center'>\n <div className='d-flex align-items-center justify-content-center'>\n <SvgContainer svgName={cvSvgLibrary.StarOutline} size={SvgContainerSize.Medium} />\n <div>\n {getPhrase('titlePrefix')}\n \n <AppLink\n appLink={{\n application: AppChannels.SIGN_UP,\n action: Actions.SignUp.PREMIUM_FEATURES\n }}\n className='indigo-link text-indigo text-underline d-inline'\n >\n <strong>{getPhrase('titleEmphasis', { bonusDays: accessPolicy.metadata.referralBonusTime.split('.')[0] })}</strong>\n </AppLink>\n </div>\n </div>\n {accessPolicy.metadata.maxReferrals &&\n <div>\n <small>\n {getPhrase('extensionsRedeemed', { count: reverseTrialReferralCount ?? 0, max: accessPolicy.metadata.maxReferrals })}\n </small>\n </div>\n }\n </div>\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"minHeight\":\"tWSzO\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { EntityType, LocationContext, SignUpDescriptors, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useAccessPolicy } from 'libs/shared/hooks/useAccessPolicy';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { Config, CurrentUser, PopupViewProps } from 'libs/shared/interfaces';\nimport { InviteColleagueXhr } from 'libs/shared/interfaces/responses/ErrorResponse';\nimport { ErrorMessageHelper } from 'libs/shared/utils/error-message-helper/ErrorMessageHelper';\n\nimport { useIsTertiary } from 'apps/onboarding/hooks/useIsTertiary';\nimport { InviteColleagueRequests } from 'apps/sign-up/flight-requests/InviteColleagueRequests';\nimport { InputGroupHelper } from 'apps/sign-up/helpers/InputGroupHelper';\nimport { InviteValidationHelper } from 'apps/sign-up/helpers/InviteValidationHelper';\nimport { Invitation } from 'apps/sign-up/models/Invitation';\nimport { HardGateInviteBanner } from 'apps/sign-up/views/invite-colleague/components/invite/hard-gate-invite-banner/HardGateInviteBanner';\nimport { InviteForm } from 'apps/sign-up/views/invite-colleague/components/invite/invite-form/InviteForm';\nimport { InviteFormInput, InviteFormInputData } from 'apps/sign-up/views/invite-colleague/components/invite/invite-form-input-group/InviteFormInputItem';\nimport { InviteTabs } from 'apps/sign-up/views/invite-colleague/components/invite/invite-tabs/InviteTabs';\nimport { PendingInvites } from 'apps/sign-up/views/invite-colleague/components/invite/pending-invites/PendingInvites';\nimport { ShareInviteLink } from 'apps/sign-up/views/invite-colleague/components/invite/share-invite-link/ShareInviteLink';\nimport { SoftGateInviteBanner } from 'apps/sign-up/views/invite-colleague/components/invite/soft-gate-invite-banner/SoftGateInviteBaner';\nimport { useSplitInvites } from 'apps/sign-up/views/invite-colleague/useSplitInvites';\n\nimport styles from './invite-colleague.scss';\n\nconst namespace = 'signUp.inviteColleage';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst MIN_FIELDS = 1;\nconst MAX_FIELDS = 5;\n\ninterface InviteColleagueViewProps extends PopupViewProps {\n tab: InviteTabs;\n}\n\nexport interface FormSubmitResponse {\n data: InviteFormInput[];\n hasErrors: boolean;\n}\n\nexport function InviteColleagueView(props: InviteColleagueViewProps): JSX.Element {\n const [ tab, setTab ] = React.useState<InviteTabs>(props.tab);\n const [ showShareLinkSpinner, setShowShareLinkSpinner ] = React.useState<boolean>(false);\n const [ formCompleted, setFormCompleted ] = React.useState(false);\n\n const [ showFormSpinner, setShowFormSpinner ] = React.useState(false);\n const [ fields, setFields ] = React.useState<InviteFormInput[]>(() => [InputGroupHelper.getNewEmptyField()]);\n\n const { accessPolicy } = useAccessPolicy();\n const { reverseTrialReferralCount } = useSettings(null);\n\n const fetchAsync = Flight.useGetFetchAsync();\n\n const alerts = useAlerts();\n const isTertiary = useIsTertiary();\n \n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const invites = Flight.useBasicFetch<Invitation[]>(InviteColleagueRequests.inviteByType());\n\n const { directInvites, links } = useSplitInvites(invites.data);\n const link = links?.[0];\n\n async function onClickCreateLink(): Promise<void> {\n setShowShareLinkSpinner(true);\n\n try {\n await fetchAsync(InviteColleagueRequests.createInviteLink());\n } catch {\n alerts.error(getPhrase('error'));\n } finally {\n setShowShareLinkSpinner(false);\n }\n }\n\n async function onClickDeleteLink(): Promise<void> {\n try {\n await fetchAsync(InviteColleagueRequests.deleteInvite(link.id));\n alerts.success(getPhrase('deleteLinkSuccess'));\n } catch (err) {\n alerts.error(ErrorMessageHelper.inviteColleagueError(err));\n }\n }\n\n async function onFormSubmit() {\n if (showFormSpinner) return;\n \n const { fieldsWithErrors, hasErrors } = InviteValidationHelper.validate(fields);\n if (hasErrors) {\n setFields(fieldsWithErrors);\n return;\n }\n \n try {\n setShowFormSpinner(true);\n const validFieldsData: InviteFormInputData[] = InputGroupHelper.getValidFieldsData(fields);\n await fetchAsync(InviteColleagueRequests.invite(validFieldsData));\n setFormCompleted(true);\n logSuccess(validFieldsData.length);\n return;\n } catch (err) {\n const error = err as InviteColleagueXhr;\n\n if (error.responseJSON?.type !== 'create-invitation-failed') {\n alerts.error(ErrorMessageHelper.inviteColleagueError(error));\n return;\n }\n\n const inputsWithErrors = InputGroupHelper.getInputWithErrors(fields, error);\n\n setFields(inputsWithErrors);\n } finally {\n setShowFormSpinner(false);\n }\n }\n\n function logSuccess(emailCount: number) {\n AnalyticsHelper.logUserAction({ emailCount }, {\n actionType: UserAction.SendEmail,\n location: LocationContext.TrialBanner,\n entity: EntityType.User,\n descriptor: SignUpDescriptors.InviteColleague,\n workflowPhase: WorkflowPhase.Complete\n });\n }\n\n function handleInviteMore() {\n setFormCompleted(false);\n setFields([InputGroupHelper.getNewEmptyField()]);\n if (tab !== 'inviteForm') {\n setTab('inviteForm');\n setShowFormSpinner(false);\n }\n }\n\n async function handleRemoveInvite(id: string): Promise<void> {\n try {\n await fetchAsync(InviteColleagueRequests.deleteInvite(id));\n alerts.success(getPhrase('removeSuccess'));\n } catch (err) {\n alerts.error(ErrorMessageHelper.inviteColleagueError(err));\n }\n }\n\n async function handleResendInvite(id: string): Promise<void> {\n try {\n await fetchAsync(InviteColleagueRequests.resendInvite(id));\n alerts.success(getPhrase('resendSuccess'));\n } catch (err) {\n alerts.error(ErrorMessageHelper.inviteColleagueError(err));\n }\n }\n\n const hasLoaded = (currentUser.hasCompleted && config.hasCompleted && invites.hasCompleted);\n\n return (\n <Popup\n title={getPhrase('title')}\n closePopup={props.closePopup}\n bodyClassName='modal-body px-0'\n showLoadingSpinner={!hasLoaded}\n >\n {hasLoaded &&\n <>\n <div className={styles.minHeight}>\n {accessPolicy?.metadata?.referralBonusTime &&\n <SoftGateInviteBanner accessPolicy={accessPolicy} reverseTrialReferralCount={reverseTrialReferralCount} />\n }\n {accessPolicy?.metadata?.referralReactivationPolicy &&\n <HardGateInviteBanner accessPolicy={accessPolicy} reverseTrialReferralCount={reverseTrialReferralCount} />\n }\n \n {!formCompleted &&\n <InviteTabs activeTab={tab} onChangeTab={tab => setTab(tab)} />\n }\n\n {(() => {\n if (tab === 'pendingInvites')\n return (\n <PendingInvites\n imageCdnUrl={config.data.imageCdnUrl}\n invites={directInvites}\n onInviteMore={handleInviteMore}\n removeInvite={handleRemoveInvite}\n resendInvite={handleResendInvite}\n isLoading={!invites.hasCompleted}\n />\n );\n\n return (\n <InviteForm\n fields={fields}\n setFields={setFields}\n showSpinner={showFormSpinner}\n completed={formCompleted}\n onSubmit={onFormSubmit}\n onInviteMore={handleInviteMore}\n maxFields={MAX_FIELDS}\n minFields={MIN_FIELDS}\n isTertiary={isTertiary}\n />\n );\n })()}\n </div>\n {!formCompleted &&\n <div className='px-3'>\n <PopupButtons>\n <ShareInviteLink\n onClickCreate={onClickCreateLink}\n onClickDelete={onClickDeleteLink}\n link={link?.inviteUrl}\n showSpinner={showShareLinkSpinner}\n />\n </PopupButtons>\n </div>\n }\n </>\n }\n </Popup>\n );\n}","import React from 'react';\n\nimport { InviteType } from 'apps/sign-up/enums/InviteType';\nimport { Invitation } from 'apps/sign-up/models/Invitation';\n\nexport function useSplitInvites(invites: Invitation[]) {\n return React.useMemo(() => {\n if (!invites) {\n return { directInvites: null, links: null };\n }\n\n return invites.reduce((prev, curr) => {\n if (curr.type === InviteType.Direct) {\n prev.directInvites.push(curr);\n return prev;\n }\n\n prev.links.push(curr);\n return prev;\n }, {\n directInvites: [] as Invitation[],\n links: [] as Invitation[]\n });\n }, [invites]);\n}","\"use strict\";\n\nvar deselectCurrent = require(\"toggle-selection\");\n\nvar clipboardToIE11Formatting = {\n \"text/plain\": \"Text\",\n \"text/html\": \"Url\",\n \"default\": \"Text\"\n}\n\nvar defaultMessage = \"Copy to clipboard: #{key}, Enter\";\n\nfunction format(message) {\n var copyKey = (/mac os x/i.test(navigator.userAgent) ? \"⌘\" : \"Ctrl\") + \"+C\";\n return message.replace(/#{\\s*key\\s*}/g, copyKey);\n}\n\nfunction copy(text, options) {\n var debug,\n message,\n reselectPrevious,\n range,\n selection,\n mark,\n success = false;\n if (!options) {\n options = {};\n }\n debug = options.debug || false;\n try {\n reselectPrevious = deselectCurrent();\n\n range = document.createRange();\n selection = document.getSelection();\n\n mark = document.createElement(\"span\");\n mark.textContent = text;\n // avoid screen readers from reading out loud the text\n mark.ariaHidden = \"true\"\n // reset user styles for span element\n mark.style.all = \"unset\";\n // prevents scrolling to the end of the page\n mark.style.position = \"fixed\";\n mark.style.top = 0;\n mark.style.clip = \"rect(0, 0, 0, 0)\";\n // used to preserve spaces and line breaks\n mark.style.whiteSpace = \"pre\";\n // do not inherit user-select (it may be `none`)\n mark.style.webkitUserSelect = \"text\";\n mark.style.MozUserSelect = \"text\";\n mark.style.msUserSelect = \"text\";\n mark.style.userSelect = \"text\";\n mark.addEventListener(\"copy\", function(e) {\n e.stopPropagation();\n if (options.format) {\n e.preventDefault();\n if (typeof e.clipboardData === \"undefined\") { // IE 11\n debug && console.warn(\"unable to use e.clipboardData\");\n debug && console.warn(\"trying IE specific stuff\");\n window.clipboardData.clearData();\n var format = clipboardToIE11Formatting[options.format] || clipboardToIE11Formatting[\"default\"]\n window.clipboardData.setData(format, text);\n } else { // all other browsers\n e.clipboardData.clearData();\n e.clipboardData.setData(options.format, text);\n }\n }\n if (options.onCopy) {\n e.preventDefault();\n options.onCopy(e.clipboardData);\n }\n });\n\n document.body.appendChild(mark);\n\n range.selectNodeContents(mark);\n selection.addRange(range);\n\n var successful = document.execCommand(\"copy\");\n if (!successful) {\n throw new Error(\"copy command was unsuccessful\");\n }\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using execCommand: \", err);\n debug && console.warn(\"trying IE specific stuff\");\n try {\n window.clipboardData.setData(options.format || \"text\", text);\n options.onCopy && options.onCopy(window.clipboardData);\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using clipboardData: \", err);\n debug && console.error(\"falling back to prompt\");\n message = format(\"message\" in options ? options.message : defaultMessage);\n window.prompt(message, text);\n }\n } finally {\n if (selection) {\n if (typeof selection.removeRange == \"function\") {\n selection.removeRange(range);\n } else {\n selection.removeAllRanges();\n }\n }\n\n if (mark) {\n document.body.removeChild(mark);\n }\n reselectPrevious();\n }\n\n return success;\n}\n\nmodule.exports = copy;\n","// extracted by mini-css-extract-plugin\nexport default {\"pillTabSelector\":\"Hdi6o\",\"tab\":\"RvNxr\",\"minWidth\":\"GHSz9\",\"radiusSmall\":\"VhJJa\",\"tabLink\":\"WFyvo\"};","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CopyToClipboard = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _copyToClipboard = _interopRequireDefault(require(\"copy-to-clipboard\"));\n\nvar _excluded = [\"text\", \"onCopy\", \"options\", \"children\"];\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar CopyToClipboard = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(CopyToClipboard, _React$PureComponent);\n\n var _super = _createSuper(CopyToClipboard);\n\n function CopyToClipboard() {\n var _this;\n\n _classCallCheck(this, CopyToClipboard);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"onClick\", function (event) {\n var _this$props = _this.props,\n text = _this$props.text,\n onCopy = _this$props.onCopy,\n children = _this$props.children,\n options = _this$props.options;\n\n var elem = _react[\"default\"].Children.only(children);\n\n var result = (0, _copyToClipboard[\"default\"])(text, options);\n\n if (onCopy) {\n onCopy(text, result);\n } // Bypass onClick if it was present\n\n\n if (elem && elem.props && typeof elem.props.onClick === 'function') {\n elem.props.onClick(event);\n }\n });\n\n return _this;\n }\n\n _createClass(CopyToClipboard, [{\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n _text = _this$props2.text,\n _onCopy = _this$props2.onCopy,\n _options = _this$props2.options,\n children = _this$props2.children,\n props = _objectWithoutProperties(_this$props2, _excluded);\n\n var elem = _react[\"default\"].Children.only(children);\n\n return /*#__PURE__*/_react[\"default\"].cloneElement(elem, _objectSpread(_objectSpread({}, props), {}, {\n onClick: this.onClick\n }));\n }\n }]);\n\n return CopyToClipboard;\n}(_react[\"default\"].PureComponent);\n\nexports.CopyToClipboard = CopyToClipboard;\n\n_defineProperty(CopyToClipboard, \"defaultProps\", {\n onCopy: undefined,\n options: undefined\n});","\"use strict\";\n\nvar _require = require('./Component'),\n CopyToClipboard = _require.CopyToClipboard;\n\nCopyToClipboard.CopyToClipboard = CopyToClipboard;\nmodule.exports = CopyToClipboard;","\nmodule.exports = function () {\n var selection = document.getSelection();\n if (!selection.rangeCount) {\n return function () {};\n }\n var active = document.activeElement;\n\n var ranges = [];\n for (var i = 0; i < selection.rangeCount; i++) {\n ranges.push(selection.getRangeAt(i));\n }\n\n switch (active.tagName.toUpperCase()) { // .toUpperCase handles XHTML\n case 'INPUT':\n case 'TEXTAREA':\n active.blur();\n break;\n\n default:\n active = null;\n break;\n }\n\n selection.removeAllRanges();\n return function () {\n selection.type === 'Caret' &&\n selection.removeAllRanges();\n\n if (!selection.rangeCount) {\n ranges.forEach(function(range) {\n selection.addRange(range);\n });\n }\n\n active &&\n active.focus();\n };\n};\n"],"names":["CloseIcon","viewBox","d","ClearableInput","props","ref","onClickClear","showClearButton","clearClassName","inputProps","className","value","role","onClick","onKeyDown","e","key","tabIndex","getPhrase","LanguageService","CopyInput","showCopiedText","localShowCopiedText","setLocalShowCopiedText","revertLocalShowCopiedText","setTimeout","onCopy","input","styling","textarea","hasInputBg","spellCheck","rows","readOnly","type","autoComplete","CopyToClipboard","text","IconButton","svgName","extraButtonClassNames","copiedText","copyText","label","Form","defaultProps","TabContents","tab","name","count","data","PillTabSelector","containerRef","borderRadius","listClassName","tabs","map","index","active","appLink","analyticsData","analyticsOptions","onSelect","onSelectTab","InviteColleagueRequests","invite","url","normalize","HttpVerbs","invalidationKeys","inviteByType","deleteInvite","id","resendInvite","createInviteLink","ErrorPhraseMap","InputGroupHelper","recalculateFields","inputFields","minFields","maxFields","cleanFields","this","length","removeField","lastInviteData","enteredDataOnLastField","firstName","email","shouldAddField","addField","getValidFieldsData","fields","reduce","previous","current","getInputWithErrors","error","inputsWithErrors","problems","responseJSON","forEach","find","item","errorCode","filter","_","idx","getNewEmptyField","emailRegex","RegExp","firstNameRegex","InviteValidationHelper","validate","fieldsWithErrors","hasErrors","currentItemError","validateFirstName","validateEmail","test","HardGateInviteBanner","accessPolicy","reverseTrialReferralCount","metadata","maxReferrals","max","InviteFormInputItem","onChange","field","newData","placeholder","event","preventDefault","target","clearInputs","dangerouslySetInnerHTML","__html","InviteFormInputGroup","setFields","isTertiary","fieldCount","f","EmptyState","src","ImageUrls","Text","namespace","phrase","onChangeFieldData","SpinnerButton","showSpinner","variant","onSubmit","options","smartCount","InviteFormSuccess","onInviteMore","InviteForm","completed","InviteTabs","onChangeTab","activeTab","actionType","entity","location","EmptyPendingInvites","PartialPendingInvitesItem","PartialPendingInvites","Array","fill","InviteStatus","PendingInvitesHelper","getItemActions","status","removeInvite","Accepted","InviteStatusInfo","InviteStatusInfoFrame","extraContainerClass","renderSvg","SvgContainer","size","S","Active","extraTextClass","Expired","mergeClassNames","baseClass","extraClass","containerClass","textClass","InviteAvatar","initial","Avatar","imageCdnUrl","initials","PendingInvitesItem","invitee","actions","substr","userId","title","ActionsDropdown","dropdownToggleClassName","PendingInvites","isLoading","invites","ShareInviteLink","Spinner","as","animation","link","onClickDelete","onClickCreate","InviteType","SoftGateInviteBanner","AppLink","application","action","bonusDays","referralBonusTime","split","MIN_FIELDS","MAX_FIELDS","InviteColleagueView","setTab","showShareLinkSpinner","setShowShareLinkSpinner","formCompleted","setFormCompleted","showFormSpinner","setShowFormSpinner","useAccessPolicy","useSettings","fetchAsync","alerts","useIsTertiary","currentUser","UserRequests","config","ConfigRequests","prev","curr","Direct","directInvites","push","links","useSplitInvites","logSuccess","emailCount","AnalyticsHelper","descriptor","workflowPhase","handleInviteMore","hasLoaded","hasCompleted","Popup","closePopup","bodyClassName","showLoadingSpinner","referralReactivationPolicy","success","ErrorMessageHelper","validFieldsData","PopupButtons","inviteUrl","deselectCurrent","clipboardToIE11Formatting","module","exports","debug","message","reselectPrevious","range","selection","mark","document","createRange","getSelection","createElement","textContent","ariaHidden","style","all","position","top","clip","whiteSpace","webkitUserSelect","MozUserSelect","msUserSelect","userSelect","addEventListener","stopPropagation","format","clipboardData","console","warn","window","clearData","setData","body","appendChild","selectNodeContents","addRange","execCommand","Error","err","copyKey","navigator","userAgent","replace","prompt","removeRange","removeAllRanges","removeChild","_typeof","obj","Symbol","iterator","constructor","prototype","Object","defineProperty","_react","_interopRequireDefault","_copyToClipboard","_excluded","__esModule","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","enumerable","apply","_objectSpread","i","arguments","source","_defineProperty","getOwnPropertyDescriptors","defineProperties","_defineProperties","configurable","writable","_setPrototypeOf","o","p","setPrototypeOf","__proto__","_assertThisInitialized","self","ReferenceError","_getPrototypeOf","getPrototypeOf","_React$PureComponent","subClass","superClass","TypeError","create","_inherits","Constructor","protoProps","Derived","hasNativeReflectConstruct","_super","Reflect","construct","sham","Proxy","Boolean","valueOf","call","_isNativeReflectConstruct","result","Super","NewTarget","_possibleConstructorReturn","_this","instance","_classCallCheck","_len","args","_key","concat","_this$props","children","elem","Children","only","_this$props2","excluded","sourceKeys","indexOf","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","_objectWithoutProperties","cloneElement","PureComponent","undefined","rangeCount","activeElement","ranges","getRangeAt","tagName","toUpperCase","blur","focus"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[8944],{66257:(e,t,n)=>{n.d(t,{k:()=>p});var a=n(32735),r=n(80130),l=n(59087),o=n(23481),s=n(31453),c=n(35223),i=n(91693);const m={normal:"Q1UGv",copyBtn:"J3fBx",embedHtmlInput:"RcwAD"};function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var d=o.T.encloseNamespace("shared.copyInput");function p(e){var t,n,o=(t=a.useState(e.showCopiedText||!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 a,r,l,o,s=[],c=!0,i=!1;try{if(l=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=l.call(n)).done)&&(s.push(a.value),s.length!==t);c=!0);}catch(e){i=!0,r=e}finally{try{if(!c&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(i)throw r}}return s}}(t,n)||function(e,t){if(e){if("string"==typeof e)return u(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?u(e,t):void 0}}(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.")}()),p=o[0],f=o[1];function v(){setTimeout(function(){return f(!1)},2e3)}function g(){e.onCopy&&e.onCopy(),p||(f(!0),v())}a.useEffect(function(){e.showCopiedText&&v()},[e.showCopiedText]);var y=a.createElement("div",{className:"normal-v2"===e.styling?"d-flex flex-row gap-2 position-relative w-100":"input-group"},e.textarea?a.createElement("textarea",{className:(0,s.A)("form-control rounded w-100 h-100",!e.hasInputBg&&m.embedHtmlInput),spellCheck:!1,value:e.value,rows:7,readOnly:!0}):a.createElement("input",{type:"text",autoComplete:"off",className:(0,s.A)("form-control","normal"===e.styling&&e.styling),spellCheck:!1,value:e.value,readOnly:!0}),a.createElement(function(){return"normal-v2"===e.styling?a.createElement(l.CopyToClipboard,{text:e.value,onCopy:g},a.createElement(i.h,{role:p?"status":"",svgName:p?c.vn.Check:c.vn.Copy,className:(0,s.A)(m.copyBtn,"btn py-0 text-nowrap",p?"btn-success text-white":"btn-outline-dark border-secondary",e.extraButtonClassNames)},p?e.copiedText||d("copiedLink"):e.copyText||d("copy"))):a.createElement(l.CopyToClipboard,{text:e.value,onCopy:g},a.createElement("button",{role:p?"status":"",className:(0,s.A)("btn btn-outline-dark border border-secondary py-0 text-nowrap",e.extraButtonClassNames)},p?e.copiedText||d("copied"):e.copyText||d("copy")))},null));return e.label?a.createElement(r.Z.Group,{className:"form-group"},a.createElement(r.Z.Label,null,e.label),y):y}p.defaultProps={styling:"normal"}},64197:(e,t,n)=>{n.d(t,{i:()=>i});var a=n(32735),r=n(23481),l=n(31453);const o={divider:"rpkqv"};var s=r.T.encloseNamespace("shared.divider");function c(e){var t=e.text||s("or");return{"--divider-content":"'".concat(t,"'"),"--divider-text-transform":e.noUpperCase?"none":"uppercase"}}function i(e){return a.createElement("div",{className:(0,l.A)("my-2 w-100 border-bottom position-relative",o.divider,e.className),style:c(e)})}},41661:(e,t,n)=>{var a;n.d(t,{D:()=>a}),function(e){e.GoogleClassroom="google-classroom",e.MicrosoftTeams="microsoft-teams",e.Vivi="vivi",e.AppleTv="apply-tv"}(a||(a={}))},40841:(e,t,n)=>{n.d(t,{_:()=>s});var a=n(23481),r=n(41661),l=n(65728),o=a.T.encloseNamespace("shared.shared-utils"),s={getShareIntegrations:function(e,t){return[{id:r.D.GoogleClassroom,name:o("googleClassroom"),enabled:e,settingName:l.E.ShareToGoogleClassroom},{id:r.D.MicrosoftTeams,name:o("msftTeams"),enabled:t,settingName:l.E.ShareToMicrosoftTeams}]}}},9342:(e,t,n)=>{n.r(t),n.d(t,{GenerateJoinLinkView:()=>F});var a=n(32735),r=n(98269),l=n(70680),o=n(23481),s=n(97395),c=n(81886),i=n(20354),m=n(16862),u=n(66257),d=n(64197),p=n(83345),f=n(16714),v=n(39151),g=n(31949),y=n(3010),h=n(22902),E=n(79612),b=n(37802),N=n(40841),x=n(84891),C=n(99742),S=n(14070),w=n(97291),T=n(88630),A=n(97958),k="classrooms.joinLinkEmptyState";function I(){return a.createElement(p.D.Provider,{value:k},a.createElement(A.u,null,a.createElement(A.u.Image,{src:C.W.EmptyStates.Classrooms.NO_STUDENTS_IN_CLASSROOM,size:"small"}),a.createElement(A.u.Heading,null,a.createElement(p.x,{phrase:"heading"}))))}var O=n(97408),L=n(64818);const B={avatarContainer:"NSuhj"};function U(e){var t;return a.createElement("div",{className:"col-3 mb-3"},a.createElement("div",{className:"border border-secondary rounded-3 d-flex p-2 align-items-center"},a.createElement("div",{className:"".concat(B.avatarContainer," flex-shrink-0")},a.createElement(O.q,{imageUrl:null===(t=e.user.avatar)||void 0===t?void 0:t.url,imageCdnUrl:e.imageCdnUrl,initials:L.l.getInitials(e.user.name,e.user.surname)})),a.createElement("div",{className:"text-truncate ms-2"},e.user.name," ",e.user.surname)))}var _="classrooms.generateJoinLink",j=o.T.encloseNamespace(_),M=15e3;function F(e){var t,n=(0,l.I0)(),o=i.a.useGetFetchAsync(),A=(0,(0,h.T)().hasPermissions)(f.C.ManageIntegrations),k=i.a.useBasicFetch(T.F.generateJoinLink(e.classroomId)),O=i.a.useBasicFetch(g.N.currentUser()),L=i.a.useBasicFetch(O.data&&T.F.getClassroom(e.classroomId,O.data.id));function B(t){return T.F.getClassroomStudents(e.classroomId,t)}(0,E.M)({title:L.data?j("pageTitle",{classroomName:null===(t=L.data)||void 0===t?void 0:t.name}):null});var F,D,G,R=(0,y.i)(B,function(e){o(B(e))}),z=i.a.useBasicFetch(v.L.config()),P=(0,b.r)(null),J=P.shareToGoogleClassroom,W=P.shareToMicrosoftTeams,H=P.isLoadingSettings,Z="list"===e.source;return a.useEffect(function(){var e=window.setInterval(function(){i.a.fetch(n,B())},M);return function(){return window.clearInterval(e)}},[]),k.data&&R.items&&z.data&&!H?a.createElement(p.D.Provider,{value:_},a.createElement("div",{className:"d-flex px-3 "},a.createElement("h1",{className:"h3 mb-3 flex-fill"},a.createElement(p.x,{phrase:"title"})),a.createElement("div",{className:"flex-fill text-end"},a.createElement(r.Z,{variant:"dark",onClick:function(){Z?c.Q.C$.trigger({application:w.O.CLASSROOMS,action:S.e.Classrooms.HOME}):c.Q.C$.trigger({application:w.O.CLASSROOMS,action:S.e.Classrooms.CLASSROOM_STUDENTS,args:[e.classroomId]})}},j(Z?"backToList":"backToClassroom")))),a.createElement("div",{className:"px-3"},a.createElement("div",{className:"row mt-1"},a.createElement("div",{className:"col-md-6 col-12"},a.createElement(x.t,{spacing:"sm",bottomSpacing:"lg"},a.createElement(x.t.Step,{number:1},j("goToUrl"),a.createElement("span",{className:"text-primary"},(G=new URL(z.data.liteUrl).hostname,s._.safeUrlConcat(G,"/join")))),a.createElement(x.t.Step,{number:2},j("enterCode"),a.createElement(x.t.Code,{size:"lg",code:k.data.code,className:"mt-2"}))),a.createElement(d.i,{className:"mb-4 fs-6"}),a.createElement(x.t,null,a.createElement(x.t.Step,{number:1},j("copyLinkAndShare"),a.createElement("div",{className:"d-flex flex-column gap-2 mt-2"},a.createElement(u.k,{value:k.data.link}),a.createElement(m.T,{integrations:(F=J,D=W,N._.getShareIntegrations(F,D).filter(function(e){return e.enabled}).map(function(e){return e.id})),url:k.data.link,appLink:A?{application:w.O.SETTINGS,action:S.e.Settings.INTEGRATIONS}:{application:w.O.DEFAULT,action:S.e.Default.INTEGRATIONS_INFO}}))))),a.createElement("div",{className:"col-md-6 col-12 text-center"},a.createElement("img",{src:C.W.AddStudents.JOIN_LINK,className:"rounded-3 w-75 box-shadow img-fluid my-3"}))),a.createElement("hr",null),a.createElement("div",null,j("studentsWillAppear"),!R.items.length&&a.createElement(I,null),a.createElement("div",{className:"row mt-3"},R.items.map(function(e){return a.createElement(U,{user:e,key:e.id,imageCdnUrl:z.data.imageCdnUrl})}))))):a.createElement(a.Fragment,null)}},84891:(e,t,n)=>{n.d(t,{t:()=>g});var a=n(32735),r=n(59087),l=n.n(r),o=n(31453),s=n(83914),c=n(83345),i=n(35223);const m={orderedListWithBackground:"ezbBL",number:"hs0Fv",code:"h0c9p",large:"_leUV",success:"f_XNL"};function u(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,l,o,s=[],c=!0,i=!1;try{if(l=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=l.call(n)).done)&&(s.push(a.value),s.length!==t);c=!0);}catch(e){i=!0,r=e}finally{try{if(!c&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(i)throw r}}return s}}(e,t)||function(e,t){if(e){if("string"==typeof e)return d(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)?d(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 d(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function p(e){var t;return a.createElement("div",{className:(0,o.A)(m.success,"col-12 position-absolute w-100 h-100 start-0 top-0","d-inline-flex align-items-center text-white justify-content-center text-truncate bg-success fs-3",e.show?"opacity-1":"opacity-0")},null!==(t=e.text)&&void 0!==t?t:a.createElement(c.x,{namespace:"shared.instructions",phrase:"copied"}))}var f={none:"mb-0",md:"mb-3",sm:"mb-2",lg:"mb-4"},v={none:"",sm:"gap-2",md:"gap-3",lg:"gap-4"};function g(e){return a.createElement("ol",{className:(0,o.A)("d-flex flex-column",f[e.bottomSpacing||"md"],v[e.spacing||"md"],m.orderedListWithBackground,e.className)},e.children)}g.Step=function(e){return a.createElement("li",{className:"d-flex align-items-center"},a.createElement("div",{className:"align-self-start"},a.createElement("span",{className:"".concat(m.number)},e.number)),a.createElement("div",{className:"w-100"},e.children))},g.Code=function(e){var t=u(a.useState(!1),2),n=t[0],r=t[1];return a.createElement(l(),{onCopy:function(){r(!0),setTimeout(function(){return r(!1)},2e3)},text:e.code},a.createElement("div",{className:(0,o.A)("position-relative bg-white border rounded-3 text-center overflow-hidden fw-semibold cursor-pointer ".concat(m.code),"lg"===e.size&&"py-3 ".concat(m.large),"md"===e.size&&"py-2",e.className)},e.code,a.createElement(s.x,{svgName:i.vn.Copy,size:s.S.Large,className:"ms-2 svg-container d-inline-block lg align-middle"}),a.createElement(p,{show:n})))},g.Textbox=function(e){var t=e.size,n=void 0===t?"sm":t,r=u(a.useState(!1),2),c=r[0],m=r[1];function d(){e.showCopyButton&&(m(!0),"function"==typeof e.onCopy&&e.onCopy(),setTimeout(function(){return m(!1)},2e3))}var f=e.showCopyButton?"text-left cursor-pointer":"text-center",v="left"===e.align?"col-1":"";return"center"===e.align&&(f=""),a.createElement(l(),{onCopy:d,text:e.value},a.createElement("div",null,e.label&&a.createElement("h3",{className:"mb-3 text-center"},e.label),a.createElement("div",{className:(0,o.A)("bg-white border rounded-3 overflow-hidden px-4 py-3 text-truncate mb-0","position-relative align-items-center gx-2 gy-0","sm"===n?"h5":"h1","left"===e.align?"row":"d-flex justify-content-center gap-3",e.showCopyButton?"text-left cursor-pointer":"text-center",e.className)},a.createElement("div",{className:(0,o.A)(f,"text-truncate")},e.value),e.showCopyButton&&a.createElement("div",{className:(0,o.A)(v)},a.createElement(s.x,{svgName:i.vn.Copy,size:s.S.Standard,className:"svg-container d-inline-block std",onClick:d})),e.showCopyButton&&a.createElement(p,{show:c}))))}},13524:(e,t,n)=>{n.d(t,{Z:()=>a});const a={hoverable:"bLxv5",msTeamsContainer:"mPAD2",avatar:"qmP52",small:"ul1RN"}}}]);
|
|
2
|
-
//# sourceMappingURL=8944-b56c3e61fc-lite.chunk.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scripts/8944-b56c3e61fc-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/components/copy-input/copy-input.scss","file:///app/packages/libs/shared/src/components/copy-input/CopyInput.tsx","file:///app/packages/libs/shared/src/components/divider/divider.scss","file:///app/packages/libs/shared/src/components/divider/Divider.tsx","file:///app/packages/libs/shared/src/enums/IntegrationId.ts","file:///app/packages/libs/shared/src/utils/IntegrationHelper.ts","file:///app/packages/projects/lite/src/apps/classrooms/views/generate-join-link/empty-state/JoinLinkEmptyState.tsx","file:///app/packages/projects/lite/src/apps/classrooms/views/generate-join-link/student-pill/student-pill.scss","file:///app/packages/projects/lite/src/apps/classrooms/views/generate-join-link/student-pill/StudentPill.tsx","file:///app/packages/projects/lite/src/apps/classrooms/views/generate-join-link/GenerateJoinLinkView.tsx","file:///app/packages/projects/lite/src/shared/components/instructions/instructions.scss","file:///app/packages/projects/lite/src/shared/components/instructions/Instructions.tsx","file:///app/packages/libs/shared/src/apps/share/views/share/components/share-integrations/share-integrations.scss"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport default {\"normal\":\"Q1UGv\",\"copyBtn\":\"J3fBx\",\"embedHtmlInput\":\"RcwAD\"};","import * as React from 'react';\nimport { Form } from 'react-bootstrap';\nimport { CopyToClipboard } from 'react-copy-to-clipboard';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { classNames } from 'libs/common/react/utils/ClassNameHelper';\n\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { IconButton } from '../icon-button/IconButton';\n\nimport styles from './copy-input.scss';\n\nconst namespace = 'shared.copyInput';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface CopyInputProps {\n value: string;\n label?: string;\n // Greyed means the input will be greyed out. Normal means it will appear like a normal input\n styling?: 'greyed' | 'normal' | 'normal-v2';\n onCopy?: () => void;\n copyText?: string;\n copiedText?: string;\n showCopiedText?: boolean;\n extraButtonClassNames?: string;\n textarea?: boolean;\n hasInputBg?: boolean;\n}\n\nCopyInput.defaultProps = {\n styling: 'normal'\n};\n\nexport function CopyInput(props: CopyInputProps): JSX.Element {\n const [ localShowCopiedText, setLocalShowCopiedText ] = React.useState(props.showCopiedText || false);\n\n function revertLocalShowCopiedText() {\n setTimeout(() => setLocalShowCopiedText(false), 2000);\n }\n\n function onCopy(): void {\n if (props.onCopy)\n props.onCopy();\n\n if (localShowCopiedText)\n return;\n\n setLocalShowCopiedText(true);\n revertLocalShowCopiedText();\n }\n\n React.useEffect(() => {\n if (!props.showCopiedText)\n return;\n \n revertLocalShowCopiedText();\n }, [props.showCopiedText]);\n\n function Button() {\n if (props.styling === 'normal-v2') {\n return (\n <CopyToClipboard text={props.value} onCopy={onCopy}>\n <IconButton\n role={localShowCopiedText ? 'status' : ''}\n svgName={localShowCopiedText ? cvSvgLibrary.Check : cvSvgLibrary.Copy}\n className={classNames(\n styles.copyBtn,\n 'btn py-0 text-nowrap',\n localShowCopiedText ? 'btn-success text-white' : 'btn-outline-dark border-secondary',\n props.extraButtonClassNames\n )}\n >\n {localShowCopiedText ?\n props.copiedText || getPhrase('copiedLink') :\n props.copyText || getPhrase('copy')\n }\n </IconButton>\n </CopyToClipboard>\n );\n }\n\n return (\n <CopyToClipboard text={props.value} onCopy={onCopy}>\n <button\n role={localShowCopiedText ? 'status' : ''}\n className={classNames(\n 'btn btn-outline-dark border border-secondary py-0 text-nowrap',\n props.extraButtonClassNames\n )}\n >\n {localShowCopiedText ?\n props.copiedText || getPhrase('copied') :\n props.copyText || getPhrase('copy')\n }\n </button>\n </CopyToClipboard>\n );\n }\n\n const input = (\n <div className={props.styling === 'normal-v2' ? 'd-flex flex-row gap-2 position-relative w-100' : 'input-group'}>\n {props.textarea\n ? <textarea\n className={classNames('form-control rounded w-100 h-100', !props.hasInputBg && styles.embedHtmlInput)}\n spellCheck={false}\n value={props.value}\n rows={7}\n readOnly\n />\n : <input\n type='text'\n autoComplete='off'\n className={classNames(\n 'form-control',\n props.styling === 'normal' && props.styling\n )}\n spellCheck={false}\n value={props.value}\n readOnly\n />\n }\n \n <Button />\n </div>\n );\n\n if (props.label) {\n return (\n <Form.Group className='form-group'>\n <Form.Label>{props.label}</Form.Label>\n {input}\n </Form.Group>\n );\n }\n\n return input;\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"divider\":\"rpkqv\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { classNames } from 'libs/common/react/utils/ClassNameHelper';\n\nimport styles from './divider.scss';\n\nconst namespace = 'shared.divider';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface DividerProps {\n text?: string;\n noUpperCase?: boolean;\n className?: string;\n}\n\ninterface DividerCSSProperties extends React.CSSProperties {\n '--divider-content'?: string;\n '--divider-text-transform'?: React.CSSProperties['textTransform'];\n}\n\nfunction buildStyle(props: DividerProps) {\n const content = props.text || getPhrase('or');\n \n const style: DividerCSSProperties = {\n '--divider-content': `'${content}'`,\n '--divider-text-transform': props.noUpperCase ? 'none' : 'uppercase'\n };\n\n return style;\n}\n\nexport function Divider(props: DividerProps): JSX.Element {\n return <div className={classNames('my-2 w-100 border-bottom position-relative', styles.divider, props.className)} style={buildStyle(props)}></div>;\n}","export enum IntegrationId {\n GoogleClassroom = 'google-classroom',\n MicrosoftTeams = 'microsoft-teams',\n Vivi = 'vivi',\n AppleTv = 'apply-tv'\n}","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { IntegrationId } from 'libs/shared/enums/IntegrationId';\nimport { SettingName } from 'libs/shared/enums/SettingName';\nimport { Integration } from 'libs/shared/interfaces';\n\nconst namespace = 'shared.shared-utils';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport const IntegrationHelper = {\n getShareIntegrations(googleClassroomSetting: boolean, msftTeamsSetting: boolean): Integration[] {\n return [\n {\n id: IntegrationId.GoogleClassroom,\n name: getPhrase('googleClassroom'),\n enabled: googleClassroomSetting,\n settingName: SettingName.ShareToGoogleClassroom\n },\n {\n id: IntegrationId.MicrosoftTeams,\n name: getPhrase('msftTeams'),\n enabled: msftTeamsSetting,\n settingName: SettingName.ShareToMicrosoftTeams\n }\n ];\n }\n};\n","import React from 'react';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nconst namespace = 'classrooms.joinLinkEmptyState';\n\nexport function JoinLinkEmptyState(): JSX.Element {\n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n <EmptyState>\n <EmptyState.Image src={ImageUrls.EmptyStates.Classrooms.NO_STUDENTS_IN_CLASSROOM} size='small'/>\n <EmptyState.Heading><Text phrase='heading' /></EmptyState.Heading>\n </EmptyState>\n </LanguageNamespaceContext.Provider>\n );\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"avatarContainer\":\"NSuhj\"};","import React from 'react';\n\nimport { Avatar } from 'libs/shared/components/avatar/Avatar';\nimport { User } from 'libs/shared/interfaces';\nimport { UserHelper } from 'libs/shared/utils/UserHelper';\n\nimport styles from './student-pill.scss';\n\ninterface StudentPillProps {\n user: User;\n imageCdnUrl: string;\n}\n\nexport function StudentPill(props: StudentPillProps): React.ReactElement {\n return (\n <div className='col-3 mb-3'>\n <div className='border border-secondary rounded-3 d-flex p-2 align-items-center'>\n <div className={`${styles.avatarContainer} flex-shrink-0`}>\n <Avatar\n imageUrl={props.user.avatar?.url}\n imageCdnUrl={props.imageCdnUrl}\n initials={UserHelper.getInitials(props.user.name, props.user.surname)}\n />\n </div>\n <div className='text-truncate ms-2'>{props.user.name} {props.user.surname}</div>\n </div>\n </div>\n );\n}","import React from 'react';\nimport { Button } from 'react-bootstrap';\nimport { useDispatch } from 'react-redux';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/flight';\n\nimport { ShareIntegrations } from 'libs/shared/apps/share/views/share/components/share-integrations/ShareIntegrations';\nimport { CopyInput } from 'libs/shared/components/copy-input/CopyInput';\nimport { Divider } from 'libs/shared/components/divider/Divider';\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\nimport { IntegrationId } from 'libs/shared/enums/IntegrationId';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useFetchAll } from 'libs/shared/hooks/UseFetchAll';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { Classroom, Config, CurrentUser, User } from 'libs/shared/interfaces';\nimport { IntegrationHelper } from 'libs/shared/utils/IntegrationHelper';\n\nimport { Instructions } from 'shared/components/instructions/Instructions';\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { ClassroomRequests } from 'apps/classrooms/flight-requests/ClassroomRequests';\nimport { GenerateClassroomLinkResponse } from 'apps/classrooms/interfaces/GenerateClassroomLinkResponse';\nimport { JoinLinkEmptyState } from 'apps/classrooms/views/generate-join-link/empty-state/JoinLinkEmptyState';\nimport { StudentPill } from 'apps/classrooms/views/generate-join-link/student-pill/StudentPill';\n\nconst namespace = 'classrooms.generateJoinLink';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst POLLING_INTERVAL = 15000; // 15s\n\nexport interface GenerateJoinLinkViewQueryParams {\n source?: 'list';\n}\n\ninterface GenerateJoinLinkViewProps extends GenerateJoinLinkViewQueryParams{\n classroomId: string;\n}\n\nexport function GenerateJoinLinkView(props: GenerateJoinLinkViewProps): React.ReactElement {\n const dispatch = useDispatch();\n const fetchAsync = Flight.useGetFetchAsync();\n\n const { hasPermissions } = usePermissions();\n const hasManageIntegrationsPermission = hasPermissions(PermissionName.ManageIntegrations);\n\n const joinLink = Flight.useBasicFetch<GenerateClassroomLinkResponse>(\n ClassroomRequests.generateJoinLink(props.classroomId)\n );\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const classroom = Flight.useBasicFetch<Classroom>(currentUser.data &&\n ClassroomRequests.getClassroom(props.classroomId, currentUser.data.id));\n\n useSetPageMetadata({\n title: classroom.data ? getPhrase('pageTitle', { classroomName: classroom.data?.name }) : null\n });\n\n function getRequest(cursor?: string): Flight.Request {\n return ClassroomRequests.getClassroomStudents(props.classroomId, cursor);\n }\n\n function fetchNext(cursor?: string): void {\n fetchAsync(getRequest(cursor));\n }\n\n const students = useFetchAll<User>(getRequest, fetchNext);\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n const { shareToGoogleClassroom, shareToMicrosoftTeams, isLoadingSettings } = useSettings(null);\n\n const isFromList = props.source === 'list';\n\n function backToClassroom(): void {\n if (isFromList) {\n Core.AppLinkHelper.trigger({\n application: AppChannels.CLASSROOMS,\n action: Actions.Classrooms.HOME\n });\n return;\n }\n\n Core.AppLinkHelper.trigger({\n application: AppChannels.CLASSROOMS,\n // TODO: Change to classroom overview\n action: Actions.Classrooms.CLASSROOM_STUDENTS,\n args: [props.classroomId]\n });\n }\n \n function getEnabledIntegrations(googleClassroomSetting: boolean, msftTeamsSetting: boolean): IntegrationId[] {\n const integrations = IntegrationHelper.getShareIntegrations(googleClassroomSetting, msftTeamsSetting);\n return integrations.filter(i => i.enabled).map(i => i.id);\n }\n\n React.useEffect(() => {\n const interval = window.setInterval(() => {\n Flight.fetch(dispatch, getRequest());\n }, POLLING_INTERVAL);\n \n return () => window.clearInterval(interval);\n }, []);\n\n function getJoinUrl(): string {\n const url = new URL(config.data.liteUrl).hostname;\n\n return UrlHelper.safeUrlConcat(url, '/join');\n }\n\n if (!joinLink.data || !students.items || !config.data || isLoadingSettings)\n return <></>;\n\n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n <div className='d-flex px-3 '>\n <h1 className='h3 mb-3 flex-fill'><Text phrase='title' /></h1>\n <div className='flex-fill text-end'>\n <Button variant='dark' onClick={backToClassroom}>\n {getPhrase(isFromList ? 'backToList' : 'backToClassroom')}\n </Button>\n </div>\n </div>\n <div className='px-3'>\n <div className='row mt-1'>\n <div className='col-md-6 col-12'>\n <Instructions spacing='sm' bottomSpacing='lg'>\n <Instructions.Step number={1}>\n {getPhrase('goToUrl')}\n <span className='text-primary'>{getJoinUrl()}</span>\n </Instructions.Step>\n <Instructions.Step number={2}>\n {getPhrase('enterCode')}\n <Instructions.Code size='lg' code={joinLink.data.code} className='mt-2' />\n </Instructions.Step>\n </Instructions>\n <Divider className='mb-4 fs-6' />\n <Instructions>\n <Instructions.Step number={1}>\n {getPhrase('copyLinkAndShare')}\n <div className='d-flex flex-column gap-2 mt-2'>\n <CopyInput value={joinLink.data.link} />\n <ShareIntegrations\n integrations={getEnabledIntegrations(shareToGoogleClassroom, shareToMicrosoftTeams)}\n url={joinLink.data.link}\n appLink={hasManageIntegrationsPermission ? {\n application: AppChannels.SETTINGS,\n action: Actions.Settings.INTEGRATIONS\n } : {\n application: AppChannels.DEFAULT,\n action: Actions.Default.INTEGRATIONS_INFO\n }}\n />\n </div>\n </Instructions.Step>\n </Instructions>\n </div>\n <div className='col-md-6 col-12 text-center'>\n <img src={ImageUrls.AddStudents.JOIN_LINK} className='rounded-3 w-75 box-shadow img-fluid my-3' />\n </div>\n </div>\n <hr />\n <div>\n {getPhrase('studentsWillAppear')}\n {!students.items.length && <JoinLinkEmptyState />}\n <div className='row mt-3'>\n {students.items.map(s => <StudentPill user={s} key={s.id} imageCdnUrl={config.data.imageCdnUrl} />)}\n </div>\n </div>\n </div>\n </LanguageNamespaceContext.Provider>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"orderedListWithBackground\":\"ezbBL\",\"number\":\"hs0Fv\",\"code\":\"h0c9p\",\"large\":\"_leUV\",\"success\":\"f_XNL\"};","import React from 'react';\nimport CopyToClipboard from 'react-copy-to-clipboard';\n\nimport { classNames } from 'libs/common/react/utils/ClassNameHelper';\n\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './instructions.scss';\n\nconst COPY_TIMEOUT = 2000;\n\nconst namespace = 'shared.instructions';\n\ninterface BoxOverlayProps {\n show: boolean;\n text?: string;\n}\n\nfunction BoxOverlay(props: BoxOverlayProps): JSX.Element {\n return (\n <div className={classNames(\n styles.success,\n 'col-12 position-absolute w-100 h-100 start-0 top-0',\n 'd-inline-flex align-items-center text-white justify-content-center text-truncate bg-success fs-3',\n props.show ? 'opacity-1' : 'opacity-0'\n )}>\n {props.text ?? <Text namespace={namespace} phrase='copied' />}\n </div>\n );\n}\n\ninterface StepProps {\n number: number | string;\n}\n\nfunction Step(props: React.PropsWithChildren<StepProps>): JSX.Element {\n return (\n <li className='d-flex align-items-center'>\n <div className='align-self-start'>\n <span className={`${styles.number}`}>{props.number}</span>\n </div>\n <div className='w-100'>\n {props.children}\n </div>\n </li>\n );\n}\n\ninterface CodeProps {\n code: string;\n className?: string;\n size: 'md' | 'lg';\n}\n\nfunction Code(props: CodeProps): JSX.Element {\n const [ copied, setCopied ] = React.useState(false);\n\n function onCopy(): void {\n setCopied(true);\n\n setTimeout(() => setCopied(false), COPY_TIMEOUT);\n }\n\n return (\n <CopyToClipboard onCopy={onCopy} text={props.code}>\n <div className={classNames(\n `position-relative bg-white border rounded-3 text-center overflow-hidden fw-semibold cursor-pointer ${styles.code}`,\n props.size === 'lg' && `py-3 ${styles.large}`,\n props.size === 'md' && 'py-2',\n props.className\n )}>\n {props.code}\n <SvgContainer\n svgName={cvSvgLibrary.Copy}\n size={SvgContainerSize.Large}\n className='ms-2 svg-container d-inline-block lg align-middle'\n />\n <BoxOverlay show={copied} />\n </div>\n </CopyToClipboard>\n );\n}\n\ninterface TextboxProps {\n value: string;\n label?: string;\n className?: string;\n showCopyButton?: boolean;\n copiedText?: string;\n onCopy?: () => void;\n align?: 'left' | 'center';\n size?: 'sm' | 'lg'\n}\n\nfunction Textbox(props: TextboxProps): JSX.Element {\n const { size = 'sm' } = props;\n\n const [ copied, setCopied ] = React.useState<boolean>(false);\n \n function onCopy(): void {\n if (!props.showCopyButton)\n return;\n\n setCopied(true);\n\n typeof props.onCopy === 'function' && props.onCopy();\n\n setTimeout(() => setCopied(false), COPY_TIMEOUT);\n }\n \n let textClassName = props.showCopyButton ? 'text-left cursor-pointer' : 'text-center';\n const buttonClassName = props.align === 'left' ? 'col-1' : '';\n if (props.align === 'center') {\n textClassName = '';\n }\n\n return (\n <CopyToClipboard onCopy={onCopy} text={props.value}>\n <div>\n {props.label && <h3 className='mb-3 text-center'>{props.label}</h3>}\n <div className={classNames(\n 'bg-white border rounded-3 overflow-hidden px-4 py-3 text-truncate mb-0',\n 'position-relative align-items-center gx-2 gy-0',\n size === 'sm' ? 'h5' : 'h1',\n props.align === 'left' ? 'row' : 'd-flex justify-content-center gap-3',\n props.showCopyButton ? 'text-left cursor-pointer' : 'text-center',\n props.className\n )}>\n <div className={classNames(\n textClassName,\n 'text-truncate'\n )}>\n {props.value}\n </div>\n {props.showCopyButton &&\n <div className={classNames(buttonClassName)}>\n <SvgContainer\n svgName={cvSvgLibrary.Copy}\n size={SvgContainerSize.Standard}\n className='svg-container d-inline-block std'\n onClick={onCopy}\n />\n </div>\n }\n {props.showCopyButton &&\n <BoxOverlay show={copied} />\n }\n </div>\n </div>\n </CopyToClipboard>\n );\n}\n\ntype InstructionsSpacing = 'none' | 'sm' | 'md' | 'lg';\n\ninterface InstructionsProps {\n spacing?: InstructionsSpacing;\n bottomSpacing?: InstructionsSpacing;\n className?: string;\n}\n\nconst bottomSpacingMap: {[key in InstructionsSpacing]: string} = {\n none: 'mb-0',\n md: 'mb-3',\n sm: 'mb-2',\n lg: 'mb-4'\n};\n\nconst itemSpacingMap: {[key in InstructionsSpacing]: string} = {\n none: '',\n sm: 'gap-2',\n md: 'gap-3',\n lg: 'gap-4'\n};\n\nexport function Instructions(props: React.PropsWithChildren<InstructionsProps>): JSX.Element {\n return (\n <ol className={classNames(\n 'd-flex flex-column',\n bottomSpacingMap[props.bottomSpacing || 'md'],\n itemSpacingMap[props.spacing || 'md'],\n styles.orderedListWithBackground,\n props.className\n )}>\n {props.children}\n </ol>\n );\n}\n\nInstructions.Step = Step;\nInstructions.Code = Code;\nInstructions.Textbox = Textbox;","// extracted by mini-css-extract-plugin\nexport default {\"hoverable\":\"bLxv5\",\"msTeamsContainer\":\"mPAD2\",\"avatar\":\"qmP52\",\"small\":\"ul1RN\"};"],"names":["getPhrase","LanguageService","CopyInput","props","showCopiedText","localShowCopiedText","setLocalShowCopiedText","revertLocalShowCopiedText","setTimeout","onCopy","input","className","styling","textarea","hasInputBg","spellCheck","value","rows","readOnly","type","autoComplete","CopyToClipboard","text","IconButton","role","svgName","extraButtonClassNames","copiedText","copyText","label","Form","defaultProps","buildStyle","content","noUpperCase","Divider","style","IntegrationId","IntegrationHelper","getShareIntegrations","googleClassroomSetting","msftTeamsSetting","id","name","enabled","settingName","namespace","JoinLinkEmptyState","EmptyState","src","ImageUrls","size","Text","phrase","StudentPill","Avatar","imageUrl","user","avatar","url","imageCdnUrl","initials","UserHelper","surname","POLLING_INTERVAL","GenerateJoinLinkView","dispatch","fetchAsync","hasManageIntegrationsPermission","hasPermissions","usePermissions","PermissionName","joinLink","ClassroomRequests","classroomId","currentUser","UserRequests","classroom","data","getRequest","cursor","useSetPageMetadata","title","classroomName","students","config","ConfigRequests","useSettings","shareToGoogleClassroom","shareToMicrosoftTeams","isLoadingSettings","isFromList","source","interval","window","setInterval","clearInterval","items","Button","variant","onClick","application","action","args","Instructions","spacing","bottomSpacing","number","URL","liteUrl","hostname","UrlHelper","code","link","ShareIntegrations","integrations","filter","i","map","appLink","length","s","key","BoxOverlay","show","bottomSpacingMap","none","md","sm","lg","itemSpacingMap","children","Step","Code","copied","setCopied","SvgContainer","S","Textbox","showCopyButton","textClassName","buttonClassName","align"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[9742],{91200:(e,t,a)=>{a.d(t,{Y:()=>s});var n=a(32735),r=a(68050),i=a(69111),l=a(79382);function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=Array(t);a<t;a++)n[a]=e[a];return n}function s(e){var t,a=function(e){if(Array.isArray(e))return o(e)}(t=Array(e.numItems))||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(t)||function(e,t){if(e){if("string"==typeof e)return o(e,t);var a={}.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?o(e,t):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),s=e.itemClassName||"";return n.createElement(n.Fragment,null,e.showHeading&&n.createElement("div",{className:"".concat(l.Z.partialHeading," mb-1 partial-loading-background")}),n.createElement(r.Z,{className:"mx-n1 mb-n2"},a.map(function(e,t){return n.createElement(i.Z,{key:t,xs:6,sm:4,lg:3,className:"".concat(s," px-1 pb-2")},n.createElement("div",{className:"".concat(l.Z.playlistItem," partial-loading-background rounded-3")}))})))}s.defaultProps={numItems:8}},23162:(e,t,a)=>{a.d(t,{t:()=>N});var n=a(32735),r=a(82602),i=a(23481),l=a(110),o=a(65858),s=a(83345),c="playlists.playlistCount";function u(e){var t=function(e){var t,a,n,r,i,l;return!!e&&(null!==(a=null===(t=e.videos)||void 0===t?void 0:t.count)&&void 0!==a?a:0)+(null!==(r=null===(n=e.interactives)||void 0===n?void 0:n.count)&&void 0!==r?r:0)+(null!==(l=null===(i=e.clips)||void 0===i?void 0:i.count)&&void 0!==l?l:0)}(e.playlist);return!1===t||Number.isNaN(t)?n.createElement(n.Fragment,null):n.createElement("span",{className:"text-shadow font-size-sm"},n.createElement(s.x,{namespace:c,phrase:"count",options:{smartCount:t}}))}var d=a(97408),m=a(97392),p=a(64818);function v(e){var t,a,r,i=e.playlist._liteOwner;if(null===(t=e.playlist._isClickViewCurated)||void 0===t?void 0:t.value)return n.createElement(m.F,null);if(!(null==i?void 0:i.id)||!(null===(a=e.currentUser)||void 0===a?void 0:a.id))return n.createElement(n.Fragment,null);if(i.id.toString()===e.currentUser.id.toString())return n.createElement(n.Fragment,null);var l="string"==typeof i.avatar?i.avatar:null===(r=i.avatar)||void 0===r?void 0:r.url;return n.createElement(d.q,{imageUrl:l,imageCdnUrl:e.imageCdnUrl,initials:p.l.getInitials(i.name,i.surname)})}var y=a(15611),f=a(69776),g=a(7432),h=a(11834),b=a(54610),E=a(80143),C=a(9085),w=a(67453),S=a(79382),P="playlists.playlistList";function N(e){var t,a,s=w.j.createUrl(e.data.cover&&e.data.cover.url,{size:b.h2.Medium,resizeType:b.Nq.Cover}),c=e.data.subjectPresentationAudiences&&e.data.subjectPresentationAudiences.data,d=(0,E.n)(c,e.presentationAudiences),m=S.Z.playlistItem,p=!!s||!!e.showFallbackImage;p&&(m+=" ".concat(S.Z.playlistItemGradient)),!p&&e.bgColourClassNames&&(m+=" ".concat(S.Z.playlistItem," ").concat((0,C.x)(e.data.name,e.bgColourClassNames))),"round"===e.itemStyle&&(m+=" rounded-3 overflow-hidden"),"round-left"===e.itemStyle&&(m+=" rounded-start-lg overflow-hidden");var N=Object.assign(Object.assign({},e.analyticsData),{id:null===(t=e.data)||void 0===t?void 0:t.id,name:null===(a=e.data)||void 0===a?void 0:a.name}),I=Object.assign(Object.assign({},e.analyticsOptions),{entity:o.py.Playlist});return n.createElement(y.F,{appLink:e.appLink,analyticsData:N,analyticsOptions:I,title:function(){var t;return!e.data.contentModifiedDate||(null===(t=e.data._isClickViewCurated)||void 0===t?void 0:t.value)?"":i.T.getPhrase(P,"lastUpdated",{timeago:(0,r.WU)(l.O.convertUTCToLocal(e.data.contentModifiedDate))})}()},n.createElement(g.Z,{data:s,alt:e.data.name,className:m},!!e.showFallbackImage&&n.createElement(h.oy,{type:h.mS.Playlist}),n.createElement("div",{className:"text-white ".concat(S.Z.playlistMetadata)},!!e.showCount&&n.createElement(u,{playlist:e.data}),n.createElement("h5",{className:"mb-0 ".concat(e.titleClassName||"")},n.createElement("span",{className:"text-shadow clamp-2"},e.data.name)),!!c&&!!c.length&&!!d&&n.createElement(f.P,{className:"".concat(e.audienceLabelClass?e.audienceLabelClass:""," mt-1"),audience:d,border:"white"})),!!e.showOwner&&!!e.imageCdnUrl&&n.createElement("div",{className:S.Z.ownerAvatarContainer},n.createElement(v,{playlist:e.data,currentUser:e.currentUser,imageCdnUrl:e.imageCdnUrl}))))}N.defaultProps={itemStyle:"square"}},31273:(e,t,a)=>{a.d(t,{P:()=>c});var n=a(32735),r=a(68050),i=a(69111),l=a(65858),o=a(23162),s={actionType:l.Vw.Click,entity:l.py.Playlist,location:l.LZ.PlaylistListItem,descriptor:l._S.Cover};function c(e){return n.createElement(r.Z,{as:"ul",className:"list-unstyled mx-n1"},e.extraPlaylistItem&&n.createElement(i.Z,{as:"li",key:"extra-playlist-item",xs:6,sm:4,lg:3,className:"mb-2 px-1 ".concat(e.itemContainerClassName?e.itemContainerClassName:"")},e.extraPlaylistItem),e.playlists.map(function(t){return n.createElement(i.Z,{as:"li",key:t.id,xs:6,sm:4,lg:3,className:"mb-2 px-1 ".concat(e.itemContainerClassName?e.itemContainerClassName:"")},n.createElement(o.t,{data:t,appLink:e.getPlaylistAppLink(t),imageCdnUrl:e.imageCdnUrl,currentUser:e.currentUser,presentationAudiences:e.presentationAudiences,bgColourClassNames:e.bgColourClassNames,showCount:e.showCount,showOwner:e.showOwner,showFallbackImage:e.showFallbackImage,titleClassName:e.itemTitleClassName,itemStyle:e.itemStyle,analyticsData:e.analyticsData,analyticsOptions:Object.assign(Object.assign({},e.analyticsOptions),s)}))}))}},94644:(e,t,a)=>{a.d(t,{r:()=>u});var n=a(50242),r=a(81886),i=a(67058),l=a(14553),o=a(49267),s=a(49075),c={notFound:i.d,forbidden:{rating:l.q,yearLevel:l.q,region:o.a,privacy:l.q},badRequest:s._,internalServerError:s._};function u(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e){var i;i="number"==typeof e?e:e.status;var l=Object.assign(Object.assign({},c),t);i&&r.Q.Ry.isStatusCodeError(i)&&(i!==n.o.InternalServer?i!==n.o.NotFound?i!==n.o.Forbidden?a.badRequest||r.Q.Ry.throw(new l.badRequest):a.forbidden||r.Q.Ry.throw(new l.forbidden.privacy):a.notFound||r.Q.Ry.throw(new l.notFound):a.internalServerError||r.Q.Ry.throw(new s._))}}},60115:(e,t,a)=>{a.d(t,{K:()=>c});var n=a(32735),r=a(50242),i=a(91967),l=400,o=a(45719);function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=Array(t);a<t;a++)n[a]=e[a];return n}function c(e,t,a,c,u,d){var m,p,v,y,f=(m=(0,n.useState)(0),p=2,function(e){if(Array.isArray(e))return e}(m)||function(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var n,r,i,l,o=[],s=!0,c=!1;try{if(i=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;s=!1}else for(;!(s=(n=i.call(a)).done)&&(o.push(n.value),o.length!==t);s=!0);}catch(e){c=!0,r=e}finally{try{if(!s&&null!=a.return&&(l=a.return(),Object(l)!==l))return}finally{if(c)throw r}}return o}}(m,p)||function(e,t){if(e){if("string"==typeof e)return s(e,t);var a={}.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?s(e,t):void 0}}(m,p)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),g=f[0],h=f[1],b=t,E=(0,o.P)(function(t){if(!e)return null;var a=e(t);return a?a.key:null},c,u);return v={fetchNextPage:function(){if(t&&e&&E)return h(function(e){return e+1}),b(E.nextCursor)},hasMore:!!(null==E?void 0:E.nextCursor),isFetching:null==E?void 0:E.isFetching,scrollContainer:d},y=function(){if(!v.isFetching){if(v.scrollContainer){var e=v.scrollContainer;if(e.getBoundingClientRect().height+e.scrollTop<e.scrollHeight-l)return}else if(window.innerHeight+document.documentElement.scrollTop<document.documentElement.scrollHeight-l)return;v.fetchNextPage()}},(0,n.useEffect)(function(){var e=i.q.throttle(y,200),t=v.scrollContainer||window;return v.hasMore&&t.addEventListener("scroll",e),function(){return t.removeEventListener("scroll",e)}},[v.hasMore,v.fetchNextPage,v.scrollContainer]),(0,n.useEffect)(function(){E&&E.shouldInitialFetch&&t&&(b(),h(function(e){return e+1}))},[null==E?void 0:E.shouldInitialFetch,t]),(0,n.useEffect)(function(){var e,t;if((null==E?void 0:E.statusCode)&&i.q.isFunction(a)){var n=+(null===(t=null===(e=E.statusCode)||void 0===e?void 0:e.toString())||void 0===t?void 0:t.substr(0,1));n!==r.k.ClientError&&n!==r.k.ServerError||a(g,E.statusCode)}},[null==E?void 0:E.statusCode]),{items:null==E?void 0:E.items,hasMore:!!(null==E?void 0:E.nextCursor),nextCursor:null==E?void 0:E.nextCursor,isFetching:null==E?void 0:E.isFetching,totalItems:null==E?void 0:E.totalItems,hasFirstPageCompleted:null==E?void 0:E.hasFirstPageCompleted}}},89742:(e,t,a)=>{a.r(t),a.d(t,{PlaylistsView:()=>$});var n=a(32735),r=a(70680),i=a(23481),l=a(20354),o=a(65858),s=a(91200),c=a(31273),u=a(91967),d=a(76611),m=a(15611);function p(e){return p="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},p(e)}function v(e,t,a){return(t=function(e){var t=function(e){if("object"!=p(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var a=t.call(e,"string");if("object"!=p(a))return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==p(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}var y="playlists.playlistSortSelect",f=u.q.memoize(function(){return v(v(v(v(v({},d.o.RecentlyUpdated,{name:i.T.getPhrase(y,"recentlyUpdated")}),d.o.AtoZ,{name:i.T.getPhrase(y,"atoz")}),d.o.ZtoA,{name:i.T.getPhrase(y,"ztoa")}),d.o.Newest,{name:i.T.getPhrase(y,"newest")}),d.o.Oldest,{name:i.T.getPhrase(y,"oldest")})});function g(e){var t=e.type,a=e.getSortAppLink,r=e.variant,i=f();return n.createElement("div",{className:"dropdown"},n.createElement("button",{className:"btn btn-".concat(r," ms-2 dropdown-toggle"),type:"button",id:"sort-select","data-bs-toggle":"dropdown","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},i[t].name),n.createElement("ul",{className:"dropdown-menu dropdown-menu-end dropdown-menu-right","aria-labelledby":"sort-select"},Object.values(d.o).map(function(e){var r="dropdown-item";return e===t&&(r+=" active"),n.createElement("li",{key:e},n.createElement(m.F,{className:r,appLink:a(e),analyticsData:{sort:i[e].name},analyticsOptions:{location:o.LZ.PlaylistListHeader,entity:o.py.Playlists,actionType:o.Vw.Sort,workflowPhase:o.eu.Complete}},i[e].name))})))}g.defaultProps={variant:"light"};var h=a(23257),b=a(70006),E=a(71521),C=a(83657),w=a(87801),S=a(83345),P=a(7733),N=a(16714),I=a(94644),L=a(39151),A=a(5112),x=a(31949),T=a(69883),k=a(60115),F=a(22902),O=a(79612),U=a(35223),_=a(14070),j=a(97291),M=a(44110),Z=a(26323),D=a(99742);const R={playlistMetadata:"vv8fW"};var V="playlists.favouritesPlaylistItem",Y=i.T.encloseNamespace(V);function B(e){var t={entity:o.py.Playlist,actionType:o.Vw.Click,location:o.LZ.PlaylistListItem},a=D.W.FAVOURITES_PLAYLIST.FAV_PLAYLIST_COVER,r={application:j.O.MY_FAVOURITES,action:_.e.MyFavourites.MY_FAVOURITES};return n.createElement(m.F,{appLink:r,analyticsData:{name:"Favourites",extraItem:"user-favourites"},analyticsOptions:t,title:Y("favouritesTitle")},n.createElement("div",{className:"position-relative"},n.createElement("div",{className:"text-white font-size-sm text-shadow ".concat(R.playlistMetadata)},!e.isLoadingCount&&n.createElement("span",null,n.createElement(S.x,{namespace:V,phrase:"count",options:{smartCount:e.count}})),n.createElement("h5",{className:"mb-0"},n.createElement("span",{className:"clamp-2"},Y("favouritesTitle")))),n.createElement("img",{src:a,alt:Y("favouritesTitle"),className:"w-100 h-100 rounded-3"})))}var q=a(12909),H=a(52931),z="playlists.playlists",W=i.T.encloseNamespace(z);function G(e){return{application:j.O.PLAYLISTS,action:_.e.Playlists.HOME,params:{sort:e}}}function $(e){var t,a=(0,r.I0)(),i=(0,T.Z)(),u=(0,F.T)(),d=u.hasLocalPermissions,m=u.getGatedPermission,p=u.isLoaded,v=l.a.useBasicFetch(L.L.config()),y=l.a.useBasicFetch(x.N.currentUser()),f=(0,M.i)(),D=!!y.data&&E.A.getOrSetSortType(y.data.id,e.sort),R=(0,Z.B)(null===(t=y.data)||void 0===t?void 0:t.id),V=R.count,Y=R.favourites,$={count:V,isLoadingCount:R.isLoading,data:Y},Q=!!D&&function(e){return A.C.getUserPlaylists(new b.l(D,e,h.e.All))},J=!!Q&&function(e){l.a.getFetch(a)(Q(e))};(0,O.M)({title:W("pageTitle"),description:W("pageDescription")});var K=!d(N.E.ViewPlaylistsLanding)&&D,X=(0,k.K)(!!K&&Q,J,function(e,t){if(1===e)return(0,I.r)(t);i.error(W("error"))}),ee=X.items,te=X.hasMore,ae=X.isFetching,ne=[{label:W("createPlaylist"),appLink:{application:j.O.PLAYLISTS,action:_.e.Playlists.NEW_PLAYLIST},svgName:U.vn.Plus,className:"btn btn-outline-dark",button:!0,analyticsData:{},analyticsOptions:{location:o.LZ.Banner,entity:o.py.Playlist,workflowPhase:o.eu.Start,actionType:o.Vw.Create}}],re=!!ee&&!!y.data&&!!v.data&&(!!f.data||f.hasError)&&!!p;return d(N.E.ViewPlaylistsLanding)?n.createElement(H.Y,null):n.createElement("div",{className:"bg-white px-3"},"soft-gate"===m(N.C.CreatePlaylist)&&n.createElement(q.H,null),n.createElement("div",{className:"d-flex justify-content-between align-items-end pb-3"},n.createElement("h1",{className:"h2 mb-0"},n.createElement(S.x,{namespace:z,phrase:"headerTitle"})),!!D&&n.createElement(C.e,{actions:ne,sortComponent:n.createElement(g,{variant:"outline-dark",type:D,getSortAppLink:G})})),re?n.createElement(c.P,{playlists:ee,getPlaylistAppLink:e.getPlaylistAppLink,imageCdnUrl:v.data.imageCdnUrl,currentUser:y.data,presentationAudiences:f.data||[],bgColourClassNames:P.o,itemContainerClassName:"columns-of-five",itemStyle:"round",showCount:!0,showOwner:!0,extraPlaylistItem:n.createElement(B,Object.assign({},$))}):n.createElement(s.Y,{itemClassName:"columns-of-five"}),re&&(te||ae)&&n.createElement(w._,{isFetching:ae,fetchNext:J}))}},52931:(e,t,a)=>{a.d(t,{Y:()=>y,v:()=>v});var n=a(32735),r=a(23481),i=a(65858),l=a(97958),o=a(83345),s=a(35223),c=a(99742),u=a(14070),d=a(97291),m="playlists.playlistsEmptyState",p=r.T.encloseNamespace(m);function v(e){return n.createElement(o.D.Provider,{value:m},n.createElement(l.u,{className:e.className},n.createElement(l.u.Image,{src:c.W.EmptyStates.Playlists.PLAYLISTS,altText:p("info"),size:e.imageSize}),n.createElement(l.u.Heading,{className:e.headingClassName},n.createElement(o.x,{phrase:"heading"})),n.createElement(l.u.Info,{className:"w-75"},n.createElement(o.x,{phrase:e.isStudent?"studentInfo":"info"})),!e.hideButton&&n.createElement(l.u.Cta,{text:r.T.getPhrase(m,"cta"),icon:s.vn.Plus,appLink:{application:d.O.PLAYLISTS,action:u.e.Playlists.NEW_PLAYLIST}})))}function y(){return n.createElement(o.D.Provider,{value:m},n.createElement(l.u,null,n.createElement(l.u.Image,{src:c.W.EmptyStates.Playlists.PLAYLISTS_PUBLIC,altText:p("info")}),n.createElement(l.u.Heading,null,n.createElement(o.x,{phrase:"heading"})),n.createElement(l.u.Info,null,n.createElement(o.x,{phrase:"info"})),n.createElement(l.u.Cta,{text:r.T.getPhrase(m,"publicCta"),appLink:{application:d.O.SIGN_UP,action:u.e.SignUp.SIGN_UP},analyticsData:{},analyticsOptions:{actionType:i.Vw.Click,location:i.LZ.PlaylistsLanding,entity:i.py.AppLink,workflowPhase:i.eu.Start,descriptor:i.Yu.SignUp}})))}},12909:(e,t,a)=>{a.d(t,{H:()=>d});var n=a(32735),r=a(15611),i=a(83914),l=a(83345),o=a(35223),s=a(14070),c=a(97291),u="signUp.softGateBanner";function d(){return n.createElement("div",{role:"alert",className:"bg-light-indigo text-indigo rounded p-2 mb-4 d-flex align-items-center"},n.createElement(i.x,{svgName:o.vn.StarOutline,size:i.S.Large}),n.createElement(l.x,{namespace:u,phrase:"softGate"})," ",n.createElement(r.F,{appLink:{application:c.O.SIGN_UP,action:s.e.SignUp.PREMIUM_FEATURES},className:"indigo-link text-indigo text-underline d-inline"},n.createElement(l.x,{namespace:u,phrase:"learnMore"})))}},44110:(e,t,a)=>{a.d(t,{i:()=>l});var n=a(20354),r=a(89454),i=a(86698),l=function(){var e=(0,i.y)({redirectOnError:!0}),t=e.activePresentation,a=e.getFallbackPresentation,l=t||a();return n.a.useBasicFetch(!!l&&r.O.presentationAudiences(l.id))}},26323:(e,t,a)=>{a.d(t,{B:()=>o});var n=a(20354),r=a(63419);function i(e){return function(e){if(Array.isArray(e))return l(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return l(e,t);var a={}.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?l(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=Array(t);a<t;a++)n[a]=e[a];return n}function o(e){var t,a,l,o,s,c,u,d,m,p=n.a.useBasicFetch(e&&r.P.getFavouritesVideosCount(e)),v=n.a.useBasicFetch(e&&r.P.getFavouritesClipsCount(e)),y=n.a.useBasicFetch(e&&r.P.getFavouritesInteractivesCount(e));return{count:(null===(t=p.data)||void 0===t?void 0:t.count)+(null===(a=y.data)||void 0===a?void 0:a.count)+(null===(l=v.data)||void 0===l?void 0:l.count),favourites:[].concat(i((null===(o=p.data)||void 0===o?void 0:o.data)||[]),i((null===(s=v.data)||void 0===s?void 0:s.data)||[]),i((null===(c=y.data)||void 0===c?void 0:c.data)||[])),isLoading:!(null===(u=p.data)||void 0===u?void 0:u.data)||!(null===(d=v.data)||void 0===d?void 0:d.data)||!(null===(m=y.data)||void 0===m?void 0:m.data)}}},79382:(e,t,a)=>{a.d(t,{Z:()=>n});const n={playlistItem:"CaRJx",playlistItemGradient:"BI7p2",playlistMetadata:"eDk1l",partialHeading:"w4lWh",ownerAvatarContainer:"JImqE"}},82602:(e,t,a)=>{a.d(t,{WU:()=>c});var n=["second","minute","hour","day","week","month","year"],r=["秒","分钟","小时","天","周","个月","年"],i={},l=function(e,t){i[e]=t},o=[60,60,24,7,365/7/12,12];function s(e){return e instanceof Date?e:!isNaN(e)||/^\d+$/.test(e)?new Date(parseInt(e)):(e=(e||"").trim().replace(/\.\d+/,"").replace(/-/,"/").replace(/-/,"/").replace(/(\d)T(\d)/,"$1 $2").replace(/Z/," UTC").replace(/([+-]\d\d):?(\d\d)/," $1$2"),new Date(e))}var c=function(e,t,a){var n=function(e,t){return(+(t?s(t):new Date)-+s(e))/1e3}(e,a&&a.relativeDate);return function(e,t){for(var a=e<0?1:0,n=e=Math.abs(e),r=0;e>=o[r]&&r<o.length;r++)e/=o[r];return(e=Math.floor(e))>(0==(r*=2)?9:1)&&(r+=1),t(e,r,n)[a].replace("%s",e.toString())}(n,function(e){return i[e]||i.en_US}(t))};l("en_US",function(e,t){if(0===t)return["just now","right now"];var a=n[Math.floor(t/2)];return e>1&&(a+="s"),[e+" "+a+" ago","in "+e+" "+a]}),l("zh_CN",function(e,t){if(0===t)return["刚刚","片刻后"];var a=r[~~(t/2)];return[e+" "+a+"前",e+" "+a+"后"]})}}]);
|
|
2
|
-
//# sourceMappingURL=9742-5f99d74bb0-lite.chunk.js.map
|