@clickview/lite 0.83.0-rc.0 → 0.83.0

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.
Files changed (153) hide show
  1. package/dist/bundles.json +1 -1
  2. package/dist/css/2074-lite-ac8da6c78b.chunk.css +4 -0
  3. package/dist/languages/en.json +1 -1
  4. package/dist/scripts/{1199-01cc084886-lite.chunk.js → 1199-da55d69853-lite.chunk.js} +1 -1
  5. package/dist/scripts/{1199-01cc084886-lite.chunk.js.map → 1199-da55d69853-lite.chunk.js.map} +1 -1
  6. package/dist/scripts/1202-d96ad80884-lite.chunk.js +2 -0
  7. package/dist/scripts/1202-d96ad80884-lite.chunk.js.map +1 -0
  8. package/dist/scripts/{4208-0706461da6-lite.chunk.js → 1336-1826f6e582-lite.chunk.js} +2 -2
  9. package/dist/scripts/1336-1826f6e582-lite.chunk.js.map +1 -0
  10. package/dist/scripts/1938-c52383e98d-lite.chunk.js +3 -0
  11. package/dist/scripts/1938-c52383e98d-lite.chunk.js.map +1 -0
  12. package/dist/scripts/2074-39b86b9a22-lite.chunk.js +2 -0
  13. package/dist/scripts/2074-39b86b9a22-lite.chunk.js.map +1 -0
  14. package/dist/scripts/{2664-907153c03b-lite.chunk.js → 2664-87c8cbfa7f-lite.chunk.js} +2 -2
  15. package/dist/scripts/2664-87c8cbfa7f-lite.chunk.js.map +1 -0
  16. package/dist/scripts/2888-2596e106a5-lite.chunk.js +2 -0
  17. package/dist/scripts/2888-2596e106a5-lite.chunk.js.map +1 -0
  18. package/dist/scripts/289-669c0c8222-lite.chunk.js +2 -0
  19. package/dist/scripts/289-669c0c8222-lite.chunk.js.map +1 -0
  20. package/dist/scripts/{9911-8892b6dbfe-lite.chunk.js → 3612-8c6423bd51-lite.chunk.js} +2 -2
  21. package/dist/scripts/{9911-8892b6dbfe-lite.chunk.js.map → 3612-8c6423bd51-lite.chunk.js.map} +1 -1
  22. package/dist/scripts/3836-bf1359bed7-lite.chunk.js +3 -0
  23. package/dist/scripts/3836-bf1359bed7-lite.chunk.js.map +1 -0
  24. package/dist/scripts/3840-98c79fc0d8-lite.chunk.js +2 -0
  25. package/dist/scripts/3840-98c79fc0d8-lite.chunk.js.map +1 -0
  26. package/dist/scripts/3893-2856933742-lite.chunk.js +2 -0
  27. package/dist/scripts/3893-2856933742-lite.chunk.js.map +1 -0
  28. package/dist/scripts/4006-9dfe9cec1b-lite.chunk.js +3 -0
  29. package/dist/scripts/4006-9dfe9cec1b-lite.chunk.js.map +1 -0
  30. package/dist/scripts/{4177-2d876c7b14-lite.chunk.js → 4177-285ddf9ae3-lite.chunk.js} +2 -2
  31. package/dist/scripts/4177-285ddf9ae3-lite.chunk.js.map +1 -0
  32. package/dist/scripts/{4578-27028d26eb-lite.chunk.js → 4578-7578bcf17a-lite.chunk.js} +2 -2
  33. package/dist/scripts/4578-7578bcf17a-lite.chunk.js.map +1 -0
  34. package/dist/scripts/{4621-7fb0a05bcb-lite.chunk.js → 4621-1f79d94416-lite.chunk.js} +2 -2
  35. package/dist/scripts/4621-1f79d94416-lite.chunk.js.map +1 -0
  36. package/dist/scripts/4806-f36469abb7-lite.chunk.js +2 -0
  37. package/dist/scripts/4806-f36469abb7-lite.chunk.js.map +1 -0
  38. package/dist/scripts/{4948-ba684e5f4f-lite.chunk.js → 4948-de1c75e7fb-lite.chunk.js} +1 -1
  39. package/dist/scripts/{4948-ba684e5f4f-lite.chunk.js.map → 4948-de1c75e7fb-lite.chunk.js.map} +1 -1
  40. package/dist/scripts/4985-bdfa839f8f-lite.chunk.js +2 -0
  41. package/dist/scripts/4985-bdfa839f8f-lite.chunk.js.map +1 -0
  42. package/dist/scripts/{5554-f1f3baf822-lite.chunk.js → 5554-17bb3b86fc-lite.chunk.js} +2 -2
  43. package/dist/scripts/5554-17bb3b86fc-lite.chunk.js.map +1 -0
  44. package/dist/scripts/5579-a9c152057f-lite.chunk.js +2 -0
  45. package/dist/scripts/5579-a9c152057f-lite.chunk.js.map +1 -0
  46. package/dist/scripts/5712-e784cfe89c-lite.chunk.js +2 -0
  47. package/dist/scripts/5712-e784cfe89c-lite.chunk.js.map +1 -0
  48. package/dist/scripts/6070-a390fdce21-lite.chunk.js +2 -0
  49. package/dist/scripts/6070-a390fdce21-lite.chunk.js.map +1 -0
  50. package/dist/scripts/{6909-ba75701156-lite.chunk.js → 6909-a9b8930e37-lite.chunk.js} +2 -2
  51. package/dist/scripts/6909-a9b8930e37-lite.chunk.js.map +1 -0
  52. package/dist/scripts/7401-833bc4a088-lite.chunk.js +2 -0
  53. package/dist/scripts/7401-833bc4a088-lite.chunk.js.map +1 -0
  54. package/dist/scripts/{7617-211f084b70-lite.chunk.js → 7617-9d34c841e6-lite.chunk.js} +2 -2
  55. package/dist/scripts/7617-9d34c841e6-lite.chunk.js.map +1 -0
  56. package/dist/scripts/7742-342db3ce4f-lite.chunk.js +2 -0
  57. package/dist/scripts/7742-342db3ce4f-lite.chunk.js.map +1 -0
  58. package/dist/scripts/7843-f6033528ce-lite.chunk.js +2 -0
  59. package/dist/scripts/7843-f6033528ce-lite.chunk.js.map +1 -0
  60. package/dist/scripts/787-dcb3a0a26c-lite.chunk.js +2 -0
  61. package/dist/scripts/787-dcb3a0a26c-lite.chunk.js.map +1 -0
  62. package/dist/scripts/8077-bfb3530f78-lite.chunk.js +3 -0
  63. package/dist/scripts/8077-bfb3530f78-lite.chunk.js.map +1 -0
  64. package/dist/scripts/{3392-f7f8cb65e5-lite.chunk.js → 8133-ffcff3b7fc-lite.chunk.js} +3 -3
  65. package/dist/scripts/8133-ffcff3b7fc-lite.chunk.js.map +1 -0
  66. package/dist/scripts/8364-ff63447d36-lite.chunk.js +3 -0
  67. package/dist/scripts/8364-ff63447d36-lite.chunk.js.map +1 -0
  68. package/dist/scripts/8672-6967ce8a23-lite.chunk.js +2 -0
  69. package/dist/scripts/8672-6967ce8a23-lite.chunk.js.map +1 -0
  70. package/dist/scripts/{9042-fd7e79b891-lite.chunk.js → 9042-fdc5ecb459-lite.chunk.js} +1 -1
  71. package/dist/scripts/{9042-fd7e79b891-lite.chunk.js.map → 9042-fdc5ecb459-lite.chunk.js.map} +1 -1
  72. package/dist/scripts/9295-4242401e60-lite.chunk.js +2 -0
  73. package/dist/scripts/9295-4242401e60-lite.chunk.js.map +1 -0
  74. package/dist/scripts/{9742-3f6b75484a-lite.chunk.js → 9742-5f99d74bb0-lite.chunk.js} +2 -2
  75. package/dist/scripts/9742-5f99d74bb0-lite.chunk.js.map +1 -0
  76. package/dist/scripts/979-4b893e5603-lite.chunk.js +2 -0
  77. package/dist/scripts/979-4b893e5603-lite.chunk.js.map +1 -0
  78. package/dist/scripts/9911-9272b96e46-lite.chunk.js +2 -0
  79. package/dist/scripts/9911-9272b96e46-lite.chunk.js.map +1 -0
  80. package/dist/scripts/bundle-dcea87749e.min.js +3 -0
  81. package/dist/scripts/{bundle-f926852f33.min.js.map → bundle-dcea87749e.min.js.map} +1 -1
  82. package/package.json +1 -1
  83. package/dist/scripts/1074-fdce06d863-lite.chunk.js +0 -2
  84. package/dist/scripts/1074-fdce06d863-lite.chunk.js.map +0 -1
  85. package/dist/scripts/1938-e067e06dac-lite.chunk.js +0 -3
  86. package/dist/scripts/1938-e067e06dac-lite.chunk.js.map +0 -1
  87. package/dist/scripts/2664-907153c03b-lite.chunk.js.map +0 -1
  88. package/dist/scripts/2970-024b1dd55d-lite.chunk.js +0 -2
  89. package/dist/scripts/2970-024b1dd55d-lite.chunk.js.map +0 -1
  90. package/dist/scripts/3392-f7f8cb65e5-lite.chunk.js.map +0 -1
  91. package/dist/scripts/3836-2c82a9fbf7-lite.chunk.js +0 -3
  92. package/dist/scripts/3836-2c82a9fbf7-lite.chunk.js.map +0 -1
  93. package/dist/scripts/3840-59e5e53cda-lite.chunk.js +0 -2
  94. package/dist/scripts/3840-59e5e53cda-lite.chunk.js.map +0 -1
  95. package/dist/scripts/4177-2d876c7b14-lite.chunk.js.map +0 -1
  96. package/dist/scripts/4208-0706461da6-lite.chunk.js.map +0 -1
  97. package/dist/scripts/4578-27028d26eb-lite.chunk.js.map +0 -1
  98. package/dist/scripts/4598-8f5266e4c2-lite.chunk.js +0 -2
  99. package/dist/scripts/4598-8f5266e4c2-lite.chunk.js.map +0 -1
  100. package/dist/scripts/4621-7fb0a05bcb-lite.chunk.js.map +0 -1
  101. package/dist/scripts/4806-a6f31d703c-lite.chunk.js +0 -2
  102. package/dist/scripts/4806-a6f31d703c-lite.chunk.js.map +0 -1
  103. package/dist/scripts/4985-7e02d5df40-lite.chunk.js +0 -2
  104. package/dist/scripts/4985-7e02d5df40-lite.chunk.js.map +0 -1
  105. package/dist/scripts/5554-f1f3baf822-lite.chunk.js.map +0 -1
  106. package/dist/scripts/5712-7cee70c6b4-lite.chunk.js +0 -2
  107. package/dist/scripts/5712-7cee70c6b4-lite.chunk.js.map +0 -1
  108. package/dist/scripts/6550-d99e0ed75d-lite.chunk.js +0 -2
  109. package/dist/scripts/6550-d99e0ed75d-lite.chunk.js.map +0 -1
  110. package/dist/scripts/6909-ba75701156-lite.chunk.js.map +0 -1
  111. package/dist/scripts/7148-1ced1b5dce-lite.chunk.js +0 -2
  112. package/dist/scripts/7148-1ced1b5dce-lite.chunk.js.map +0 -1
  113. package/dist/scripts/7568-55e9b01367-lite.chunk.js +0 -3
  114. package/dist/scripts/7568-55e9b01367-lite.chunk.js.map +0 -1
  115. package/dist/scripts/7617-211f084b70-lite.chunk.js.map +0 -1
  116. package/dist/scripts/7742-514844bd1a-lite.chunk.js +0 -2
  117. package/dist/scripts/7742-514844bd1a-lite.chunk.js.map +0 -1
  118. package/dist/scripts/7843-cbebf1a786-lite.chunk.js +0 -2
  119. package/dist/scripts/7843-cbebf1a786-lite.chunk.js.map +0 -1
  120. package/dist/scripts/8077-870bd8e245-lite.chunk.js +0 -3
  121. package/dist/scripts/8077-870bd8e245-lite.chunk.js.map +0 -1
  122. package/dist/scripts/843-4dbc5df109-lite.chunk.js +0 -3
  123. package/dist/scripts/843-4dbc5df109-lite.chunk.js.map +0 -1
  124. package/dist/scripts/8735-e74a148502-lite.chunk.js +0 -2
  125. package/dist/scripts/8735-e74a148502-lite.chunk.js.map +0 -1
  126. package/dist/scripts/8856-2d332952ae-lite.chunk.js +0 -2
  127. package/dist/scripts/8856-2d332952ae-lite.chunk.js.map +0 -1
  128. package/dist/scripts/904-2784e45cfc-lite.chunk.js +0 -2
  129. package/dist/scripts/904-2784e45cfc-lite.chunk.js.map +0 -1
  130. package/dist/scripts/9295-eb130a0b17-lite.chunk.js +0 -2
  131. package/dist/scripts/9295-eb130a0b17-lite.chunk.js.map +0 -1
  132. package/dist/scripts/9528-4e954d9dff-lite.chunk.js +0 -2
  133. package/dist/scripts/9528-4e954d9dff-lite.chunk.js.map +0 -1
  134. package/dist/scripts/9742-3f6b75484a-lite.chunk.js.map +0 -1
  135. package/dist/scripts/979-6a70a0e616-lite.chunk.js +0 -2
  136. package/dist/scripts/979-6a70a0e616-lite.chunk.js.map +0 -1
  137. package/dist/scripts/bundle-f926852f33.min.js +0 -3
  138. /package/dist/css/{9528-lite-4a892bdbf2.chunk.css → 1202-lite-4a892bdbf2.chunk.css} +0 -0
  139. /package/dist/css/{7148-lite-856c02f000.chunk.css → 2888-lite-856c02f000.chunk.css} +0 -0
  140. /package/dist/css/{904-lite-2435a34b13.chunk.css → 289-lite-2435a34b13.chunk.css} +0 -0
  141. /package/dist/css/{9911-lite-2b4142796a.chunk.css → 3612-lite-2b4142796a.chunk.css} +0 -0
  142. /package/dist/css/{8856-lite-f8e496136d.chunk.css → 5579-lite-f8e496136d.chunk.css} +0 -0
  143. /package/dist/css/{6550-lite-45dc286aab.chunk.css → 6070-lite-45dc286aab.chunk.css} +0 -0
  144. /package/dist/css/{2970-lite-5a317efacd.chunk.css → 787-lite-5a317efacd.chunk.css} +0 -0
  145. /package/dist/css/{843-lite-db31e36b79.chunk.css → 8364-lite-db31e36b79.chunk.css} +0 -0
  146. /package/dist/css/{8735-lite-856c02f000.chunk.css → 9911-lite-856c02f000.chunk.css} +0 -0
  147. /package/dist/scripts/{1938-e067e06dac-lite.chunk.js.LICENSE.txt → 1938-c52383e98d-lite.chunk.js.LICENSE.txt} +0 -0
  148. /package/dist/scripts/{3392-f7f8cb65e5-lite.chunk.js.LICENSE.txt → 3836-bf1359bed7-lite.chunk.js.LICENSE.txt} +0 -0
  149. /package/dist/scripts/{3836-2c82a9fbf7-lite.chunk.js.LICENSE.txt → 4006-9dfe9cec1b-lite.chunk.js.LICENSE.txt} +0 -0
  150. /package/dist/scripts/{7568-55e9b01367-lite.chunk.js.LICENSE.txt → 8077-bfb3530f78-lite.chunk.js.LICENSE.txt} +0 -0
  151. /package/dist/scripts/{8077-870bd8e245-lite.chunk.js.LICENSE.txt → 8133-ffcff3b7fc-lite.chunk.js.LICENSE.txt} +0 -0
  152. /package/dist/scripts/{843-4dbc5df109-lite.chunk.js.LICENSE.txt → 8364-ff63447d36-lite.chunk.js.LICENSE.txt} +0 -0
  153. /package/dist/scripts/{bundle-f926852f33.min.js.LICENSE.txt → bundle-dcea87749e.min.js.LICENSE.txt} +0 -0
@@ -1,3 +0,0 @@
1
- /*! For license information please see 843-4dbc5df109-lite.chunk.js.LICENSE.txt */
2
- (self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[843],{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:()=>p});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 f=o.T.encloseNamespace("shared.copyInput");function p(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.")}()),p=o[0],d=o[1];function v(){setTimeout(function(){return d(!1)},2e3)}function y(){e.onCopy&&e.onCopy(),p||(d(!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:p?"status":"",svgName:p?c.vn.Check:c.vn.Copy,className:(0,l.A)(u.copyBtn,"btn py-0 text-nowrap",p?"btn-success text-white":"btn-outline-dark border-secondary",e.extraButtonClassNames)},p?e.copiedText||f("copiedLink"):e.copyText||f("copy"))):r.createElement(i.CopyToClipboard,{text:e.value,onCopy:y},r.createElement("button",{role:p?"status":"",className:(0,l.A)("btn btn-outline-dark border border-secondary py-0 text-nowrap",e.extraButtonClassNames)},p?e.copiedText||f("copied"):e.copyText||f("copy")))},null));return e.label?r.createElement(a.Z.Group,{className:"form-group"},r.createElement(a.Z.Label,null,e.label),b):b}p.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"}},10843:(e,t,n)=>{"use strict";n.r(t),n.d(t,{InviteColleagueView:()=>Se});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),f=n(69883),p=n(59934),d=n(23923),v=n(99940),y={invite:function(e){return{url:"{gateway}/v1/users/invites",key:"invites:colleague",normalize:!1,type:v.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:v.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:v.k.POST,normalize:!1}},createInviteLink:function(){return{key:"invites:create",url:"{gateway}/v1/users/invites/links",type:v.k.POST,normalize:!1,invalidationKeys:["invites"]}}};function b(e){return function(e){if(Array.isArray(e))return g(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 g(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)?g(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 g(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 h={"email-in-use":"emailInUse","invalid-email":"invalidEmail"},E=a.T.encloseNamespace("signUp.helpers"),x={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(b(e),[t.data]):e},[])},getInputWithErrors:function(e,t){var n,r=b(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:E(h[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(b(e),[this.getNewEmptyField()])},getNewEmptyField:function(){return{data:{firstName:"",email:""}}}};function w(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var N=a.T.encloseNamespace("signUp.helpers"),C=new RegExp(/^[^\s@]+@[^\s@]+\.[^\s@]+$/),k=/^[\w0-9'\-,.():;&][^_!¡?÷¿/\\+=@#$%ˆ*{}|~<>[\]]{0,}$/,S={validate:function(e){var t,n=this,r=function(e){if(Array.isArray(e))return w(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 w(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?w(e,t):void 0}}(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?C.test(e)?void 0:N("validSchoolEmail"):N("enterValidEmail")},validateFirstName:function(e){if(e.length)return k.test(e)?void 0:N("invalidFirstname")}},O=n(97958),I=n(2102),T=n(83345),j=n(99742),A=n(86974);function F(e){return F="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},F(e)}var P=a.T.encloseNamespace("signUp.invite.inviteFormInputGroup");function U(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"!=F(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=F(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==F(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:P("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(A.w,{type:"text",name:"electronicMail".concat(e.index),className:"form-control form-control-lg",placeholder:P("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 D(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 n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?L(e,t):void 0}}(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 n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var M="signUp.invite.inviteFormInputGroup";function _(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(O.u.Image,{src:j.W.SignUp.INVITE_COLLEAGUE,className:"d-block mx-auto"}),r.createElement("h2",{className:"h5 text-center"},r.createElement(T.x,{namespace:M,phrase:o?"inviteHeadingTertiary":"inviteHeading"})),r.createElement("p",{className:"text-center"},r.createElement(T.x,{namespace:M,phrase:"inviteSubheading"})),r.createElement("div",{className:"row fw-bold mb-2"},r.createElement("div",{className:"col-4"},r.createElement(T.x,{namespace:M,phrase:"firstName"})),r.createElement("div",{className:"col-8 ps-0"},r.createElement(T.x,{namespace:M,phrase:"workEmailAddress"}),r.createElement("span",{className:"text-danger"},"*"))),t.map(function(e,o){return r.createElement(U,{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=D(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],x.recalculateFields(e,c,a,i)||c})}(o,e,r)},clearInputs:function(){return function(e){e>t.length||n(function(t){var n=D(t);return n[e].data.firstName="",n[e].data.email="",x.recalculateFields(e,n,a,i)||n})}(o)}})}),r.createElement("div",{className:"pt-2 pb-3"},r.createElement(I.m,{showSpinner:e.showSpinner,variant:"dark",className:"btn-lg w-100",onClick:e.onSubmit},r.createElement(T.x,{namespace:M,phrase:"btnInvite",options:{smartCount:l||1}}))))}var R="signUp.invite.inviteFormSuccess";function B(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(O.u.Image,{src:j.W.SignUp.INVITE_COLLEAGUE_SUCCESS,className:"d-block mx-auto"}),r.createElement("h2",{className:"h4"},r.createElement(T.x,{namespace:R,phrase:"inviteSent"})),r.createElement("p",{className:"mb-0"},r.createElement(T.x,{namespace:R,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(T.x,{namespace:R,phrase:"moreInvite"})," ",r.createElement("a",{onClick:e.onInviteMore,className:"info-link p-0"},r.createElement(T.x,{namespace:R,phrase:"inviteMore"}))))}function G(e){var t=e.fields,n=e.setFields,a=e.showSpinner,i=e.onSubmit;return t.length?e.completed?r.createElement(B,{fields:t,onInviteMore:function(t){t.preventDefault(),e.onInviteMore()}}):r.createElement(_,{fields:t,setFields:n,showSpinner:a,onSubmit:i,maxFields:e.maxFields,minFields:e.minFields,isTertiary:e.isTertiary}):r.createElement(r.Fragment,null)}var Z=n(38502),z=a.T.encloseNamespace("signUp.invite.inviteTabs");function H(e){var t=[{name:z("invite"),onSelect:function(){return e.onChangeTab("inviteForm")},active:"inviteForm"===e.activeTab,analyticsData:{name:z("invite")},analyticsOptions:{actionType:l.Vw.Click,entity:l.py.Url,location:l.LZ.MagicTabs}},{name:z("pending"),onSelect:function(){return e.onChangeTab("pendingInvites")},active:"pendingInvites"===e.activeTab,analyticsData:{name:z("pending")},analyticsOptions:{actionType:l.Vw.Click,entity:l.py.Url,location:l.LZ.MagicTabs}}];return r.createElement(Z.r,{className:"d-flex justify-content-center mb-3",tabs:t})}var V=n(42648),W="signUp.invite.pendingInvites";function $(e){return r.createElement("div",{className:"text-center py-4 px-3"},r.createElement(O.u.Image,{src:j.W.SignUp.EMPTY_PENDING_INVITES,className:"d-block mx-auto"}),r.createElement("h2",{className:"h5 mb-0"},r.createElement(T.x,{namespace:W,phrase:"emptyTitle"})),r.createElement("p",null,r.createElement(T.x,{namespace:W,phrase:"emptyDescription"})," ",r.createElement("a",{onClick:function(t){t.preventDefault(),e.onInviteMore()},className:"info-link"},r.createElement(T.x,{namespace:W,phrase:"emptyAction"}))))}const J={avatar:"cin_G",oneLine:"FrlTw",twoLine:"rBQWR",minPendingHeight:"LMnOk"};function K(){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(J.avatar)}),r.createElement("div",{className:"ms-2 w-100"},r.createElement("div",{className:"partial-loading-background mb-1 w-50 ".concat(J.oneLine)}),r.createElement("div",{className:"partial-loading-background w-100 ".concat(J.oneLine)}))),r.createElement("div",{className:"col d-flex align-items-center justify-content-end"},r.createElement("div",{className:"partial-loading-background w-100 ".concat(J.twoLine)})))}function Y(){return r.createElement("div",{className:"px-3"},r.createElement("div",{className:"partial-loading-background w-25 m-2 ".concat(J.oneLine)}),Array(6).fill(null).map(function(e,t){return r.createElement(K,{key:t})}))}var Q,q=n(76306),X=n(97408),ee=n(83914),te=n(35223);!function(e){e.Active="Active",e.Accepted="Accepted",e.Expired="Expired"}(Q||(Q={}));var ne=a.T.encloseNamespace("signUp.helpers"),re={getItemActions:function(e){var t=e.status,n=e.resendInvite,r=e.removeInvite;return t===Q.Accepted?[]:[{label:ne("resendInvite"),onClick:n},{label:ne("removeInvite"),onClick:r,className:"text-danger"}]}},ae=a.T.encloseNamespace("signUp.invite.inviteStatusInfo");function ie(e){return e.status===Q.Accepted?r.createElement(oe,{extraContainerClass:"text-success",renderSvg:function(){return r.createElement(ee.x,{size:ee.S.Small,svgName:te.vn.Check})},text:ae("accepted")}):e.status===Q.Active?r.createElement(oe,{renderSvg:function(){return r.createElement(ee.x,{size:ee.S.Small,svgName:te.vn.PendingCircle,className:"d-inline-block svg-container text-info"})},extraTextClass:"text-secondary",text:ae("active")}):e.status===Q.Expired?r.createElement(oe,{extraContainerClass:"text-danger",renderSvg:function(){return r.createElement(ee.x,{size:ee.S.Small,svgName:te.vn.Close,className:"d-inline-block svg-container"})},text:ae("expired")}):r.createElement(r.Fragment,null)}function oe(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 le={avatar:"VsdKR",email:"L65Cs"};function ce(e){return e.initial?r.createElement(X.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(ee.x,{svgName:te.vn.Email,size:ee.S.Large}))}function se(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=re.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:le.avatar},r.createElement(ce,{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(le.email),title:l},l))),r.createElement("div",{className:"d-flex align-items-center justify-content-between pe-0"},r.createElement(ie,{status:o}),!!c.length&&r.createElement(q.m,{dropdownToggleClassName:"btn btn-link ms-1",actions:c})))}var ue="signUp.invite.pendingInvites";function me(e){var t;return e.isLoading?r.createElement(Y,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(T.x,{namespace:ue,phrase:"heading"})),r.createElement(V.$B,{className:"".concat(J.minPendingHeight)},e.invites.map(function(t,n){return r.createElement(se,{key:n,invite:t,imageCdnUrl:e.imageCdnUrl,removeInvite:e.removeInvite,resendInvite:e.resendInvite})}))):r.createElement($,{onInviteMore:e.onInviteMore})}var fe,pe=n(80247),de=n(66257),ve="signUp.invite.shareInviteLink";function ye(e){return e.showSpinner?r.createElement("div",{className:"text-center w-100"},r.createElement(pe.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(T.x,{namespace:ve,phrase:"title"})),e.link&&r.createElement("button",{className:"btn btn-link info-link p-0 mb-2",onClick:e.onClickDelete},r.createElement(T.x,{namespace:ve,phrase:"delete"}))),e.link?r.createElement(de.k,{value:e.link}):r.createElement("div",{className:"d-flex w-100 justify-content-between"},r.createElement("div",null,r.createElement(ee.x,{svgName:te.vn.Link,className:"me-2 d-inline-block svg-container"}),r.createElement(T.x,{namespace:ve,phrase:"generate"})),r.createElement("button",{className:"btn info-link p-0",onClick:e.onClickCreate},r.createElement(T.x,{namespace:ve,phrase:"create"}))))}!function(e){e.Link="link",e.Direct="direct"}(fe||(fe={}));const be={minHeight:"tWSzO"};function ge(){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 he(s,"_invoke",function(n,r,a){var i,l,c,s=0,u=a||[],m=!1,f={p:0,n:0,v:e,a:p,f:p.bind(e,4),d:function(t,n){return i=t,l=0,c=e,f.n=n,o}};function p(n,r){for(l=n,c=r,t=0;!m&&s&&!a&&t<u.length;t++){var a,i=u[t],p=f.p,d=i[2];n>3?(a=d===r)&&(c=i[(l=i[4])?5:(l=3,3)],i[4]=i[5]=e):i[0]<=p&&((a=n<2&&p<i[1])?(l=0,f.v=r,f.n=i[1]):p<d&&(a=n<3||i[0]>r||r>d)&&(i[4]=n,i[5]=r,f.n=d,l=0))}if(a||n>1)return o;throw m=!0,r}return function(a,u,d){if(s>1)throw TypeError("Generator is already running");for(m&&1===u&&p(u,d),l=u,c=d;(t=l<2?e:c)||!m;){i||(l?l<3?(l>1&&(f.n=-1),p(l,c)):f.n=c:f.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=f.n<0)?c:n.call(r,f))!==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]())):(he(t={},r,function(){return this}),t),m=s.prototype=l.prototype=Object.create(u);function f(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,s):(e.__proto__=s,he(e,a,"GeneratorFunction")),e.prototype=Object.create(m),e}return c.prototype=s,he(m,"constructor",s),he(s,"constructor",c),c.displayName="GeneratorFunction",he(s,a,"GeneratorFunction"),he(m),he(m,a,"Generator"),he(m,r,function(){return this}),he(m,"toString",function(){return"[object Generator]"}),(ge=function(){return{w:i,m:f}})()}function he(e,t,n,r){var a=Object.defineProperty;try{a({},"",{})}catch(e){a=0}he=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){he(e,t,function(e){return this._invoke(t,n,e)})};i("next",0),i("throw",1),i("return",2)}},he(e,t,n,r)}function Ee(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 xe(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)?xe(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 xe(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 we=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())})},Ne=a.T.encloseNamespace("signUp.inviteColleage"),Ce=1,ke=5;function Se(e){var t=Ee(r.useState(e.tab),2),n=t[0],a=t[1],v=Ee(r.useState(!1),2),b=v[0],g=v[1],h=Ee(r.useState(!1),2),E=h[0],w=h[1],N=Ee(r.useState(!1),2),C=N[0],k=N[1],O=Ee(r.useState(function(){return[x.getNewEmptyField()]}),2),I=O[0],T=O[1],j=i.a.useGetFetchAsync(),A=(0,f.Z)(),F=(0,d.B)(),P=i.a.useBasicFetch(m.N.currentUser()),U=i.a.useBasicFetch(u.L.config()),D=i.a.useBasicFetch(y.inviteByType()),L=function(e){return r.useMemo(function(){return e?e.reduce(function(e,t){return t.type===fe.Direct?(e.directInvites.push(t),e):(e.links.push(t),e)},{directInvites:[],links:[]}):{directInvites:null,links:null}},[e])}(D.data),M=L.directInvites,_=L.links,R=null==_?void 0:_[0];function B(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 Z(){w(!1),T([x.getNewEmptyField()]),"inviteForm"!==n&&(a("inviteForm"),k(!1))}var z=P.hasCompleted&&U.hasCompleted&&D.hasCompleted;return r.createElement(c.G,{title:Ne("title"),closePopup:e.closePopup,bodyClassName:"modal-body px-0",showLoadingSpinner:!z},z&&r.createElement(r.Fragment,null,r.createElement("div",{className:be.minHeight},!E&&r.createElement(H,{activeTab:n,onChangeTab:function(e){return a(e)}}),"pendingInvites"===n?r.createElement(me,{imageCdnUrl:U.data.imageCdnUrl,invites:M,onInviteMore:Z,removeInvite:function(e){return we(this,void 0,void 0,ge().m(function t(){var n;return ge().w(function(t){for(;;)switch(t.n){case 0:return t.p=0,t.n=1,j(y.deleteInvite(e));case 1:A.success(Ne("removeSuccess")),t.n=3;break;case 2:t.p=2,n=t.v,A.error(p.M.inviteColleagueError(n));case 3:return t.a(2)}},t,null,[[0,2]])}))},resendInvite:function(e){return we(this,void 0,void 0,ge().m(function t(){var n;return ge().w(function(t){for(;;)switch(t.n){case 0:return t.p=0,t.n=1,j(y.resendInvite(e));case 1:A.success(Ne("resendSuccess")),t.n=3;break;case 2:t.p=2,n=t.v,A.error(p.M.inviteColleagueError(n));case 3:return t.a(2)}},t,null,[[0,2]])}))},isLoading:!D.hasCompleted}):r.createElement(G,{fields:I,setFields:T,showSpinner:C,completed:E,onSubmit:function(){var e;return we(this,void 0,void 0,ge().m(function t(){var n,r,a,i,o,l;return ge().w(function(t){for(;;)switch(t.n){case 0:if(!C){t.n=1;break}return t.a(2);case 1:if(n=S.validate(I),r=n.fieldsWithErrors,!n.hasErrors){t.n=2;break}return T(r),t.a(2);case 2:return t.p=2,k(!0),a=x.getValidFieldsData(I),t.n=3,j(y.invite(a));case 3:return w(!0),B(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 A.error(p.M.inviteColleagueError(i)),t.a(2);case 5:o=x.getInputWithErrors(I,i),T(o);case 6:return t.p=6,k(!1),t.f(6);case 7:return t.a(2)}},t,null,[[2,4,6,7]])}))},onInviteMore:Z,maxFields:ke,minFields:Ce,isTertiary:F})),!E&&r.createElement("div",{className:"px-3"},r.createElement(s.u,null,r.createElement(ye,{onClickCreate:function(){return we(this,void 0,void 0,ge().m(function e(){return ge().w(function(e){for(;;)switch(e.n){case 0:return g(!0),e.p=1,e.n=2,j(y.createInviteLink());case 2:e.n=4;break;case 3:e.p=3,e.v,A.error(Ne("error"));case 4:return e.p=4,g(!1),e.f(4);case 5:return e.a(2)}},e,null,[[1,3,4,5]])}))},onClickDelete:function(){return we(this,void 0,void 0,ge().m(function e(){var t;return ge().w(function(e){for(;;)switch(e.n){case 0:return e.p=0,e.n=1,j(y.deleteInvite(R.id));case 1:A.success(Ne("deleteLinkSuccess")),e.n=3;break;case 2:e.p=2,t=e.v,A.error(p.M.inviteColleagueError(t));case 3:return e.a(2)}},e,null,[[0,2]])}))},link:null==R?void 0:R.inviteUrl,showSpinner:b})))))}},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){d(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 f(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function p(e){return p=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},p(e)}function d(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=p(l);if(c){var n=p(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 f(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 d(f(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,d(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=843-4dbc5df109-lite.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scripts/843-4dbc5df109-lite.chunk.js","mappings":"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","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/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/enums/InviteType.ts","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/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 { 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 &nbsp;\n &#40;{email}&#41;\n </p>\n );\n })}\n </div>\n <p>\n <Text namespace={namespace} phrase='moreInvite' />&nbsp;\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 &nbsp;\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}","/**\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';\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}","// 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 { useAlerts } from 'libs/shared/hooks/UseAlerts';\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 { 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 { 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 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\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\n </div>\n\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","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","metadata","actions","substr","userId","title","ActionsDropdown","dropdownToggleClassName","PendingInvites","isLoading","invites","InviteType","ShareInviteLink","Spinner","as","animation","link","onClickDelete","onClickCreate","MIN_FIELDS","MAX_FIELDS","InviteColleagueView","setTab","showShareLinkSpinner","setShowShareLinkSpinner","formCompleted","setFormCompleted","showFormSpinner","setShowFormSpinner","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","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([[8735],{26136:(e,t,n)=>{n.d(t,{B:()=>o});var r=n(76198),a=n(23481),i=n(64818),s=a.T.encloseNamespace("shared.analyticsUtils");function o(e,t){return e?t?(0,r._8)((n=e.id,a=e.sessionId,o=+"".concat(n||function(e){if(!e)return 0;for(var t=0,n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n),t|=0;return Math.abs(t)}(a)).concat(Math.floor((new Date).getMinutes()/5)),{dictionaries:[r.O9,r.yd],separator:" ",length:2,style:"capital",seed:o})):e.deleted?s("deleted"):i.l.getFullName(e)||s("anonUser"):s("anonUser");var n,a,o}},3218:(e,t,n)=>{n.d(t,{R:()=>S});var r=n(32735),a=n(69087),i=n(26136),s=n(39157),o=n(69186),l=n(86572),u=n(28972),c=n(83140),d=n(80845),m=n(23481),v=n(2102),f=n(36532),g=m.T.encloseNamespace("interactives.studentResponseList");function b(e){var t=Object.keys(e.markedAnswers).length;return r.createElement("div",{className:"d-flex justify-content-end pt-3"},r.createElement("div",null,!e.showSubmitButtonSpinner&&r.createElement("button",{className:"btn btn-link",onClick:e.onClickClose},g("close")),!!e.interactionsToMark.length&&r.createElement(r.Fragment,null,e.isDemo?r.createElement(f.u,{id:"submitAnswers",title:g("demoOnly"),spanHack:!0,spanHackClassName:"d-inline-flex"},r.createElement("button",{className:"btn btn-outline-dark pointer-events-none",disabled:!t},g("submitAnswers"))):r.createElement(v.m,{variant:"outline-dark",onClick:e.onClickSubmit,disabled:!t,showSpinner:e.showSubmitButtonSpinner},g("submitAnswers")))))}var k=m.T.encloseNamespace("interactives.studentResponseList");function h(e){var t=Object.keys(e.markedAnswers).length;return r.createElement("div",{className:"d-flex justify-content-between pb-3"},r.createElement("div",{className:"d-flex"},!!e.summary.unanswered&&r.createElement("div",{className:"bg-light rounded p-2 me-2"},r.createElement("strong",{className:"me-2"},k("unanswered")),e.summary.unanswered),r.createElement("div",{className:"bg-light rounded p-2 me-2"},r.createElement("strong",{className:"me-2"},k("score")),e.summary.awaitingMarking?r.createElement("em",null,k("pending")):"".concat(Math.round(100*e.summary.percentCorrect),"%"))),!!e.interactionsToMark.length&&r.createElement(r.Fragment,null,e.isDemo?r.createElement(f.u,{id:"submitAnswers",title:k("demoOnly"),spanHack:!0},r.createElement("button",{className:"btn btn-outline-dark pointer-events-none",disabled:!t},k("submitAnswers"))):r.createElement(v.m,{variant:"outline-dark",onClick:e.onClickSubmit,disabled:!t,showSpinner:e.showSubmitButtonSpinner},k("submitAnswers"))))}const y={awaitingMarking:"MvGb5"};function p(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,s,o=[],l=!0,u=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=i.call(n)).done)&&(o.push(r.value),o.length!==t);l=!0);}catch(e){u=!0,a=e}finally{try{if(!l&&null!=n.return&&(s=n.return(),Object(s)!==s))return}finally{if(u)throw a}}return o}}(e,t)||function(e,t){if(e){if("string"==typeof e)return w(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?w(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function w(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function S(e){var t,n,m,v,f=p(r.useState(!1),2),g=f[0],k=f[1],w=(t=r.useRef(null),n=p(r.useState(!1),2),m=n[0],v=n[1],r.useEffect(function(){t.current&&!m&&(v(!0),requestAnimationFrame(function(){return t.current.scrollIntoView({behavior:"smooth",block:"center"})}))},[t.current,m]),t),S=(0,s.Rt)(e.interactive,e.studentResults),A=(0,d.Q)(e.interactive),E=function(e,t){return e.filter(function(e){return c.A.isInteractionCorrect(e,(0,d.j_)(t))===u.w.AwaitingMarking})}(A,e.studentResults);function C(){k(!0),e.submitMarkedAnswers()}return r.createElement(r.Fragment,null,r.createElement(h,{summary:S,interactionsToMark:E,markedAnswers:e.markedAnswers,onClickSubmit:C,showSubmitButtonSpinner:g,isDemo:e.isDemo}),r.createElement("ul",{className:"list-unstyled"},A.map(function(t,n){var u,c=t.id.toString()===(null===(u=e.selectedInteractionId)||void 0===u?void 0:u.toString()),d=E.some(function(e){return e.id===t.id}),m=(0,i.B)(e.studentResults.user,e.anonymiseUsers),v="p-2 mb-3 rounded";return c&&(v+=" border-2 border-info shadow"),v+=d?" ".concat(y.awaitingMarking):" border",r.createElement("li",{key:n,className:v,ref:c?w:null},r.createElement("div",{className:"d-flex mb-2"},r.createElement(l.y,{interaction:t,iconClassName:"flex-shrink-0"})),e.reportsStyling?r.createElement(o.O,{interaction:t,studentResults:e.studentResults,markedStatus:(0,s.HI)(t.id,e.studentResults,e.markedAnswers),markInteraction:e.addMarkedAnswers,imageCdnUrl:e.imageCdnUrl,anonymisedUserName:m,className:"bg-light ps-2",showFeedback:!0,reportsStyling:!0,responseComponentClass:"mx-n2"}):r.createElement(a.d,{interaction:t,studentResults:e.studentResults,markedStatus:(0,s.HI)(t.id,e.studentResults,e.markedAnswers),markInteraction:e.addMarkedAnswers,imageCdnUrl:e.imageCdnUrl,anonymisedUserName:m,showFeedback:!0}))})),r.createElement(b,{interactionsToMark:E,markedAnswers:e.markedAnswers,onClickSubmit:C,onClickClose:e.onClickClose,showSubmitButtonSpinner:g,isDemo:e.isDemo}))}},94892:(e,t,n)=>{n.d(t,{T:()=>a,i:()=>r});var r={HIGH:.75,MODERATE:.5},a={HIGH:.7,MODERATE:.7}},94644:(e,t,n)=>{n.d(t,{r:()=>c});var r=n(50242),a=n(81886),i=n(67058),s=n(14553),o=n(49267),l=n(49075),u={notFound:i.d,forbidden:{rating:s.q,yearLevel:s.q,region:o.a,privacy:s.q},badRequest:l._,internalServerError:l._};function c(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e){var i;i="number"==typeof e?e:e.status;var s=Object.assign(Object.assign({},u),t);i&&a.Q.Ry.isStatusCodeError(i)&&(i!==r.o.InternalServer?i!==r.o.NotFound?i!==r.o.Forbidden?n.badRequest||a.Q.Ry.throw(new s.badRequest):n.forbidden||a.Q.Ry.throw(new s.forbidden.privacy):n.notFound||a.Q.Ry.throw(new s.notFound):n.internalServerError||a.Q.Ry.throw(new l._))}}},54405:(e,t,n)=>{n.d(t,{X:()=>r});var r={interactive:function(){return{url:"/mocks/insights/interactive.json",key:"demo:interactive",normalize:!1}},interactiveMetadata:function(){return{url:"/mocks/insights/interactive-metadata.json",key:"demo:interactive:metadata",normalize:!1}},interactiveResults:function(){return{url:"/mocks/insights/interactive-results.json",key:"demo:interactive:results",normalize:!1}},videoViews:function(){return{url:"/mocks/insights/video-views.json",key:"demo:video:views",normalize:!1}},users:function(){return{url:"/mocks/insights/users.json",key:"demo:users",normalize:!1}},individualHeatmap:function(){return{url:"/mocks/insights/individual-heatmap.json",key:"demo:individual:heatmap",normalize:!1}},aggregateHeatmap:function(){return{url:"/mocks/insights/aggregate-heatmap.json",key:"demo:aggregate:heatmap",normalize:!1}}}},91286:(e,t,n)=>{n.d(t,{v:()=>s});var r=n(32735),a=n(94644);function i(e){return e.map(function(e){return e.statusCode}).join(":")}function s(e,t,n){var s=Array.isArray(e)?e:[e];(0,r.useEffect)(function(){s.forEach(function(e){(0,a.r)(e.statusCode,t,n)})},[i(s),t,n])}},93322:(e,t,n)=>{n.d(t,{F:()=>i});var r=n(32735),a=n(13126);function i(){r.useEffect(function(){return a.e.lockContentWidth(),function(){return a.e.unlockContentWidth()}},[])}},55588:(e,t,n)=>{n.r(t),n.d(t,{InteractiveStudentResultsDemoView:()=>y});var r=n(32735),a=n(23481),i=n(20354),s=n(2948),o=n(9193),l=n(26136),u=n(3218),c=n(9111),d=n(38143),m=n(39151),v=n(54405),f=n(82541),g=n(91286),b=n(93322);function k(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 h=a.T.encloseNamespace("shared.interactiveStudentResults");function y(e){var t,n,a,y,p,w=(y=(0,s.D)(d.g.ANONYMISE_USERS),p=1,function(e){if(Array.isArray(e))return e}(y)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,s,o=[],l=!0,u=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=i.call(n)).done)&&(o.push(r.value),o.length!==t);l=!0);}catch(e){u=!0,a=e}finally{try{if(!l&&null!=n.return&&(s=n.return(),Object(s)!==s))return}finally{if(u)throw a}}return o}}(y,p)||function(e,t){if(e){if("string"==typeof e)return k(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)?k(e,t):void 0}}(y,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.")}())[0];(0,b.F)();var S=i.a.useBasicFetch(v.X.interactiveMetadata()),A=i.a.useBasicFetch(v.X.interactive()),E=i.a.useBasicFetch(v.X.interactiveResults()),C=i.a.useBasicFetch(m.L.config());(0,g.v)([S,E]),(0,f.b)(S);var R=(0,o.D)(null===(t=A.data)||void 0===t?void 0:t.id,null===(n=S.data)||void 0===n?void 0:n.id,e.closePopup),I=R.markedAnswers,M=R.addMarkedAnswers,N=R.submitMarkedAnswers,j=null===(a=E.data)||void 0===a?void 0:a.students.find(function(t){var n,r,a,i,s,o;return e.userId?(null===(r=null===(n=t.user)||void 0===n?void 0:n.id)||void 0===r?void 0:r.toString())===(null===(a=e.userId)||void 0===a?void 0:a.toString()):!!e.sessionId&&(null===(s=null===(i=t.user)||void 0===i?void 0:i.sessionId)||void 0===s?void 0:s.toString())===(null===(o=e.sessionId)||void 0===o?void 0:o.toString())}),F=j?h("heading",{studentName:(0,l.B)(j.user,w)}):"",O=!!A.data&&!!E.data&&!!C.data;return r.createElement(c.G,{title:F,showLoadingSpinner:!O,closePopup:e.closePopup,size:"lg"},O&&r.createElement(u.R,{interactive:A.data,studentResults:j,markedAnswers:I,addMarkedAnswers:M,submitMarkedAnswers:N,imageCdnUrl:C.data.imageCdnUrl,selectedInteractionId:e.interactionId,onClickClose:e.closePopup,anonymiseUsers:w,reportsStyling:e.reportsStyling,isDemo:!0}))}}}]);
2
- //# sourceMappingURL=8735-e74a148502-lite.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scripts/8735-e74a148502-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/apps/analytics/utils/AnonymiseUserUtils.ts","file:///app/packages/libs/shared/src/apps/student-response-list/StudentResponseListFooter.tsx","file:///app/packages/libs/shared/src/apps/student-response-list/StudentResponseListHeader.tsx","file:///app/packages/libs/shared/src/apps/student-response-list/student-response-list.scss","file:///app/packages/libs/shared/src/apps/student-response-list/StudentResponseList.tsx","file:///app/packages/libs/shared/src/constants/ScoreThresholds.ts","file:///app/packages/libs/shared/src/errors/handlers/HttpErrorHandlers.ts","file:///app/packages/libs/shared/src/flight-requests/InsightsDemoRequests.ts","file:///app/packages/libs/shared/src/hooks/UseHandleObjectError.ts","file:///app/packages/libs/shared/src/hooks/useLockContentWidth.ts","file:///app/packages/projects/lite/src/apps/my-shares/views/demo/interactive-student-results/InteractiveStudentResultsDemoView.tsx"],"sourcesContent":["import { animals, colors, Config as UniqueNamesConfig, uniqueNamesGenerator } from 'unique-names-generator';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { AnonUser } from 'libs/shared/interfaces/models/interactive-results/AnonUser';\nimport { UserHelper } from 'libs/shared/utils/UserHelper';\n\nconst namespace = 'shared.analyticsUtils';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction guidToSeed(guid: string): number {\n if (!guid)\n return 0;\n\n // Simple hash function (DJB2-like) for browsers\n let hash = 0;\n for (let i = 0; i < guid.length; i++) {\n const char = guid.charCodeAt(i);\n hash = ((hash << 5) - hash) + char;\n hash |= 0; // Convert to 32bit integer\n }\n return Math.abs(hash);\n}\n\nfunction getUniqueNamesConfig(userId: string, sessionId: string): UniqueNamesConfig {\n /**\n * Generate a seed that is unique to each user but changes every 5 minutes.\n * \n * We use a seed so that if the same user's name is anonymised multiple times\n * in quick succession (e.g. multiple renders), the same name will be returned each time.\n * \n * We change the seed every 5 minutes so that students don't always have the same name.\n */\n const seed = +`${userId || guidToSeed(sessionId)}${Math.floor((new Date()).getMinutes() / 5)}`;\n\n return {\n dictionaries: [ colors, animals ],\n separator: ' ',\n length: 2,\n style: 'capital',\n seed\n };\n}\n\nexport function anonymiseUserName(user: AnonUser, shouldAnonymise: boolean): string {\n if (!user) {\n return getPhrase('anonUser');\n }\n\n if (!shouldAnonymise) {\n if (user.deleted)\n return getPhrase('deleted');\n\n return UserHelper.getFullName(user) || getPhrase('anonUser');\n }\n\n return uniqueNamesGenerator(getUniqueNamesConfig(user.id, user.sessionId));\n}\n","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { MarkedAnswerHash } from 'libs/shared/apps/analytics/hooks/UseMarkAnswers';\nimport { SpinnerButton } from 'libs/shared/components/spinner-button/SpinnerButton';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { Interaction } from 'libs/shared/interfaces';\n\nconst namespace = 'interactives.studentResponseList';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface StudentResponseListFooterProps {\n interactionsToMark: Interaction[];\n markedAnswers: MarkedAnswerHash;\n onClickSubmit: () => void;\n onClickClose: () => void;\n showSubmitButtonSpinner: boolean;\n isDemo?: boolean;\n}\n\nexport function StudentResponseListFooter(props: StudentResponseListFooterProps): JSX.Element {\n const numMarkedAnswers = Object.keys(props.markedAnswers).length;\n\n return (\n <div className='d-flex justify-content-end pt-3'>\n <div>\n {!props.showSubmitButtonSpinner &&\n <button className='btn btn-link' onClick={props.onClickClose}>\n {getPhrase('close')}\n </button>\n }\n {!!props.interactionsToMark.length && (\n <>\n {props.isDemo ? (\n <Tooltip\n id='submitAnswers'\n title={getPhrase('demoOnly')}\n spanHack\n spanHackClassName='d-inline-flex'\n >\n <button\n className='btn btn-outline-dark pointer-events-none'\n disabled={!numMarkedAnswers}\n >\n {getPhrase('submitAnswers')}\n </button>\n </Tooltip>\n ) : (\n <SpinnerButton\n variant='outline-dark'\n onClick={props.onClickSubmit}\n disabled={!numMarkedAnswers}\n showSpinner={props.showSubmitButtonSpinner}\n >\n {getPhrase('submitAnswers')}\n </SpinnerButton>\n )}\n </>\n )}\n </div>\n </div>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { MarkedAnswerHash } from 'libs/shared/apps/analytics/hooks/UseMarkAnswers';\nimport { ResultsSummary } from 'libs/shared/apps/analytics/interfaces/ResultsSummary';\nimport { SpinnerButton } from 'libs/shared/components/spinner-button/SpinnerButton';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { Interaction } from 'libs/shared/interfaces';\n\nconst namespace = 'interactives.studentResponseList';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface StudentResponseListHeaderProps {\n summary: ResultsSummary;\n interactionsToMark: Interaction[];\n markedAnswers: MarkedAnswerHash;\n onClickSubmit: () => void;\n showSubmitButtonSpinner: boolean;\n isDemo?: boolean;\n}\n\nexport function StudentResponseListHeader(props: StudentResponseListHeaderProps): JSX.Element {\n const numMarkedAnswers = Object.keys(props.markedAnswers).length;\n\n return (\n <div className='d-flex justify-content-between pb-3'>\n <div className='d-flex'>\n {!!props.summary.unanswered &&\n <div className='bg-light rounded p-2 me-2'>\n <strong className='me-2'>{getPhrase('unanswered')}</strong>\n {props.summary.unanswered}\n </div>\n }\n <div className='bg-light rounded p-2 me-2'>\n <strong className='me-2'>{getPhrase('score')}</strong>\n {props.summary.awaitingMarking\n ? <em>{getPhrase('pending')}</em>\n : `${Math.round(props.summary.percentCorrect * 100)}%`\n }\n </div>\n </div>\n {!!props.interactionsToMark.length && (\n <>\n {props.isDemo ? (\n <Tooltip id='submitAnswers' title={getPhrase('demoOnly')} spanHack>\n <button\n className='btn btn-outline-dark pointer-events-none'\n disabled={!numMarkedAnswers}\n >\n {getPhrase('submitAnswers')}\n </button>\n </Tooltip>\n ) : (\n <SpinnerButton\n variant='outline-dark'\n onClick={props.onClickSubmit}\n disabled={!numMarkedAnswers}\n showSpinner={props.showSubmitButtonSpinner}\n >\n {getPhrase('submitAnswers')}\n </SpinnerButton>\n )}\n </>\n )}\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"awaitingMarking\":\"MvGb5\"};","import React from 'react';\n\nimport { InteractionResponseItem } from 'libs/shared/apps/analytics/components/questions-list/interaction-response-item/InteractionResponseItem';\nimport { MarkedAnswerHash } from 'libs/shared/apps/analytics/hooks/UseMarkAnswers';\nimport { anonymiseUserName } from 'libs/shared/apps/analytics/utils/AnonymiseUserUtils';\nimport { getMarkedStatus, getStudentResultsSummary } from 'libs/shared/apps/analytics/utils/InteractiveUtils';\nimport { InteractionResponse } from 'libs/shared/components/interaction-response/InteractionResponse';\nimport { InteractionLabel } from 'libs/shared/components/interactive-questions/InteractionLabel';\nimport { InteractionCorrectness } from 'libs/shared/enums/InteractionCorrectness';\nimport { InteractiveAnswerStatus } from 'libs/shared/enums/InteractiveAnswerStatus';\nimport { Interaction, Interactive, StudentAnswer, StudentResults } from 'libs/shared/interfaces';\nimport { InteractiveCorrectnessHelper } from 'libs/shared/utils/InteractiveCorrectnessHelper';\nimport { getInteractions, getStudentResult } from 'libs/shared/utils/InteractiveHelper';\n\nimport { StudentResponseListFooter } from './StudentResponseListFooter';\nimport { StudentResponseListHeader } from './StudentResponseListHeader';\n\nimport styles from './student-response-list.scss';\n\nfunction getInteractionsToMark(\n interactions: Interaction[],\n studentResults: StudentResults\n): Interaction[] {\n return interactions.filter(i => {\n return InteractiveCorrectnessHelper.isInteractionCorrect(\n i,\n getStudentResult(studentResults)\n ) === InteractionCorrectness.AwaitingMarking;\n });\n}\n\n// eslint-disable-next-line rulesdir/require-view-title\nfunction useScrollSelectedInteractionIntoView(): React.MutableRefObject<HTMLLIElement> {\n const ref = React.useRef<HTMLLIElement>(null);\n const [ scrolled, setScrolled ] = React.useState(false);\n\n // Only scroll once\n React.useEffect(() => {\n if (!ref.current || scrolled)\n return;\n\n setScrolled(true);\n requestAnimationFrame(() => ref.current.scrollIntoView({ behavior: 'smooth', block: 'center' }));\n }, [ ref.current, scrolled ]);\n\n return ref;\n}\n\ninterface StudentResponseListProps {\n interactive: Interactive;\n markedAnswers: MarkedAnswerHash;\n studentResults: StudentResults;\n addMarkedAnswers: (answer: StudentAnswer[], status: InteractiveAnswerStatus) => void;\n submitMarkedAnswers: () => void;\n onClickClose: () => void;\n imageCdnUrl: string;\n selectedInteractionId?: string;\n anonymiseUsers: boolean;\n reportsStyling?: boolean;\n isDemo?: boolean;\n}\n\nexport function StudentResponseList(props: StudentResponseListProps): JSX.Element {\n const [ showSpinner, setShowSpinner ] = React.useState(false);\n const selectedInteractionRef = useScrollSelectedInteractionIntoView();\n\n const summary = getStudentResultsSummary(props.interactive, props.studentResults);\n const interactions = getInteractions(props.interactive);\n const questionsToMark = getInteractionsToMark(interactions, props.studentResults);\n\n function onClickSubmit(): void {\n setShowSpinner(true);\n props.submitMarkedAnswers();\n }\n\n return (\n <>\n <StudentResponseListHeader\n summary={summary}\n interactionsToMark={questionsToMark}\n markedAnswers={props.markedAnswers}\n onClickSubmit={onClickSubmit}\n showSubmitButtonSpinner={showSpinner}\n isDemo={props.isDemo}\n />\n <ul className='list-unstyled'>\n {interactions.map((interaction, idx) => {\n const isSelected = interaction.id.toString() === props.selectedInteractionId?.toString();\n const markingRequired = questionsToMark.some(q => q.id === interaction.id);\n const anonymisedUserName = anonymiseUserName(\n props.studentResults.user,\n props.anonymiseUsers\n );\n\n let className = 'p-2 mb-3 rounded';\n\n if (isSelected)\n className += ' border-2 border-info shadow';\n\n if (markingRequired)\n className += ` ${styles.awaitingMarking}`;\n else\n className += ' border';\n\n return (\n <li key={idx} className={className} ref={isSelected ? selectedInteractionRef : null}>\n <div className='d-flex mb-2'>\n <InteractionLabel\n interaction={interaction}\n iconClassName='flex-shrink-0'\n />\n </div>\n {props.reportsStyling ? (\n <InteractionResponse\n interaction={interaction}\n studentResults={props.studentResults}\n markedStatus={getMarkedStatus(interaction.id, props.studentResults, props.markedAnswers)}\n markInteraction={props.addMarkedAnswers}\n imageCdnUrl={props.imageCdnUrl}\n anonymisedUserName={anonymisedUserName}\n className='bg-light ps-2'\n showFeedback\n reportsStyling\n responseComponentClass='mx-n2'\n />\n ) : (\n <InteractionResponseItem\n interaction={interaction}\n studentResults={props.studentResults}\n markedStatus={getMarkedStatus(interaction.id, props.studentResults, props.markedAnswers)}\n markInteraction={props.addMarkedAnswers}\n imageCdnUrl={props.imageCdnUrl}\n anonymisedUserName={anonymisedUserName}\n showFeedback\n />\n )}\n </li>\n );\n })}\n </ul>\n <StudentResponseListFooter\n interactionsToMark={questionsToMark}\n markedAnswers={props.markedAnswers}\n onClickSubmit={onClickSubmit}\n onClickClose={props.onClickClose}\n showSubmitButtonSpinner={showSpinner}\n isDemo={props.isDemo}\n />\n </>\n );\n}","export interface ScoreThresholds {\n HIGH: number;\n MODERATE: number;\n}\n\nexport const ScoreThresholdDefaults: ScoreThresholds = {\n HIGH: 0.75,\n MODERATE: 0.5\n};\n\nexport const ScoreThresholdInsights: ScoreThresholds = {\n HIGH: 0.7,\n MODERATE: 0.7\n};","import { BaseError } from 'libs/common/backbone/core/BaseError';\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { Xhr } from 'libs/common/backbone/interfaces';\nimport { Core } from 'libs/common/core';\n\nimport { NotFoundError } from 'libs/shared/errors/general/not-found/NotFoundError';\nimport { PrivateResourceError } from 'libs/shared/errors/general/private-resource/PrivateResourceError';\nimport { RegionLockedResourceError } from 'libs/shared/errors/general/region-locked-resource/RegionLockedResourceError';\nimport { UnspecifiedError } from 'libs/shared/errors/general/unspecified-error/UnspecifiedError';\nimport { VideoTypes } from 'libs/shared/interfaces';\n\nexport interface HttpErrorMap {\n notFound?: new () => BaseError;\n forbidden?: {\n rating?: new (description: string) => BaseError;\n yearLevel?: new (description: string) => BaseError;\n region?: new () => BaseError;\n privacy?: new (video?: VideoTypes) => BaseError;\n };\n badRequest?: new () => BaseError;\n internalServerError?: new () => BaseError;\n}\n\nexport type IgnoreHttpErrorMap = {\n [key in keyof HttpErrorMap]: boolean;\n};\n\nconst defaultErrors: HttpErrorMap = {\n notFound: NotFoundError,\n forbidden: {\n rating: PrivateResourceError,\n yearLevel: PrivateResourceError,\n region: RegionLockedResourceError,\n privacy: PrivateResourceError\n },\n badRequest: UnspecifiedError,\n internalServerError: UnspecifiedError\n};\n\nexport function handleHttpError(\n info: HttpStatus | Xhr,\n customErrorMap: HttpErrorMap = {},\n /**\n * Prevent certain errors in the errorMap from being thrown\n * so that you may implement your own handler\n */\n ignoreMap: IgnoreHttpErrorMap = {}\n): void {\n if (!info)\n return;\n\n let statusCode: HttpStatus;\n\n if (typeof(info) === 'number') {\n statusCode = info;\n } else {\n statusCode = info.status;\n }\n\n const errorMap = {\n ...defaultErrors,\n ...customErrorMap\n };\n\n if (!statusCode)\n return;\n\n if (!Core.ErrorHelper.isStatusCodeError(statusCode))\n return;\n\n if (statusCode === HttpStatus.InternalServer) {\n if (!ignoreMap.internalServerError)\n Core.ErrorHelper.throw(new UnspecifiedError());\n return;\n }\n\n if (statusCode === HttpStatus.NotFound) {\n if (!ignoreMap.notFound)\n Core.ErrorHelper.throw(new errorMap.notFound());\n return;\n }\n\n if (statusCode === HttpStatus.Forbidden) {\n /**\n * TODO: Work out how to go about handling all forbidden errors, such as region locking, year levels,\n * ratings, and privacy.\n */\n if (!ignoreMap.forbidden)\n Core.ErrorHelper.throw(new errorMap.forbidden.privacy());\n return;\n }\n\n if (!ignoreMap.badRequest)\n Core.ErrorHelper.throw(new errorMap.badRequest());\n}\n\nexport function handleXhrError(xhr: Xhr, customErrorMap?: HttpErrorMap): void {\n handleHttpError(xhr.status, customErrorMap);\n}","import { Flight } from 'libs/common/react/index';\n\nexport const InsightsDemoRequests = {\n interactive(): Flight.Request {\n return {\n url: `/mocks/insights/interactive.json`,\n key: `demo:interactive`,\n normalize: false\n };\n },\n\n interactiveMetadata(): Flight.Request {\n return {\n url: `/mocks/insights/interactive-metadata.json`,\n key: `demo:interactive:metadata`,\n normalize: false\n };\n },\n\n interactiveResults(): Flight.Request {\n return {\n url: `/mocks/insights/interactive-results.json`,\n key: `demo:interactive:results`,\n normalize: false\n };\n },\n\n videoViews(): Flight.Request {\n return {\n url: `/mocks/insights/video-views.json`,\n key: `demo:video:views`,\n normalize: false\n };\n },\n\n users(): Flight.Request {\n return {\n url: `/mocks/insights/users.json`,\n key: `demo:users`,\n normalize: false\n };\n },\n\n individualHeatmap(): Flight.Request {\n return {\n url: `/mocks/insights/individual-heatmap.json`,\n key: `demo:individual:heatmap`,\n normalize: false\n };\n },\n\n aggregateHeatmap(): Flight.Request {\n return {\n url: `/mocks/insights/aggregate-heatmap.json`,\n key: `demo:aggregate:heatmap`,\n normalize: false\n };\n }\n};","import { useEffect } from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { handleHttpError, HttpErrorMap, IgnoreHttpErrorMap } from 'libs/shared/errors/handlers/HttpErrorHandlers';\n\nfunction generateCacheKey(flightObjs: Array<Flight.Response<any>>): string {\n return flightObjs.map(obj => obj.statusCode).join(':');\n}\n\n// TODO: Change this to just `useHandleHttpError` and only accept a status code.\nexport function useHandleObjectError(\n _flightObjs: Flight.Response<any> | Array<Flight.Response<any>>,\n customErrors?: HttpErrorMap,\n ignoreErrors?: IgnoreHttpErrorMap\n): void {\n const flightObjs = Array.isArray(_flightObjs) ? _flightObjs : [_flightObjs];\n\n useEffect(() => {\n flightObjs.forEach(obj => {\n handleHttpError(obj.statusCode, customErrors, ignoreErrors);\n });\n }, [ generateCacheKey(flightObjs), customErrors, ignoreErrors ]);\n}","import React from 'react';\n\nimport { LayoutHelper } from 'libs/shared/utils/LayoutHelper';\n\nexport function useLockContentWidth(): void {\n React.useEffect(() => {\n LayoutHelper.lockContentWidth();\n return () => LayoutHelper.unlockContentWidth();\n }, []);\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\nimport { useViewModel } from 'libs/common/react/hooks/UseViewModel';\n\nimport { useMarkAnswers } from 'libs/shared/apps/analytics/hooks/UseMarkAnswers';\nimport { anonymiseUserName } from 'libs/shared/apps/analytics/utils/AnonymiseUserUtils';\nimport { StudentResponseList } from 'libs/shared/apps/student-response-list/StudentResponseList';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { SharedViewModelKeys } from 'libs/shared/constants/SharedViewModelKeys';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { InsightsDemoRequests } from 'libs/shared/flight-requests/InsightsDemoRequests';\nimport { useCannotConsumeError } from 'libs/shared/hooks/useCannotConsumeError';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { useLockContentWidth } from 'libs/shared/hooks/useLockContentWidth';\nimport { Config, Interactive, InteractiveMetadata, InteractiveResultSet } from 'libs/shared/interfaces';\nimport { PopupViewProps } from 'libs/shared/interfaces';\n\nconst namespace = 'shared.interactiveStudentResults';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface InteractiveStudentResultsViewProps extends PopupViewProps {\n userId: string;\n interactiveId: string;\n interactionId?: string;\n reportsStyling?: boolean;\n sessionId?: string;\n}\n\nexport function InteractiveStudentResultsDemoView(props: InteractiveStudentResultsViewProps): JSX.Element {\n const [anonymiseUsers] = useViewModel<boolean>(SharedViewModelKeys.ANONYMISE_USERS);\n\n useLockContentWidth();\n\n const interactiveMetadata = Flight.useBasicFetch<InteractiveMetadata>(\n InsightsDemoRequests.interactiveMetadata()\n );\n const interactive = Flight.useBasicFetch<Interactive>(InsightsDemoRequests.interactive());\n\n const results = Flight.useBasicFetch<InteractiveResultSet>(InsightsDemoRequests.interactiveResults());\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n useHandleObjectError([ interactiveMetadata, results ]);\n useCannotConsumeError(interactiveMetadata);\n\n const { markedAnswers, addMarkedAnswers, submitMarkedAnswers } = useMarkAnswers(\n interactive.data?.id,\n interactiveMetadata.data?.id,\n props.closePopup\n );\n\n const studentResults = results.data?.students.find(s => {\n if (props.userId)\n return s.user?.id?.toString() === props.userId?.toString();\n\n if (props.sessionId)\n return s.user?.sessionId?.toString() === props.sessionId?.toString();\n\n return false;\n });\n\n const popupTitle = studentResults\n ? getPhrase('heading', { studentName: anonymiseUserName(studentResults.user, anonymiseUsers) })\n : '';\n const dataLoaded = !!interactive.data && !!results.data && !!config.data;\n\n return (\n <Popup\n title={popupTitle}\n showLoadingSpinner={!dataLoaded}\n closePopup={props.closePopup}\n size='lg'\n >\n {dataLoaded &&\n <StudentResponseList\n interactive={interactive.data}\n studentResults={studentResults}\n markedAnswers={markedAnswers}\n addMarkedAnswers={addMarkedAnswers}\n submitMarkedAnswers={submitMarkedAnswers}\n imageCdnUrl={config.data.imageCdnUrl}\n selectedInteractionId={props.interactionId}\n onClickClose={props.closePopup}\n anonymiseUsers={anonymiseUsers}\n reportsStyling={props.reportsStyling}\n isDemo\n />\n }\n </Popup>\n );\n}"],"names":["getPhrase","anonymiseUserName","user","shouldAnonymise","userId","id","sessionId","seed","guid","hash","i","length","charCodeAt","Math","abs","guidToSeed","floor","Date","getMinutes","dictionaries","separator","style","deleted","LanguageService","StudentResponseListFooter","props","numMarkedAnswers","Object","keys","markedAnswers","className","showSubmitButtonSpinner","onClick","onClickClose","interactionsToMark","isDemo","Tooltip","title","spanHack","spanHackClassName","disabled","SpinnerButton","variant","onClickSubmit","showSpinner","StudentResponseListHeader","summary","unanswered","awaitingMarking","round","percentCorrect","StudentResponseList","ref","scrolled","setScrolled","setShowSpinner","selectedInteractionRef","current","requestAnimationFrame","scrollIntoView","behavior","block","interactive","studentResults","interactions","questionsToMark","filter","InteractiveCorrectnessHelper","InteractionCorrectness","getInteractionsToMark","submitMarkedAnswers","map","interaction","idx","isSelected","toString","selectedInteractionId","markingRequired","some","q","anonymisedUserName","anonymiseUsers","key","InteractionLabel","iconClassName","reportsStyling","InteractionResponse","markedStatus","markInteraction","addMarkedAnswers","imageCdnUrl","showFeedback","responseComponentClass","InteractionResponseItem","ScoreThresholdDefaults","HIGH","MODERATE","ScoreThresholdInsights","defaultErrors","notFound","forbidden","rating","yearLevel","region","privacy","badRequest","internalServerError","handleHttpError","info","customErrorMap","ignoreMap","statusCode","status","errorMap","InsightsDemoRequests","url","normalize","interactiveMetadata","interactiveResults","videoViews","users","individualHeatmap","aggregateHeatmap","generateCacheKey","flightObjs","obj","join","useHandleObjectError","_flightObjs","customErrors","ignoreErrors","Array","isArray","useEffect","forEach","useLockContentWidth","InteractiveStudentResultsDemoView","results","config","data","closePopup","students","find","s","popupTitle","studentName","dataLoaded","showLoadingSpinner","size","interactionId"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[8856],{41196:(e,t,a)=>{a.d(t,{W:()=>o});var r=a(20354),n=a(93479),i=a(20768),s=a(31949);function o(e,t,a){var o,l=r.a.useBasicFetch(s.N.currentUser()),c=r.a.useBasicFetch(!!e&&i.b.interactiveMetadata(e)),u=r.a.useBasicFetch(!!(null===(o=c.data)||void 0===o?void 0:o.interactiveId)&&i.b.interactive(c.data.interactiveId)),d=!!l.data&&!!u.data;return r.a.useBasicFetch(d&&n.I.interactiveResultSet(c.data.interactiveId,c.data.id,l.data,t,a))}},94644:(e,t,a)=>{a.d(t,{r:()=>u});var r=a(50242),n=a(81886),i=a(67058),s=a(14553),o=a(49267),l=a(49075),c={notFound:i.d,forbidden:{rating:s.q,yearLevel:s.q,region:o.a,privacy:s.q},badRequest:l._,internalServerError:l._};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 s=Object.assign(Object.assign({},c),t);i&&n.Q.Ry.isStatusCodeError(i)&&(i!==r.o.InternalServer?i!==r.o.NotFound?i!==r.o.Forbidden?a.badRequest||n.Q.Ry.throw(new s.badRequest):a.forbidden||n.Q.Ry.throw(new s.forbidden.privacy):a.notFound||n.Q.Ry.throw(new s.notFound):a.internalServerError||n.Q.Ry.throw(new l._))}}},39902:(e,t,a)=>{a.d(t,{FN:()=>f,SW:()=>v,fh:()=>h});var r=a(32735),n=a(20354),i=a(75896);function s(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)||o(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(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}}function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,r=Array(t);a<t;a++)r[a]=e[a];return r}function c(e){return c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},c(e)}function u(e,t,a){return(t=function(e){var t=function(e){if("object"!=c(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var a=t.call(e,"string");if("object"!=c(a))return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==c(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}var d=function(e,t){var a={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(a[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(r=Object.getOwnPropertySymbols(e);n<r.length;n++)t.indexOf(r[n])<0&&Object.prototype.propertyIsEnumerable.call(e,r[n])&&(a[r[n]]=e[r[n]])}return a},m=50;function h(e,t){var a=i.m.chunk(e,m).map(function(e){return t(i.m.uniq(e))}),r=n.a.useBasicFetchAll(a),s=i.m.flatten(r.data),o=r.data.length?s.reduce(function(e,t){return Object.assign(Object.assign({},e),u({},t.id,t))},{}):null;return{itemsArr:s,items:o,isFetching:r.isFetching,hasCompleted:r.hasCompleted}}function f(e,t,a){var n=null!=a?a:function(e){return"object"===c(e)?e.id:e},i=v({getRequest:t,_getKey:a}),s=i.fetchItems,o=d(i,["fetchItems"]);return r.useEffect(function(){(null==e?void 0:e.length)&&s(e)},[null==e?void 0:e.map(n).join(",")]),o}function v(e){var t,a,l,d,h,f=null!==(t=e._getKey)&&void 0!==t?t:function(e){return"object"===c(e)?e.id:e},v=r.useRef(new Set),g=(d=r.useState([]),h=2,function(e){if(Array.isArray(e))return e}(d)||function(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var r,n,i,s,o=[],l=!0,c=!1;try{if(i=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;l=!1}else for(;!(l=(r=i.call(a)).done)&&(o.push(r.value),o.length!==t);l=!0);}catch(e){c=!0,n=e}finally{try{if(!l&&null!=a.return&&(s=a.return(),Object(s)!==s))return}finally{if(c)throw n}}return o}}(d,h)||o(d,h)||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=g[0],y=g[1],b=n.a.useBasicFetchAll(p),I=i.m.flatten(b.data),S=b.data.length?I.reduce(function(e,t){return Object.assign(Object.assign({},e),u({},f(t),t))},{}):null;return{hasFirstRequestCompleted:!!(null===(l=null===(a=b.responses)||void 0===a?void 0:a[0])||void 0===l?void 0:l.hasCompleted),itemsArr:I,items:S,isFetching:b.isFetching,fetchItems:function(t){if(null==t?void 0:t.length){var a=[];t.forEach(function(e){var t=f(e);v.current.has(t)||(a.push(e),v.current.add(t))}),a.length&&y(function(t){return[].concat(s(t),s(i.m.chunk(a,m).map(e.getRequest)))})}}}}},91286:(e,t,a)=>{a.d(t,{v:()=>s});var r=a(32735),n=a(94644);function i(e){return e.map(function(e){return e.statusCode}).join(":")}function s(e,t,a){var s=Array.isArray(e)?e:[e];(0,r.useEffect)(function(){s.forEach(function(e){(0,n.r)(e.statusCode,t,a)})},[i(s),t,a])}},78057:(e,t,a)=>{a.d(t,{R:()=>C});var r=a(32735),n=a(75896),i=a(23481),s=a(97958),o=i.T.encloseNamespace("shared.studentResultsTable");function l(e){return"not_completed"===e.filter?r.createElement(s.u,{className:"bg-white rounded-bottom py-5"},r.createElement(s.u.Image,{src:e.notCompletedImageUrl,size:"small"}),r.createElement(s.u.Info,null,o("notCompletedDescription"))):"marking_required"===e.filter?r.createElement(s.u,{className:"bg-white rounded-bottom py-5"},r.createElement(s.u.Image,{src:e.markingRequiredImageUrl,size:"small"}),r.createElement(s.u.Info,null,o("markingRequiredDescription"))):"helping_hand"===e.filter?r.createElement(s.u,{className:"bg-white rounded-bottom py-5"},r.createElement(s.u.Image,{src:e.helpingHandImageUrl,size:"small"}),r.createElement(s.u.Info,null,o("helpingHandDescription"))):r.createElement(s.u,{className:"bg-white rounded-bottom py-5"},r.createElement(s.u.Image,{src:e.emptyStateImageUrl,size:"small"}),r.createElement(s.u.Heading,null,o("emptyStateHeading")),r.createElement(s.u.Info,null,o("emptyStateDescription")))}var c=a(83345),u="shared.studentResultsTable";function d(e){function t(t){var a=e.filter===t?null:t;e.setFilter(a)}function a(t){return"btn btn-outline-dark ".concat(function(t){return e.filter===t}(t)?"bg-dark text-white":"")}return r.createElement("div",{className:"d-flex align-items-center mb-3"},r.createElement("p",{className:"h6 mb-0"},r.createElement(c.x,{namespace:u,phrase:"filters"})),r.createElement("div",{className:"d-flex border-start ps-3 ms-3 gap-2"},r.createElement("button",{className:a("not_completed"),onClick:function(){return t("not_completed")}},r.createElement(c.x,{namespace:u,phrase:"notCompletedFilter"})),r.createElement("button",{className:a("marking_required"),onClick:function(){return t("marking_required")}},r.createElement(c.x,{namespace:u,phrase:"markingRequiredFilter"})),r.createElement("button",{className:a("helping_hand"),onClick:function(){return t("helping_hand")}},r.createElement(c.x,{namespace:u,phrase:"helpingHandFilter"}))))}var m=a(97364),h=a(6748),f=a(84806),v=a(19912);function g(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var r,n,i,s,o=[],l=!0,c=!1;try{if(i=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;l=!1}else for(;!(l=(r=i.call(a)).done)&&(o.push(r.value),o.length!==t);l=!0);}catch(e){c=!0,n=e}finally{try{if(!l&&null!=a.return&&(s=a.return(),Object(s)!==s))return}finally{if(c)throw n}}return o}}(e,t)||function(e,t){if(e){if("string"==typeof e)return p(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)?p(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 p(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,r=Array(t);a<t;a++)r[a]=e[a];return r}var y={table:"".concat(v.Z.fixedTable," bg-white rounded-start border border-end-0"),header:"".concat(v.Z.header," border-bottom"),headerRow:"h-100",headerCell:"d-flex align-items-center justify-content-start",row:v.Z.row},b={header:"".concat(v.Z.header," fw-bold"),headerRow:"h-100",headerCell:"".concat(v.Z.interactionHeaderCellOuter," bg-white border-bottom"),row:"".concat(v.Z.row," ").concat(v.Z.resultsRow),cell:v.Z.resultsCellOuter};function I(e){var t,a=g(r.useState((0,m.P)(e.sortBy,"score")),2),i=a[0],s=a[1],o=g(r.useState(e.filterBy),2),c=o[0],u=o[1],p=r.useRef(null),I=(0,f.R7)(e.results,e.anonymiseUsers,null===(t=e.config)||void 0===t?void 0:t.imageCdnUrl,e.showSeparateNameColumns),S=(0,f.lE)(e.interactive,e.interactiveMetadata,e.results,function(e){(0,f.bB)(p.current,e)},e.refreshTable),E=(0,f.Fx)(e.interactive,e.results,e.refreshTable,e.anonymiseUsers,n.m.first(i),c,e.showSeparateNameColumns);function w(e){(0,f.l8)(p.current,e)}return r.createElement("div",null,!!e.results.students.length&&r.createElement(d,{filter:c,setFilter:u}),!E.length&&r.createElement(l,{emptyStateImageUrl:e.emptyStateImageUrl,helpingHandImageUrl:e.helpingHandImageUrl,markingRequiredImageUrl:e.markingRequiredImageUrl,notCompletedImageUrl:e.notCompletedImageUrl,filter:c}),!!E.length&&r.createElement("div",{ref:p,className:"d-flex".concat(E.length&&S.length?" ".concat(v.Z.hasResults):"")},r.createElement(h.i,{columns:I,data:E,theme:S.length?y:Object.assign(Object.assign({},y),{table:"".concat(v.Z.fixedTable," bg-white rounded border")}),onSelectRow:function(t){var a=t.original;e.viewStudentResults(a.user,e.interactiveMetadata.id)},onRowMouseOver:function(e){return w(e.index)},onRowMouseLeave:function(){return w()},enableSort:!0,manualSort:!0,onSort:s,initialSortBy:i}),!!S.length&&r.createElement(h.i,{columns:S,data:E,theme:b,enableSlider:!0,scrollIncrement:8*f.Ju,onSelectCell:function(t){e.viewStudentResults(t.row.original.user,e.interactiveMetadata.id,t.column.id)},scrollContainerClassName:"rounded-end border border-start-0 border"})))}var S=a(99742);const E={partialInsights:"qSeTe"};function w(){return r.createElement("div",null,r.createElement("div",{className:"d-flex align-items-center mb-3"},r.createElement("p",{className:"h6 px-4 mb-0 me-4 partial-loading-background"}," "),r.createElement("div",{className:"row g-2 w-50"},r.createElement("div",{className:"col-3"},r.createElement("div",{className:"p-2 rounded-1 partial-loading-background"}," ")),r.createElement("div",{className:"col-3"},r.createElement("div",{className:"p-2 rounded-1 partial-loading-background"}," ")),r.createElement("div",{className:"col-3"},r.createElement("div",{className:"p-2 rounded-1 partial-loading-background"}," ")))),r.createElement("div",{className:"row g-3 mb-5"},r.createElement("div",{className:"col-12"},r.createElement("div",{className:"".concat(E.partialInsights," rounded partial-loading-background")}))))}function C(e){return r.createElement(r.Fragment,null,!e.hasDataLoaded&&r.createElement(w,null),e.hasDataLoaded&&r.createElement(I,{interactive:e.interactive,interactiveMetadata:e.interactiveMetadata,results:e.results,refreshTable:e.isFetching||e.hideStaffResults,viewStudentResults:e.viewStudentResults,emptyStateImageUrl:S.W.Insights.NO_RESPONSES,sortBy:e.sortBy,filterBy:e.filterBy,anonymiseUsers:e.anonymiseUsers,notCompletedImageUrl:S.W.Insights.JIGSAW,markingRequiredImageUrl:S.W.Insights.CLIPBOARD,helpingHandImageUrl:S.W.Insights.SPEECH_BUBBLE_HEART,config:e.config,showSeparateNameColumns:!0}))}},9447:(e,t,a)=>{a.d(t,{Y:()=>s});var r=a(20354),n=a(30439);function i(e){return i="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},i(e)}function s(e){var t,a=r.a.useBasicFetch(n.o.getAnonSessions(e));return{items:(null===(t=a.data)||void 0===t?void 0:t.reduce(function(e,t){return Object.assign(Object.assign({},e),(a={},r=t.sessionId,n={sessionId:(s=t).sessionId,name:s.sessionName},(r=function(e){var t=function(e){if("object"!=i(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var a=t.call(e,"string");if("object"!=i(a))return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==i(t)?t:t+""}(r))in a?Object.defineProperty(a,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):a[r]=n,a));var a,r,n,s},{}))||{},hasCompleted:a.hasCompleted,isFetching:a.isFetching}}},5780:(e,t,a)=>{a.d(t,{p:()=>c});var r=a(20354),n=a(2510),i=a(18488),s=a(4594),o=a(3010),l=a(88630);function c(e){var t,a,c,u,d=r.a.useGetFetch(),m=r.a.useBasicFetch(i.o.getShare(e)),h=(null===(t=m.data)||void 0===t?void 0:t.type)===n.y.Classroom&&(null===(u=null===(c=null===(a=m.data)||void 0===a?void 0:a.recipients)||void 0===c?void 0:c.find(function(e){return e.recipientTypeId===s.E.Classroom}))||void 0===u?void 0:u.recipientId),f=function(e){return l.F.getClassroomStudents(h,e)},v=(0,o.i)(h&&f,function(e){return d(f(e))});return Object.assign(Object.assign({},v),{hasCompleted:!h||v.hasCompleted})}},52389:(e,t,a)=>{a.d(t,{_:()=>f});var r=a(2948),n=a(20354),i=a(41196),s=a(18488),o=a(38143),l=a(91286),c=a(9447),u=a(5780);function d(e,t){if(e){if("string"==typeof e)return m(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)?m(e,t):void 0}}function m(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,r=Array(t);a<t;a++)r[a]=e[a];return r}var h=[{id:"0",attempts:[{id:"0",answeredAt:0,answers:[]}]}];function f(e){var t,a,f,v,g=(f=(0,r.D)(o.g.HIDE_STAFF_RESULTS),v=1,function(e){if(Array.isArray(e))return e}(f)||function(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var r,n,i,s,o=[],l=!0,c=!1;try{if(i=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;l=!1}else for(;!(l=(r=i.call(a)).done)&&(o.push(r.value),o.length!==t);l=!0);}catch(e){c=!0,n=e}finally{try{if(!l&&null!=a.return&&(s=a.return(),Object(s)!==s))return}finally{if(c)throw n}}return o}}(f,v)||d(f,v)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())[0],p=n.a.useBasicFetch(s.o.getShare(e)),y=(0,i.W)(null===(t=p.data)||void 0===t?void 0:t.objectId,null,e),b=(0,c.Y)(e),I=(0,u.p)(e);(0,l.v)(y);var S=y.hasCompleted&&b.hasCompleted&&I.hasCompleted;if(!S)return{data:null,hasCompleted:!1};var E=new Set,w=y.data.students.map(function(e){var t,a=null===(t=e.user)||void 0===t?void 0:t.userType;return g&&1===a?null:e.user?(E.add(e.user.id),e):Object.assign(Object.assign({},e),{user:b.items[e.sessionId]||{sessionId:e.sessionId}})}).filter(function(e){return!!e});return(null===(a=null==I?void 0:I.items)||void 0===a?void 0:a.length)&&w.push.apply(w,function(e){return function(e){if(Array.isArray(e))return m(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||d(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.")}()}(I.items.filter(function(e){return!E.has(e.id)}).map(function(e){return{user:e,results:h,isPlaceholder:!0}}))),{hasCompleted:S,isFetching:p.isFetching||y.isFetching||b.isFetching||I.isFetching,data:Object.assign(Object.assign({},y.data),{students:w})}}},50808:(e,t,a)=>{a.r(t),a.d(t,{BaseInsightsView:()=>Oe});var r=a(32735),n=a(81886),i=a(20354),s=a(18488),o=a(86099),l=a(4594),c=a(23481),u=a(2948),d=a(93479),m=a(21789),h=a(60051),f=a(16714),v=a(39151),g=a(1666),p=a(47812),y=a(31949),b=a(91286),I=a(93322),S=a(22902),E=a(79612),w=a(31908),C=a(86702),A=a(88630),F=a(9540),j=a(17132),N=function(e,t){return{url:"{gateway}/v2/analytics/streams/shares/".concat(e,"/aggregation/").concat(t),key:"video:views:v2:share:aggregation:".concat(e,":").concat(t),normalize:!1}},U=function(e){return{url:"{gateway}/v2/analytics/streams/shares/".concat(e,"/heat-map"),key:"video:views:v2:share:heatmap:".concat(e),normalize:!1}},B=function(e){return{url:"{gateway}/v2/analytics/streams/shares/".concat(e,"/aggregation/heat-map"),key:"video:views:v2:share:heatmap:aggregation:".concat(e),normalize:!1}},O=a(38143),R=a(39902),T=a(9447);function k(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,r=Array(t);a<t;a++)r[a]=e[a];return r}function L(e){var t,a,r,n,s,o=(n=(0,u.D)(O.g.HIDE_STAFF_RESULTS),s=1,function(e){if(Array.isArray(e))return e}(n)||function(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var r,n,i,s,o=[],l=!0,c=!1;try{if(i=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;l=!1}else for(;!(l=(r=i.call(a)).done)&&(o.push(r.value),o.length!==t);l=!0);}catch(e){c=!0,n=e}finally{try{if(!l&&null!=a.return&&(s=a.return(),Object(s)!==s))return}finally{if(c)throw n}}return o}}(n,s)||function(e,t){if(e){if("string"==typeof e)return k(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)?k(e,t):void 0}}(n,s)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())[0],l=i.a.useBasicFetch(U(e)),c=(0,T.Y)(e),d=(null===(t=l.data)||void 0===t?void 0:t.map(function(e){return e.userId}).filter(function(e){return!!e}))||[],m=(0,R.fh)(d,y.N.getById),h=Object.assign(Object.assign({},c.items),m.items),f=null===(a=l.data)||void 0===a?void 0:a.filter(function(e){var t=h[e.userId||e.sessionId];return t&&1===t.userType&&o?null:e}).filter(function(e){return!!e}),v=null===(r=l.data)||void 0===r?void 0:r.map(function(e){return Object.assign(Object.assign({},function(e){var t,a;return e.userId?(null===(t=m.items)||void 0===t?void 0:t[e.userId])||{id:e.userId,deleted:!0}:(null===(a=c.items)||void 0===a?void 0:a[e.sessionId])||{sessionId:e.sessionId}}(e)),{percentage:e.engagementRate})});return{engagement:f,users:v,hasCompleted:l.hasCompleted&&c.hasCompleted&&(!(null==d?void 0:d.length)||m.hasCompleted)}}var _=a(5780),x=a(10447);function M(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var r,n,i,s,o=[],l=!0,c=!1;try{if(i=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;l=!1}else for(;!(l=(r=i.call(a)).done)&&(o.push(r.value),o.length!==t);l=!0);}catch(e){c=!0,n=e}finally{try{if(!l&&null!=a.return&&(s=a.return(),Object(s)!==s))return}finally{if(c)throw n}}return o}}(e,t)||function(e,t){if(e){if("string"==typeof e)return D(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)?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 a=0,r=Array(t);a<t;a++)r[a]=e[a];return r}var q=c.T.encloseNamespace("shared.insightsHeatmap");function P(e){var t,a,n,o,c,U=M((0,u.D)(C.y.ANONYMISE_USERS),1)[0],O=M((0,u.D)(C.y.HIDE_STAFF_RESULTS),1)[0];(0,I.F)();var R=(0,S.T)().hasPermissions,T=i.a.useBasicFetch(s.o.getShare(e.shareId)),k=m.x.getClassroomIdFromShare(T.data),D=i.a.useBasicFetch(k&&A.F.getClassroom(k)),P=(0,_.p)(e.shareId),W=T.data&&w.M.getVideoRequest(T.data.objectId,T.data.objectTypeId),H=i.a.useBasicFetch(W),V=i.a.useBasicFetch(v.L.config()),G=i.a.useBasicFetch(y.N.currentUser()),$=i.a.useBasicFetch(G.data&&g.h.yearGroups(G.data.customerId)),Z=w.M.isInteractive(H.data)&&d.I.pendingReviews({interactives:[H.data].map(function(t){return{interactiveId:t.interactiveId,metadataId:t.id,shareId:e.shareId}}),filters:{currentCustomerId:G.data.customerId,currentUserId:G.data.id}}),z=(null===(a=null===(t=i.a.useBasicFetch(Z).data)||void 0===t?void 0:t[0])||void 0===a?void 0:a.pendingReviewCount)>0,Q=i.a.useBasicFetch(B(e.shareId)),Y=L(e.shareId),K=Y.users,J=Y.engagement,X=Y.hasCompleted,ee=i.a.useBasicFetch(N(e.shareId,"year_group")),te=i.a.useBasicFetch((null===(n=T.data)||void 0===n?void 0:n.objectId)&&p.k.createViewKey(T.data.objectId,h.f.MasterObject));(0,E.M)({title:H.data?q("pageTitle",{video:null===(o=H.data)||void 0===o?void 0:o.name}):null}),(0,b.v)([T,H]);var ae=T.hasCompleted&&H.hasCompleted&&V.hasCompleted&&Q.hasCompleted&&ee.hasCompleted&&te.hasCompleted&&$.hasCompleted;return r.createElement("div",{className:"px-3"},r.createElement(F.j,{video:H.data,tabs:function(){var e;return(null===(e=T.data)||void 0===e?void 0:e.objectTypeId)===l.E.Interactive?(0,x.kj)(T.data,"heatmap"):(0,x.$6)(T.data,"heatmap")}(),hasAnalytics:R(f.C.ViewCustomerAnalytics),analyticsWebUrl:null===(c=V.data)||void 0===c?void 0:c.analyticsWebUrl,share:T.data,yearGroups:$.data,classroom:D.data,markingRequired:z,hasData:!!(null==J?void 0:J.length)}),r.createElement(j.w,{aggregateEngagement:Q.data,individualEngagement:J,yearGroups:ee.data,config:V.data,users:K,viewKey:te.data,hasDataLoaded:ae,tableDataLoaded:X,anonymiseUsers:U,classroomStudents:P.items,hideStaffResults:O}))}var W=a(39157),H=a(94892),V=a(20768),G=a(54948),$=a(52389);function Z(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,r=Array(t);a<t;a++)r[a]=e[a];return r}var z=c.T.encloseNamespace("insights.interactiveInsightsOverviewView");function Q(e){var t,a,n,l,c,d,h,p=(d=(0,u.D)(O.g.ANONYMISE_USERS),h=1,function(e){if(Array.isArray(e))return e}(d)||function(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var r,n,i,s,o=[],l=!0,c=!1;try{if(i=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;l=!1}else for(;!(l=(r=i.call(a)).done)&&(o.push(r.value),o.length!==t);l=!0);}catch(e){c=!0,n=e}finally{try{if(!l&&null!=a.return&&(s=a.return(),Object(s)!==s))return}finally{if(c)throw n}}return o}}(d,h)||function(e,t){if(e){if("string"==typeof e)return Z(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)?Z(e,t):void 0}}(d,h)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())[0];(0,I.F)();var w=(0,S.T)().hasPermissions,C=i.a.useBasicFetch(v.L.config()),j=i.a.useBasicFetch(y.N.currentUser()),R=i.a.useBasicFetch(j.data&&g.h.yearGroups(j.data.customerId)),T=i.a.useBasicFetch(s.o.getShare(e.shareId)),k=m.x.getClassroomIdFromShare(T.data),L=i.a.useBasicFetch(k&&A.F.getClassroom(k)),M=(0,_.p)(e.shareId),D=i.a.useBasicFetch((null===(t=T.data)||void 0===t?void 0:t.objectId)&&V.b.interactiveMetadata(T.data.objectId)),q=i.a.useBasicFetch((null===(a=D.data)||void 0===a?void 0:a.interactiveId)&&V.b.interactive(D.data.interactiveId)),P=(0,$._)(e.shareId),Q=i.a.useBasicFetch(U(e.shareId)),Y=i.a.useBasicFetch(B(e.shareId)),K=i.a.useBasicFetch(N(e.shareId,"os_name"));(0,E.M)({title:D.data?z("pageTitle",{video:null===(n=D.data)||void 0===n?void 0:n.name}):null}),(0,b.v)([T,q,D]);var J=C.hasCompleted&&D.hasCompleted&&q.data&&Y.hasCompleted&&Q.hasCompleted&&K.hasCompleted&&P.hasCompleted&&R.hasCompleted,X=function(e,t){return{resultsAppLink:(0,o.rq)(e,t),questionsAppLink:(0,o.Sj)(e,t),heatmapAppLink:(0,o.Rv)(e,t)}}(T.data),ee=J&&(0,W.R6)(q.data,P.data,H.T),te=ee&&ee.markingRequired.length>0;return r.createElement("div",{className:"px-3"},r.createElement(F.j,{video:D.data,tabs:(0,x.kj)(T.data,"insights"),hasAnalytics:w(f.C.ViewCustomerAnalytics),analyticsWebUrl:null===(l=C.data)||void 0===l?void 0:l.analyticsWebUrl,share:T.data,yearGroups:R.data,classroom:L.data,markingRequired:te,hasData:!!(null===(c=P.data)||void 0===c?void 0:c.students.length)}),r.createElement(G.m,{aggregateEngagement:Y.data,individualEngagement:Q.data,interactive:q.data,interactiveMetadata:D.data,interactiveInsightsAppLinks:X,classroomStudents:M.items,results:P.data,osCount:K.data,config:C.data,anonymiseUsers:p,hasDataLoaded:J,share:T.data}))}var Y=a(48705);function K(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,r=Array(t);a<t;a++)r[a]=e[a];return r}var J=c.T.encloseNamespace("shared.interactiveInsightsQuestionsView");function X(e){var t,a,n,o,l,c,d,h,p=(d=(0,u.D)(O.g.ANONYMISE_USERS),h=1,function(e){if(Array.isArray(e))return e}(d)||function(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var r,n,i,s,o=[],l=!0,c=!1;try{if(i=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;l=!1}else for(;!(l=(r=i.call(a)).done)&&(o.push(r.value),o.length!==t);l=!0);}catch(e){c=!0,n=e}finally{try{if(!l&&null!=a.return&&(s=a.return(),Object(s)!==s))return}finally{if(c)throw n}}return o}}(d,h)||function(e,t){if(e){if("string"==typeof e)return K(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)?K(e,t):void 0}}(d,h)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())[0];(0,I.F)();var w=(0,S.T)().hasPermissions,C=i.a.useBasicFetch(y.N.currentUser()),j=i.a.useBasicFetch(v.L.config()),N=i.a.useBasicFetch(C.data&&g.h.yearGroups(C.data.customerId)),U=i.a.useBasicFetch(s.o.getShare(e.shareId)),B=m.x.getClassroomIdFromShare(U.data),R=i.a.useBasicFetch(B&&A.F.getClassroom(B)),T=i.a.useBasicFetch((null===(t=U.data)||void 0===t?void 0:t.objectId)&&V.b.interactiveMetadata(null===(a=U.data)||void 0===a?void 0:a.objectId)),k=i.a.useBasicFetch((null===(n=T.data)||void 0===n?void 0:n.interactiveId)&&V.b.interactive(T.data.interactiveId)),L=(0,$._)(e.shareId);(0,E.M)({title:T.data?J("pageTitle",{video:null===(o=T.data)||void 0===o?void 0:o.name}):null}),(0,b.v)([U,k,T]);var _=k.data&&T.data&&!!L.data&&!!N.data,M=_&&(0,W.R6)(k.data,L.data,H.T),D=M&&M.markingRequired.length>0;return r.createElement("div",{className:"px-3"},r.createElement(F.j,{tabs:(0,x.kj)(U.data,"questions"),video:T.data,hasAnalytics:w(f.C.ViewCustomerAnalytics),analyticsWebUrl:null===(l=j.data)||void 0===l?void 0:l.analyticsWebUrl,share:U.data,yearGroups:N.data,classroom:R.data,markingRequired:D,hasData:!!(null===(c=L.data)||void 0===c?void 0:c.students.length)}),r.createElement(Y.x,{interactive:k.data,interactiveMetadata:T.data,interactionId:e.interactionId,config:j.data,sortBy:e.sortBy,isFetching:!L.hasCompleted||k.isFetching,anonymiseUsers:p,results:L.data,hasDataLoaded:_}))}var ee=a(14070),te=a(97291),ae=a(78057);function re(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var r,n,i,s,o=[],l=!0,c=!1;try{if(i=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;l=!1}else for(;!(l=(r=i.call(a)).done)&&(o.push(r.value),o.length!==t);l=!0);}catch(e){c=!0,n=e}finally{try{if(!l&&null!=a.return&&(s=a.return(),Object(s)!==s))return}finally{if(c)throw n}}return o}}(e,t)||function(e,t){if(e){if("string"==typeof e)return ne(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)?ne(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 ne(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,r=Array(t);a<t;a++)r[a]=e[a];return r}var ie=c.T.encloseNamespace("insights.interactiveInsightsStudents");function se(e){var t,a,o,l,c,d=re((0,u.D)(O.g.ANONYMISE_USERS),1)[0],h=re((0,u.D)(O.g.HIDE_STAFF_RESULTS),1)[0],p=(0,S.T)().hasPermissions,I=i.a.useBasicFetch(y.N.currentUser()),w=i.a.useBasicFetch(v.L.config()),C=i.a.useBasicFetch(I.data&&g.h.yearGroups(I.data.customerId)),j=i.a.useBasicFetch(s.o.getShare(e.shareId)),N=m.x.getClassroomIdFromShare(j.data),U=i.a.useBasicFetch(N&&A.F.getClassroom(N)),B=i.a.useBasicFetch((null===(t=j.data)||void 0===t?void 0:t.objectId)&&V.b.interactiveMetadata(j.data.objectId)),R=i.a.useBasicFetch((null===(a=B.data)||void 0===a?void 0:a.interactiveId)&&V.b.interactive(B.data.interactiveId)),T=(0,$._)(e.shareId),k=R.data&&B.data&&!!T.data&&!!C.data,L=k&&(0,W.R6)(R.data,T.data,H.T),_=L&&L.markingRequired.length>0;return(0,E.M)({title:B.data?ie("pageTitle",{video:null===(o=B.data)||void 0===o?void 0:o.name}):null}),(0,b.v)([j,R,B]),r.createElement("div",{className:"px-3"},r.createElement(F.j,{tabs:(0,x.kj)(j.data,"results"),video:B.data,hasAnalytics:p(f.C.ViewCustomerAnalytics),analyticsWebUrl:null===(l=w.data)||void 0===l?void 0:l.analyticsWebUrl,share:j.data,yearGroups:C.data,classroom:U.data,markingRequired:_,hasData:!!(null===(c=T.data)||void 0===c?void 0:c.students.length)}),r.createElement(ae.R,{interactiveMetadata:B.data,viewStudentResults:function(t,a,r){n.Q.C$.trigger({application:te.O.MY_SHARES,action:ee.e.MyShares.INTERACTIVE_STUDENT_RESULTS,params:{studentId:t.id,shareId:e.shareId,interactionId:r,sessionId:t.sessionId}})},interactive:R.data,results:T.data,filterBy:e.filterBy,sortBy:e.sortBy,isFetching:T.isFetching,anonymiseUsers:d,hasDataLoaded:k,config:w.data,hideStaffResults:h}))}var oe=a(37802),le=a(51870),ce=a(50916),ue=a(84621),de=a(98551),me=a(35223),he=c.T.encloseNamespace("shared.insightStudentsNotWatched");function fe(e){var t,a=(null===(t=e.students)||void 0===t?void 0:t.filter(function(t){var a;return!(null===(a=e.watchedIds)||void 0===a?void 0:a.includes(t.id))}))||[];return r.createElement(ue.L,{title:he("title"),svgName:me.vn.Puzzle,svgClassName:"bg-light-teal text-teal"},r.createElement(de.y,{students:a,imageCdnUrl:e.imageCdnUrl,imageUrl:e.imageUrl,description:he("studentsDisplay"),anonymiseUsers:e.anonymiseUsers}))}var ve=c.T.encloseNamespace("shared.insightStudentsWatched");function ge(e){return r.createElement(ue.L,{title:ve("title"),svgName:me.vn.Flag,svgClassName:"bg-light-indigo text-indigo",count:e.students.length},r.createElement(de.y,{students:e.students,imageCdnUrl:e.imageCdnUrl,imageUrl:e.imageUrl,description:ve("studentsDisplay"),appLink:e.heatmapAppLink,appLinkText:ve("viewAll"),anonymiseUsers:e.anonymiseUsers}))}var pe=a(8604),ye=a(83345),be=a(99742),Ie=a(53214);const Se="oHwkx";function Ee(){return r.createElement("div",null,r.createElement("h2",{className:"h4 w-25 partial-loading-background"}," "),r.createElement("div",{className:"row g-3 mb-5"},r.createElement("div",{className:"col-12"},r.createElement("div",{className:"".concat(Se," rounded partial-loading-background")}))),r.createElement("h2",{className:"h4 w-25 partial-loading-background"}," "),r.createElement("div",{className:"row g-3 mb-5"},r.createElement("div",{className:"col-6"},r.createElement("div",{className:"".concat(Se," rounded partial-loading-background")})),r.createElement("div",{className:"col-6"},r.createElement("div",{className:"".concat(Se," rounded partial-loading-background")}))))}var we="insights.videoInsightsOverview";function Ce(e){var t,a,n,i=e.hasDataLoaded&&!!(null===(t=e.viewers)||void 0===t?void 0:t.length);function s(){return e.viewers?Object.values(e.viewers):[]}return r.createElement(r.Fragment,null,!e.hasDataLoaded&&r.createElement(Ee,null),e.hasDataLoaded&&r.createElement(Ie.u,{video:e.video,hasData:i,share:e.share},r.createElement("section",{className:"mb-5"},r.createElement("h2",{className:"h4"},r.createElement(ye.x,{namespace:we,phrase:"studentViewing"}),r.createElement("span",null,": ",s().length,e.classroomStudents?"/".concat(e.classroomStudents.length):"")),r.createElement("div",{className:"row g-3"},!!(null===(a=e.classroomStudents)||void 0===a?void 0:a.length)&&r.createElement("div",{className:"col-12 col-md"},r.createElement(fe,{students:e.classroomStudents,watchedIds:null===(n=e.viewers)||void 0===n?void 0:n.map(function(e){return e.id}),imageCdnUrl:e.config.imageCdnUrl,heatmapAppLink:e.videoInsightsAppLinks.heatmapAppLink,imageUrl:be.W.Insights.AVATAR,anonymiseUsers:e.anonymiseUsers})),r.createElement("div",{className:"col-12 col-md"},r.createElement(ge,{students:s(),imageCdnUrl:e.config.imageCdnUrl,heatmapAppLink:e.videoInsightsAppLinks.heatmapAppLink,imageUrl:be.W.Insights.AVATAR,anonymiseUsers:e.anonymiseUsers})))),r.createElement("section",{className:"mb-5"},r.createElement("h2",{className:"h4"},r.createElement(ye.x,{namespace:we,phrase:e.hasClassrooms?"classEngagement":"engagement"})),r.createElement("div",{className:"row g-3"},r.createElement("div",{className:"col-12 col-md-6"},r.createElement(le.i,{osCount:e.osCount})),r.createElement("div",{className:"col-12 col-md-6"},r.createElement(ce.b,{engagement:e.aggregateEngagement,heatmapAppLink:e.videoInsightsAppLinks.heatmapAppLink,engagementRate:(0,pe.Q)(e.individualEngagement)}))))))}function Ae(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,r=Array(t);a<t;a++)r[a]=e[a];return r}var Fe=c.T.encloseNamespace("insights.videoInsightsOverviewView");function je(e){var t,a,n,l,c=(n=(0,u.D)(O.g.ANONYMISE_USERS),l=1,function(e){if(Array.isArray(e))return e}(n)||function(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var r,n,i,s,o=[],l=!0,c=!1;try{if(i=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;l=!1}else for(;!(l=(r=i.call(a)).done)&&(o.push(r.value),o.length!==t);l=!0);}catch(e){c=!0,n=e}finally{try{if(!l&&null!=a.return&&(s=a.return(),Object(s)!==s))return}finally{if(c)throw n}}return o}}(n,l)||function(e,t){if(e){if("string"==typeof e)return Ae(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)?Ae(e,t):void 0}}(n,l)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())[0];(0,I.F)();var d=(0,oe.r)(null).hasClassrooms,h=(0,S.T)().hasPermissions,p=i.a.useBasicFetch(v.L.config()),C=i.a.useBasicFetch(y.N.currentUser()),j=i.a.useBasicFetch(C.data&&g.h.yearGroups(C.data.customerId)),R=i.a.useBasicFetch(s.o.getShare(e.shareId)),T=m.x.getClassroomIdFromShare(R.data),k=i.a.useBasicFetch(T&&A.F.getClassroom(T)),M=(0,_.p)(e.shareId),D=R.data&&w.M.getVideoRequest(R.data.objectId,R.data.objectTypeId),q=i.a.useBasicFetch(D);(0,E.M)({title:q.data?Fe("pageTitle",{video:null===(t=q.data)||void 0===t?void 0:t.name}):null}),(0,b.v)([R,q]);var P=i.a.useBasicFetch(U(e.shareId)),W=i.a.useBasicFetch(B(e.shareId)),H=i.a.useBasicFetch(N(e.shareId,"os_name")),V=L(e.shareId),G=V.users,$=V.hasCompleted,Z=p.hasCompleted&&q.hasCompleted&&P.hasCompleted&&W.hasCompleted&&H.hasCompleted&&j.data&&$,z=function(e){return{heatmapAppLink:(0,o.Rv)(e,void 0)}}(R.data);return r.createElement("div",{className:"px-3"},r.createElement(F.j,{video:q.data,classroom:k.data,tabs:(0,x.$6)(R.data,"insights"),hasAnalytics:h(f.C.ViewCustomerAnalytics),analyticsWebUrl:null===(a=p.data)||void 0===a?void 0:a.analyticsWebUrl,share:R.data,yearGroups:j.data,hasData:Z&&!!(null==G?void 0:G.length)}),r.createElement(Ce,{hasDataLoaded:!!Z,hasClassrooms:d,anonymiseUsers:c,videoInsightsAppLinks:z,config:p.data,video:q.data,classroomStudents:M.items,viewers:G,individualEngagement:P.data,aggregateEngagement:W.data,share:R.data,osCount:H.data}))}function Ne(e){return Ne="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},Ne(e)}function Ue(e,t,a){return(t=function(e){var t=function(e){if("object"!=Ne(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var a=t.call(e,"string");if("object"!=Ne(a))return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==Ne(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}var Be=Ue(Ue(Ue({},l.E.Video,{insights:function(e){return r.createElement(je,{shareId:e.share.shareId})},heatmap:function(e){return r.createElement(P,{shareId:e.share.shareId})}}),l.E.Clip,{insights:function(e){return r.createElement(je,{shareId:e.share.shareId})},heatmap:function(e){return r.createElement(P,{shareId:e.share.shareId})}}),l.E.Interactive,{insights:function(e){return r.createElement(Q,{shareId:e.share.shareId})},heatmap:function(e){return r.createElement(P,{shareId:e.share.shareId})},questions:function(e){return r.createElement(X,{interactionId:e.interactionId,sortBy:e.sortBy,shareId:e.share.shareId})},results:function(e){return r.createElement(se,{filterBy:e.filterBy,sortBy:e.sortBy,shareId:e.share.shareId})}});function Oe(e){var t=i.a.useBasicFetch(s.o.getShare(e.shareId)),a=function(e){var t,a=e.share,n=e.tab,i=null===(t=Be[null==a?void 0:a.objectTypeId])||void 0===t?void 0:t[n];return i?i(e):r.createElement(r.Fragment,null)}({share:t.data,tab:e.tab,interactionId:e.interactionId,sortBy:e.sortBy,filterBy:e.filterBy});return r.useEffect(function(){if(e.showShareOptions&&t.data){var a=(0,o.Zm)(t.data);a&&n.Q.C$.trigger(a)}},[t.data,e.showShareOptions]),r.createElement(r.Fragment,null,a)}}}]);
2
- //# sourceMappingURL=8856-2d332952ae-lite.chunk.js.map