@clickview/streamable-learning 0.48.0-rc.0 → 0.48.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (115) hide show
  1. package/dist/.vite/manifest.json +646 -646
  2. package/dist/bundles.json +1 -1
  3. package/dist/css/DU3tPCD_.chunk.css +12 -0
  4. package/dist/en.json +1 -1
  5. package/dist/scripts/{m9QbGES0.chunk.js → ACTQklJQ.chunk.js} +2 -2
  6. package/dist/scripts/{m9QbGES0.chunk.js.map → ACTQklJQ.chunk.js.map} +1 -1
  7. package/dist/scripts/{B7if0Lk52.chunk.js → B-qOny0I2.chunk.js} +2 -2
  8. package/dist/scripts/{B7if0Lk52.chunk.js.map → B-qOny0I2.chunk.js.map} +1 -1
  9. package/dist/scripts/{BSjm_rCE.chunk.js → B5jBIPaP.chunk.js} +2 -2
  10. package/dist/scripts/{BSjm_rCE.chunk.js.map → B5jBIPaP.chunk.js.map} +1 -1
  11. package/dist/scripts/{CPkKuTSK2.chunk.js → B703cBe72.chunk.js} +2 -2
  12. package/dist/scripts/{CPkKuTSK2.chunk.js.map → B703cBe72.chunk.js.map} +1 -1
  13. package/dist/scripts/{DNNNPLMp.chunk.js → B7iwtSij.chunk.js} +2 -2
  14. package/dist/scripts/{DNNNPLMp.chunk.js.map → B7iwtSij.chunk.js.map} +1 -1
  15. package/dist/scripts/{CXNve4Wq2.chunk.js → BCBfXCYM2.chunk.js} +2 -2
  16. package/dist/scripts/{CXNve4Wq2.chunk.js.map → BCBfXCYM2.chunk.js.map} +1 -1
  17. package/dist/scripts/{CoYNU7We2.chunk.js → BKnxYKDu2.chunk.js} +2 -2
  18. package/dist/scripts/{CoYNU7We2.chunk.js.map → BKnxYKDu2.chunk.js.map} +1 -1
  19. package/dist/scripts/{BoxedFO8.chunk.js → BLrjbrp8.chunk.js} +2 -2
  20. package/dist/scripts/{BoxedFO8.chunk.js.map → BLrjbrp8.chunk.js.map} +1 -1
  21. package/dist/scripts/{CibcLNJP2.chunk.js → BTYwcYPL2.chunk.js} +2 -2
  22. package/dist/scripts/{CibcLNJP2.chunk.js.map → BTYwcYPL2.chunk.js.map} +1 -1
  23. package/dist/scripts/{CwI-7tep2.chunk.js → BXJetawx2.chunk.js} +2 -2
  24. package/dist/scripts/{CwI-7tep2.chunk.js.map → BXJetawx2.chunk.js.map} +1 -1
  25. package/dist/scripts/{BV74ZRR22.chunk.js → BZOcEcTA2.chunk.js} +2 -2
  26. package/dist/scripts/{BV74ZRR22.chunk.js.map → BZOcEcTA2.chunk.js.map} +1 -1
  27. package/dist/scripts/{DxsW8K0n2.chunk.js → BaMNOAYj2.chunk.js} +2 -2
  28. package/dist/scripts/{DxsW8K0n2.chunk.js.map → BaMNOAYj2.chunk.js.map} +1 -1
  29. package/dist/scripts/{DrDQfaFN2.chunk.js → BihZ4r0z2.chunk.js} +3 -3
  30. package/dist/scripts/{DrDQfaFN2.chunk.js.map → BihZ4r0z2.chunk.js.map} +1 -1
  31. package/dist/scripts/{CK6c6uHp2.chunk.js → BpgHKWR52.chunk.js} +2 -2
  32. package/dist/scripts/{CK6c6uHp2.chunk.js.map → BpgHKWR52.chunk.js.map} +1 -1
  33. package/dist/scripts/{JtFbyaXc.chunk.js → Br0Uc4GG.chunk.js} +2 -2
  34. package/dist/scripts/{JtFbyaXc.chunk.js.map → Br0Uc4GG.chunk.js.map} +1 -1
  35. package/dist/scripts/{Dd8r1SE32.chunk.js → BsAo7Lri2.chunk.js} +2 -2
  36. package/dist/scripts/{Dd8r1SE32.chunk.js.map → BsAo7Lri2.chunk.js.map} +1 -1
  37. package/dist/scripts/{BMjES83N2.chunk.js → BvJXPFoz2.chunk.js} +2 -2
  38. package/dist/scripts/{BMjES83N2.chunk.js.map → BvJXPFoz2.chunk.js.map} +1 -1
  39. package/dist/scripts/{CpFOQcL7.chunk.js → BxypZGPK.chunk.js} +2 -2
  40. package/dist/scripts/{CpFOQcL7.chunk.js.map → BxypZGPK.chunk.js.map} +1 -1
  41. package/dist/scripts/C4MLxDS-.chunk.js +1 -0
  42. package/dist/scripts/{DLp7yHzT2.chunk.js → C5i1HsPp2.chunk.js} +2 -2
  43. package/dist/scripts/{DLp7yHzT2.chunk.js.map → C5i1HsPp2.chunk.js.map} +1 -1
  44. package/dist/scripts/{Bkv1Tbyu.chunk.js → CCoZQmgX.chunk.js} +2 -2
  45. package/dist/scripts/{Bkv1Tbyu.chunk.js.map → CCoZQmgX.chunk.js.map} +1 -1
  46. package/dist/scripts/{Clh6wBrg.chunk.js → CGxa1Jzq.chunk.js} +2 -2
  47. package/dist/scripts/{Clh6wBrg.chunk.js.map → CGxa1Jzq.chunk.js.map} +1 -1
  48. package/dist/scripts/{DAvXFgC62.chunk.js → CKdklY2o2.chunk.js} +2 -2
  49. package/dist/scripts/{DAvXFgC62.chunk.js.map → CKdklY2o2.chunk.js.map} +1 -1
  50. package/dist/scripts/{CeWjJPIz.chunk.js → CN8PeBwg.chunk.js} +2 -2
  51. package/dist/scripts/{CeWjJPIz.chunk.js.map → CN8PeBwg.chunk.js.map} +1 -1
  52. package/dist/scripts/{B1jitqYS2.chunk.js → CNJrD44-2.chunk.js} +2 -2
  53. package/dist/scripts/{B1jitqYS2.chunk.js.map → CNJrD44-2.chunk.js.map} +1 -1
  54. package/dist/scripts/{DIHDe4Sg.chunk.js → CNmmq34f.chunk.js} +2 -2
  55. package/dist/scripts/{DIHDe4Sg.chunk.js.map → CNmmq34f.chunk.js.map} +1 -1
  56. package/dist/scripts/{CikSQKH-.chunk.js → CUUUI6pl.chunk.js} +2 -2
  57. package/dist/scripts/{CikSQKH-.chunk.js.map → CUUUI6pl.chunk.js.map} +1 -1
  58. package/dist/scripts/{DNO0KpY72.chunk.js → CWFInhB82.chunk.js} +2 -2
  59. package/dist/scripts/{DNO0KpY72.chunk.js.map → CWFInhB82.chunk.js.map} +1 -1
  60. package/dist/scripts/{i2-k6ULv2.chunk.js → CbLL7dIz2.chunk.js} +2 -2
  61. package/dist/scripts/{i2-k6ULv2.chunk.js.map → CbLL7dIz2.chunk.js.map} +1 -1
  62. package/dist/scripts/{KCdpQ8qv2.chunk.js → Ce1TZZdV2.chunk.js} +2 -2
  63. package/dist/scripts/{KCdpQ8qv2.chunk.js.map → Ce1TZZdV2.chunk.js.map} +1 -1
  64. package/dist/scripts/{NV4_mMU8.chunk.js → Ces-KTwe.chunk.js} +2 -2
  65. package/dist/scripts/{NV4_mMU8.chunk.js.map → Ces-KTwe.chunk.js.map} +1 -1
  66. package/dist/scripts/{0xQRFMBY.chunk.js → CkYqp83j.chunk.js} +2 -2
  67. package/dist/scripts/{0xQRFMBY.chunk.js.map → CkYqp83j.chunk.js.map} +1 -1
  68. package/dist/scripts/{DvL3J2BU.chunk.js → CrCAJmt6.chunk.js} +2 -2
  69. package/dist/scripts/{DvL3J2BU.chunk.js.map → CrCAJmt6.chunk.js.map} +1 -1
  70. package/dist/scripts/{CcDgbmw52.chunk.js → CsC3VVvE2.chunk.js} +2 -2
  71. package/dist/scripts/{CcDgbmw52.chunk.js.map → CsC3VVvE2.chunk.js.map} +1 -1
  72. package/dist/scripts/{C9UjF0q6.chunk.js → D0SYGnyF.chunk.js} +2 -2
  73. package/dist/scripts/{C9UjF0q6.chunk.js.map → D0SYGnyF.chunk.js.map} +1 -1
  74. package/dist/scripts/{BqO6i89w2.chunk.js → D7tastET2.chunk.js} +2 -2
  75. package/dist/scripts/{BqO6i89w2.chunk.js.map → D7tastET2.chunk.js.map} +1 -1
  76. package/dist/scripts/{CeI-LCE-.chunk.js → DIavEegC.chunk.js} +2 -2
  77. package/dist/scripts/{CeI-LCE-.chunk.js.map → DIavEegC.chunk.js.map} +1 -1
  78. package/dist/scripts/{BKbKu9Rp.chunk.js → DK3xia1t.chunk.js} +2 -2
  79. package/dist/scripts/{BKbKu9Rp.chunk.js.map → DK3xia1t.chunk.js.map} +1 -1
  80. package/dist/scripts/{BCdnm1Nn.chunk.js → DKnZ8BaN.chunk.js} +2 -2
  81. package/dist/scripts/{BCdnm1Nn.chunk.js.map → DKnZ8BaN.chunk.js.map} +1 -1
  82. package/dist/scripts/{awemA_vU2.chunk.js → DO8_mR5i2.chunk.js} +2 -2
  83. package/dist/scripts/{awemA_vU2.chunk.js.map → DO8_mR5i2.chunk.js.map} +1 -1
  84. package/dist/scripts/{DlQrdOls.chunk.js → DR80oZtZ.chunk.js} +2 -2
  85. package/dist/scripts/{DlQrdOls.chunk.js.map → DR80oZtZ.chunk.js.map} +1 -1
  86. package/dist/scripts/{DMq5Gp-U2.chunk.js → DU1SE31v2.chunk.js} +2 -2
  87. package/dist/scripts/{DMq5Gp-U2.chunk.js.map → DU1SE31v2.chunk.js.map} +1 -1
  88. package/dist/scripts/{XnBhLH-02.chunk.js → Dj4AeYQQ2.chunk.js} +2 -2
  89. package/dist/scripts/{XnBhLH-02.chunk.js.map → Dj4AeYQQ2.chunk.js.map} +1 -1
  90. package/dist/scripts/{CmrPRojb.chunk.js → DnSy_Myx.chunk.js} +2 -2
  91. package/dist/scripts/{CmrPRojb.chunk.js.map → DnSy_Myx.chunk.js.map} +1 -1
  92. package/dist/scripts/{D0vsmyva.chunk.js → Dr1flAez.chunk.js} +2 -2
  93. package/dist/scripts/{D0vsmyva.chunk.js.map → Dr1flAez.chunk.js.map} +1 -1
  94. package/dist/scripts/{BXT8nHry2.chunk.js → DwzBzBlI2.chunk.js} +2 -2
  95. package/dist/scripts/{BXT8nHry2.chunk.js.map → DwzBzBlI2.chunk.js.map} +1 -1
  96. package/dist/scripts/{CvqqZmNo2.chunk.js → DyT1OGvP2.chunk.js} +2 -2
  97. package/dist/scripts/{CvqqZmNo2.chunk.js.map → DyT1OGvP2.chunk.js.map} +1 -1
  98. package/dist/scripts/{E9tNds1l.chunk.js → Llxar-VU.chunk.js} +2 -2
  99. package/dist/scripts/{E9tNds1l.chunk.js.map → Llxar-VU.chunk.js.map} +1 -1
  100. package/dist/scripts/{app-B1XBsz23.js → app-BIigh9wv.js} +4 -4
  101. package/dist/scripts/{app-B1XBsz23.js.map → app-BIigh9wv.js.map} +1 -1
  102. package/dist/scripts/{BMl02f_62.chunk.js → bycmewy72.chunk.js} +2 -2
  103. package/dist/scripts/{BMl02f_62.chunk.js.map → bycmewy72.chunk.js.map} +1 -1
  104. package/dist/scripts/{DmfbtOlu.chunk.js → jWpq99N3.chunk.js} +2 -2
  105. package/dist/scripts/{DmfbtOlu.chunk.js.map → jWpq99N3.chunk.js.map} +1 -1
  106. package/dist/scripts/{BDliRFoa.chunk.js → oTYyWWB-.chunk.js} +2 -2
  107. package/dist/scripts/{BDliRFoa.chunk.js.map → oTYyWWB-.chunk.js.map} +1 -1
  108. package/dist/scripts/{lokG7Sha2.chunk.js → qcrBN1zR2.chunk.js} +2 -2
  109. package/dist/scripts/{lokG7Sha2.chunk.js.map → qcrBN1zR2.chunk.js.map} +1 -1
  110. package/dist/scripts/{UAcFqQzZ.chunk.js → smdLElLq.chunk.js} +2 -2
  111. package/dist/scripts/{UAcFqQzZ.chunk.js.map → smdLElLq.chunk.js.map} +1 -1
  112. package/dist/scripts/{D8_5yfHY2.chunk.js → tYi-sUb22.chunk.js} +2 -2
  113. package/dist/scripts/{D8_5yfHY2.chunk.js.map → tYi-sUb22.chunk.js.map} +1 -1
  114. package/package.json +1 -1
  115. package/dist/scripts/D5Jnyjf8.chunk.js +0 -1
@@ -1,2 +1,2 @@
1
- import"./Dp9qJj1C.chunk.js";import{lt as e,ut as t}from"./Dun43GrB.chunk.js";import{a as n,i as r,r as i,t as a}from"./D2om474U2.chunk.js";import{l as o}from"./app-B1XBsz23.js";import{t as s}from"./CnDOpuFK.chunk.js";import{t as c}from"./NrXAMmgy2.chunk.js";import{t as l}from"./LdxNQaUZ2.chunk.js";var u={imageStyle:`_imageStyle_9s5en_1`,imageTypeResource:`_imageTypeResource_9s5en_6`,fallBackImage:`_fallBackImage_9s5en_12`};t();var d=e(),f={width:200,resizeType:n.Cover};function p(e,t,l){let u=l??f,d=m(t);if(`thumbnail`in t&&t.thumbnail?.url)return a.createUrl(t.thumbnail?.url,{...u});let p=o.safeUrlConcat(e,`/v1/previews`);return s.isResource(t)?d===r.Pdf?t.metadata.type===c.Pdf?a.createResourceImage(p,t.url,{...u}):a.createResourceImage(p,t.pdf?.url,{...u}):t.metadata.type===c.Zip?`/images/zip-resource.png`:a.createUrl(t.url,l??{size:i.Medium,resizeType:n.Cover}):a.createResourceImage(p,t.url,{...u})}function m(e){return s.isResource(e)?e.metadata.type===c.Pdf||e.pdf?.url?r.Pdf:r.Thumbnails:r.Link}function h(e){let t=null,n=0;return s.isResource(e.resource)&&(t=e.resource.metadata,n=e.resource.thumbnail?.metadata?.rotation??0),(0,d.jsx)(l,{data:p(e.imageCdnUrl,e.resource,e.dynamicRatioImageOptions),imageType:m(e.resource),imageStyle:{transform:`rotate(${n}deg)`},alt:e.resource.name,errorFallbackImageSrc:e.imageErrorFallbackUrl,errorFallbackImageClassName:u.fallBackImage,imageClassName:t?.type===c.Image?`${u.imageTypeResource} ${u.imageStyle}`:``,preload:e.preloadImage,preventLoad:!e.preloadImage})}var g={getResourceTypeName(e){switch(e){case`additional-materials`:return`Additional Materials`;case`atom-guide`:return`ATOM Guide`;case`teacher-pack`:return`Teacher Pack`;case`student-activity`:return`Student Activity`;default:return`N/A`}}};export{h as n,g as t};
2
- //# sourceMappingURL=CpFOQcL7.chunk.js.map
1
+ import"./Dp9qJj1C.chunk.js";import{lt as e,ut as t}from"./Dun43GrB.chunk.js";import{a as n,i as r,r as i,t as a}from"./D2om474U2.chunk.js";import{l as o}from"./app-BIigh9wv.js";import{t as s}from"./CnDOpuFK.chunk.js";import{t as c}from"./NrXAMmgy2.chunk.js";import{t as l}from"./LdxNQaUZ2.chunk.js";var u={imageStyle:`_imageStyle_9s5en_1`,imageTypeResource:`_imageTypeResource_9s5en_6`,fallBackImage:`_fallBackImage_9s5en_12`};t();var d=e(),f={width:200,resizeType:n.Cover};function p(e,t,l){let u=l??f,d=m(t);if(`thumbnail`in t&&t.thumbnail?.url)return a.createUrl(t.thumbnail?.url,{...u});let p=o.safeUrlConcat(e,`/v1/previews`);return s.isResource(t)?d===r.Pdf?t.metadata.type===c.Pdf?a.createResourceImage(p,t.url,{...u}):a.createResourceImage(p,t.pdf?.url,{...u}):t.metadata.type===c.Zip?`/images/zip-resource.png`:a.createUrl(t.url,l??{size:i.Medium,resizeType:n.Cover}):a.createResourceImage(p,t.url,{...u})}function m(e){return s.isResource(e)?e.metadata.type===c.Pdf||e.pdf?.url?r.Pdf:r.Thumbnails:r.Link}function h(e){let t=null,n=0;return s.isResource(e.resource)&&(t=e.resource.metadata,n=e.resource.thumbnail?.metadata?.rotation??0),(0,d.jsx)(l,{data:p(e.imageCdnUrl,e.resource,e.dynamicRatioImageOptions),imageType:m(e.resource),imageStyle:{transform:`rotate(${n}deg)`},alt:e.resource.name,errorFallbackImageSrc:e.imageErrorFallbackUrl,errorFallbackImageClassName:u.fallBackImage,imageClassName:t?.type===c.Image?`${u.imageTypeResource} ${u.imageStyle}`:``,preload:e.preloadImage,preventLoad:!e.preloadImage})}var g={getResourceTypeName(e){switch(e){case`additional-materials`:return`Additional Materials`;case`atom-guide`:return`ATOM Guide`;case`teacher-pack`:return`Teacher Pack`;case`student-activity`:return`Student Activity`;default:return`N/A`}}};export{h as n,g as t};
2
+ //# sourceMappingURL=BxypZGPK.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CpFOQcL7.chunk.js","names":[],"sources":["../../../../libs/shared/src/components/resource-thumbnail/resource-thumbnail.module.scss","../../../../libs/shared/src/components/resource-thumbnail/ResourceThumbnail.tsx","../../../../libs/shared/src/utils/ResourceHelper.ts"],"sourcesContent":[":local {\n .imageStyle {\n border-top-left-radius: $border-radius-lg;\n border-top-right-radius: $border-radius-lg;\n filter: drop-shadow(0px -1px 4px rgba(0, 0, 0, 0.1));\n }\n\n .imageTypeResource {\n width: auto;\n object-fit: contain;\n left: 50% !important;\n transform: translateX(-50%);\n }\n\n .fallBackImage {\n top:auto !important;\n bottom: 0 !important;\n }\n}","import React from 'react';\n\nimport { UrlHelper } from 'libs/analytics/utils/UrlHelper';\n\nimport { ImageSize, ImageType, ResizeType } from 'libs/shared/enums/Images';\nimport { ResourceFileType } from 'libs/shared/enums/ResourceFileType';\nimport { Link, Resource } from 'libs/shared/interfaces';\nimport { ImageHelper, ImageOptions } from 'libs/shared/utils/ImageHelper';\nimport { MasterTypeHelper } from 'libs/shared/utils/MasterTypeHelper';\n\nimport { BaseImage } from '../image/BaseImage';\n\nimport styles from './resource-thumbnail.module.scss';\n\n// Used for both PDFs and Links where we don't know the image ratio\nconst DYNAMIC_RATIO_IMAGE_OPTIONS: ImageOptions = {\n width: 200,\n resizeType: ResizeType.Cover\n};\n\nexport function getThumbnailUrl(\n imageCdnUrl: string,\n resource: Resource | Link,\n imageOptions?: ImageOptions\n): string {\n const options = imageOptions ?? DYNAMIC_RATIO_IMAGE_OPTIONS;\n const imageType = getImageType(resource);\n\n // Use the thumbnail if defined\n if ('thumbnail' in resource && resource.thumbnail?.url)\n return ImageHelper.createUrl(resource.thumbnail?.url, { ...options });\n \n const previewUrl = UrlHelper.safeUrlConcat(imageCdnUrl, '/v1/previews');\n\n if (!MasterTypeHelper.isResource(resource))\n return ImageHelper.createResourceImage(previewUrl, resource.url, { ...options });\n\n if (imageType === ImageType.Pdf) {\n return resource.metadata.type === ResourceFileType.Pdf ?\n ImageHelper.createResourceImage(previewUrl, resource.url, { ...options }) :\n ImageHelper.createResourceImage(previewUrl, resource.pdf?.url, { ...options });\n }\n\n if (resource.metadata.type !== ResourceFileType.Zip) {\n return ImageHelper.createUrl(\n resource.url,\n imageOptions ?? { size: ImageSize.Medium, resizeType: ResizeType.Cover }\n );\n }\n\n return '/images/zip-resource.png';\n}\n\nfunction getImageType(resource: Resource | Link): ImageType {\n if (!MasterTypeHelper.isResource(resource))\n return ImageType.Link;\n\n if (resource.metadata.type === ResourceFileType.Pdf || resource.pdf?.url)\n return ImageType.Pdf;\n\n return ImageType.Thumbnails;\n}\n\ninterface ResourceThumbnailProps {\n imageCdnUrl: string;\n resource: Resource | Link;\n imageErrorFallbackUrl: string;\n preloadImage: boolean;\n dynamicRatioImageOptions?: ImageOptions;\n}\n\nexport function ResourceThumbnail(props: ResourceThumbnailProps): JSX.Element {\n let metadata = null;\n let rotation = 0;\n\n if (MasterTypeHelper.isResource(props.resource)) {\n metadata = props.resource.metadata;\n rotation = props.resource.thumbnail?.metadata?.rotation ?? 0;\n }\n\n const thumbnailUrl = getThumbnailUrl(props.imageCdnUrl, props.resource, props.dynamicRatioImageOptions);\n\n return (\n <BaseImage\n data={thumbnailUrl}\n imageType={getImageType(props.resource)}\n imageStyle={{ transform: `rotate(${rotation}deg)` }}\n alt={props.resource.name}\n errorFallbackImageSrc={props.imageErrorFallbackUrl}\n errorFallbackImageClassName={styles.fallBackImage}\n imageClassName={metadata?.type === ResourceFileType.Image ? `${styles.imageTypeResource} ${styles.imageStyle}` : ''}\n preload={props.preloadImage}\n preventLoad={!props.preloadImage}\n >\n </BaseImage>\n );\n}\n","import { ResourceType } from 'libs/shared/interfaces';\n\nexport const ResourceHelper = {\n getResourceTypeName(resourceType: ResourceType): string {\n switch (resourceType) {\n case 'additional-materials':\n return 'Additional Materials';\n\n case 'atom-guide':\n return 'ATOM Guide';\n\n case 'teacher-pack':\n return 'Teacher Pack';\n\n case 'student-activity':\n return 'Student Activity';\n\n default:\n return 'N/A';\n }\n }\n};\n"],"mappings":"ybCeM,EAA4C,CAChD,MAAO,IACP,WAAY,EAAW,MACxB,CAED,SAAgB,EACd,EACA,EACA,EACQ,CACR,IAAM,EAAU,GAAgB,EAC1B,EAAY,EAAa,EAAS,CAGxC,GAAI,cAAe,GAAY,EAAS,WAAW,IACjD,OAAO,EAAY,UAAU,EAAS,WAAW,IAAK,CAAE,GAAG,EAAS,CAAC,CAEvE,IAAM,EAAa,EAAU,cAAc,EAAa,eAAe,CAkBvE,OAhBK,EAAiB,WAAW,EAAS,CAGtC,IAAc,EAAU,IACnB,EAAS,SAAS,OAAS,EAAiB,IACjD,EAAY,oBAAoB,EAAY,EAAS,IAAK,CAAE,GAAG,EAAS,CAAC,CACzE,EAAY,oBAAoB,EAAY,EAAS,KAAK,IAAK,CAAE,GAAG,EAAS,CAAC,CAG9E,EAAS,SAAS,OAAS,EAAiB,IAOzC,2BANE,EAAY,UACjB,EAAS,IACT,GAAgB,CAAE,KAAM,EAAU,OAAQ,WAAY,EAAW,MAAO,CACzE,CAZM,EAAY,oBAAoB,EAAY,EAAS,IAAK,CAAE,GAAG,EAAS,CAAC,CAkBpF,SAAS,EAAa,EAAsC,CAO1D,OANK,EAAiB,WAAW,EAAS,CAGtC,EAAS,SAAS,OAAS,EAAiB,KAAO,EAAS,KAAK,IAC5D,EAAU,IAEZ,EAAU,WALR,EAAU,KAgBrB,SAAgB,EAAkB,EAA4C,CAC5E,IAAI,EAAW,KACX,EAAW,EASf,OAPI,EAAiB,WAAW,EAAM,SAAS,GAC7C,EAAW,EAAM,SAAS,SAC1B,EAAW,EAAM,SAAS,WAAW,UAAU,UAAY,IAM3D,EAAA,EAAA,KAAC,EAAD,CACE,KAJiB,EAAgB,EAAM,YAAa,EAAM,SAAU,EAAM,yBAAyB,CAKnG,UAAW,EAAa,EAAM,SAAS,CACvC,WAAY,CAAE,UAAW,UAAU,EAAS,MAAO,CACnD,IAAK,EAAM,SAAS,KACpB,sBAAuB,EAAM,sBAC7B,4BAA6B,EAAO,cACpC,eAAgB,GAAU,OAAS,EAAiB,MAAQ,GAAG,EAAO,kBAAkB,GAAG,EAAO,aAAe,GACjH,QAAS,EAAM,aACf,YAAa,CAAC,EAAM,aAEV,CAAA,CC5FhB,IAAa,EAAiB,CAC5B,oBAAoB,EAAoC,CACtD,OAAQ,EAAR,CACE,IAAK,uBACH,MAAO,uBAET,IAAK,aACH,MAAO,aAET,IAAK,eACH,MAAO,eAET,IAAK,mBACH,MAAO,mBAET,QACE,MAAO,QAGd"}
1
+ {"version":3,"file":"BxypZGPK.chunk.js","names":[],"sources":["../../../../libs/shared/src/components/resource-thumbnail/resource-thumbnail.module.scss","../../../../libs/shared/src/components/resource-thumbnail/ResourceThumbnail.tsx","../../../../libs/shared/src/utils/ResourceHelper.ts"],"sourcesContent":[":local {\n .imageStyle {\n border-top-left-radius: $border-radius-lg;\n border-top-right-radius: $border-radius-lg;\n filter: drop-shadow(0px -1px 4px rgba(0, 0, 0, 0.1));\n }\n\n .imageTypeResource {\n width: auto;\n object-fit: contain;\n left: 50% !important;\n transform: translateX(-50%);\n }\n\n .fallBackImage {\n top:auto !important;\n bottom: 0 !important;\n }\n}","import React from 'react';\n\nimport { UrlHelper } from 'libs/analytics/utils/UrlHelper';\n\nimport { ImageSize, ImageType, ResizeType } from 'libs/shared/enums/Images';\nimport { ResourceFileType } from 'libs/shared/enums/ResourceFileType';\nimport { Link, Resource } from 'libs/shared/interfaces';\nimport { ImageHelper, ImageOptions } from 'libs/shared/utils/ImageHelper';\nimport { MasterTypeHelper } from 'libs/shared/utils/MasterTypeHelper';\n\nimport { BaseImage } from '../image/BaseImage';\n\nimport styles from './resource-thumbnail.module.scss';\n\n// Used for both PDFs and Links where we don't know the image ratio\nconst DYNAMIC_RATIO_IMAGE_OPTIONS: ImageOptions = {\n width: 200,\n resizeType: ResizeType.Cover\n};\n\nexport function getThumbnailUrl(\n imageCdnUrl: string,\n resource: Resource | Link,\n imageOptions?: ImageOptions\n): string {\n const options = imageOptions ?? DYNAMIC_RATIO_IMAGE_OPTIONS;\n const imageType = getImageType(resource);\n\n // Use the thumbnail if defined\n if ('thumbnail' in resource && resource.thumbnail?.url)\n return ImageHelper.createUrl(resource.thumbnail?.url, { ...options });\n \n const previewUrl = UrlHelper.safeUrlConcat(imageCdnUrl, '/v1/previews');\n\n if (!MasterTypeHelper.isResource(resource))\n return ImageHelper.createResourceImage(previewUrl, resource.url, { ...options });\n\n if (imageType === ImageType.Pdf) {\n return resource.metadata.type === ResourceFileType.Pdf ?\n ImageHelper.createResourceImage(previewUrl, resource.url, { ...options }) :\n ImageHelper.createResourceImage(previewUrl, resource.pdf?.url, { ...options });\n }\n\n if (resource.metadata.type !== ResourceFileType.Zip) {\n return ImageHelper.createUrl(\n resource.url,\n imageOptions ?? { size: ImageSize.Medium, resizeType: ResizeType.Cover }\n );\n }\n\n return '/images/zip-resource.png';\n}\n\nfunction getImageType(resource: Resource | Link): ImageType {\n if (!MasterTypeHelper.isResource(resource))\n return ImageType.Link;\n\n if (resource.metadata.type === ResourceFileType.Pdf || resource.pdf?.url)\n return ImageType.Pdf;\n\n return ImageType.Thumbnails;\n}\n\ninterface ResourceThumbnailProps {\n imageCdnUrl: string;\n resource: Resource | Link;\n imageErrorFallbackUrl: string;\n preloadImage: boolean;\n dynamicRatioImageOptions?: ImageOptions;\n}\n\nexport function ResourceThumbnail(props: ResourceThumbnailProps): JSX.Element {\n let metadata = null;\n let rotation = 0;\n\n if (MasterTypeHelper.isResource(props.resource)) {\n metadata = props.resource.metadata;\n rotation = props.resource.thumbnail?.metadata?.rotation ?? 0;\n }\n\n const thumbnailUrl = getThumbnailUrl(props.imageCdnUrl, props.resource, props.dynamicRatioImageOptions);\n\n return (\n <BaseImage\n data={thumbnailUrl}\n imageType={getImageType(props.resource)}\n imageStyle={{ transform: `rotate(${rotation}deg)` }}\n alt={props.resource.name}\n errorFallbackImageSrc={props.imageErrorFallbackUrl}\n errorFallbackImageClassName={styles.fallBackImage}\n imageClassName={metadata?.type === ResourceFileType.Image ? `${styles.imageTypeResource} ${styles.imageStyle}` : ''}\n preload={props.preloadImage}\n preventLoad={!props.preloadImage}\n >\n </BaseImage>\n );\n}\n","import { ResourceType } from 'libs/shared/interfaces';\n\nexport const ResourceHelper = {\n getResourceTypeName(resourceType: ResourceType): string {\n switch (resourceType) {\n case 'additional-materials':\n return 'Additional Materials';\n\n case 'atom-guide':\n return 'ATOM Guide';\n\n case 'teacher-pack':\n return 'Teacher Pack';\n\n case 'student-activity':\n return 'Student Activity';\n\n default:\n return 'N/A';\n }\n }\n};\n"],"mappings":"ybCeM,EAA4C,CAChD,MAAO,IACP,WAAY,EAAW,MACxB,CAED,SAAgB,EACd,EACA,EACA,EACQ,CACR,IAAM,EAAU,GAAgB,EAC1B,EAAY,EAAa,EAAS,CAGxC,GAAI,cAAe,GAAY,EAAS,WAAW,IACjD,OAAO,EAAY,UAAU,EAAS,WAAW,IAAK,CAAE,GAAG,EAAS,CAAC,CAEvE,IAAM,EAAa,EAAU,cAAc,EAAa,eAAe,CAkBvE,OAhBK,EAAiB,WAAW,EAAS,CAGtC,IAAc,EAAU,IACnB,EAAS,SAAS,OAAS,EAAiB,IACjD,EAAY,oBAAoB,EAAY,EAAS,IAAK,CAAE,GAAG,EAAS,CAAC,CACzE,EAAY,oBAAoB,EAAY,EAAS,KAAK,IAAK,CAAE,GAAG,EAAS,CAAC,CAG9E,EAAS,SAAS,OAAS,EAAiB,IAOzC,2BANE,EAAY,UACjB,EAAS,IACT,GAAgB,CAAE,KAAM,EAAU,OAAQ,WAAY,EAAW,MAAO,CACzE,CAZM,EAAY,oBAAoB,EAAY,EAAS,IAAK,CAAE,GAAG,EAAS,CAAC,CAkBpF,SAAS,EAAa,EAAsC,CAO1D,OANK,EAAiB,WAAW,EAAS,CAGtC,EAAS,SAAS,OAAS,EAAiB,KAAO,EAAS,KAAK,IAC5D,EAAU,IAEZ,EAAU,WALR,EAAU,KAgBrB,SAAgB,EAAkB,EAA4C,CAC5E,IAAI,EAAW,KACX,EAAW,EASf,OAPI,EAAiB,WAAW,EAAM,SAAS,GAC7C,EAAW,EAAM,SAAS,SAC1B,EAAW,EAAM,SAAS,WAAW,UAAU,UAAY,IAM3D,EAAA,EAAA,KAAC,EAAD,CACE,KAJiB,EAAgB,EAAM,YAAa,EAAM,SAAU,EAAM,yBAAyB,CAKnG,UAAW,EAAa,EAAM,SAAS,CACvC,WAAY,CAAE,UAAW,UAAU,EAAS,MAAO,CACnD,IAAK,EAAM,SAAS,KACpB,sBAAuB,EAAM,sBAC7B,4BAA6B,EAAO,cACpC,eAAgB,GAAU,OAAS,EAAiB,MAAQ,GAAG,EAAO,kBAAkB,GAAG,EAAO,aAAe,GACjH,QAAS,EAAM,aACf,YAAa,CAAC,EAAM,aAEV,CAAA,CC5FhB,IAAa,EAAiB,CAC5B,oBAAoB,EAAoC,CACtD,OAAQ,EAAR,CACE,IAAK,uBACH,MAAO,uBAET,IAAK,aACH,MAAO,aAET,IAAK,eACH,MAAO,eAET,IAAK,mBACH,MAAO,mBAET,QACE,MAAO,QAGd"}
@@ -0,0 +1 @@
1
+ import{g as e}from"./app-BIigh9wv.js";export{e as ErrorView};
@@ -1,2 +1,2 @@
1
- import"./Dp9qJj1C.chunk.js";import{lt as e,ut as t}from"./Dun43GrB.chunk.js";import{t as n}from"./CFXUbsBS.chunk.js";import{n as r}from"./CAEQvGr_.chunk.js";import{Z as i}from"./app-B1XBsz23.js";import{t as a}from"./EF7Q4oN02.chunk.js";t();var o=e();function s(e){return(0,o.jsx)(`svg`,{...e,children:(0,o.jsx)(`path`,{fill:`currentColor`,d:`M9.2 6h5.6V4.6a.6.6 0 1 1 1.2 0V6h2a1 1 0 0 1 1 1v11a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V7a1 1 0 0 1 1-1h2V4.6a.6.6 0 0 1 1.2 0zm8.8 5H6v7a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1zm-3.2 1.976a.51.51 0 0 0-.046-.706.477.477 0 0 0-.686.047l-3.063 3.598-1.092-1.122a.477.477 0 0 0-.688 0 .51.51 0 0 0 0 .707l1.46 1.5a.48.48 0 0 0 .71-.024z`})})}var c={livestream(e){return{url:r.urlBuilder(`/api/discover/v1/livestreams/${e}`,{query:`audiences,recording`}),key:`streamable:livestream:${e}}`}},calendarLivestreams(e){let t=Object.keys(e).map(t=>`${t}:${e[t]}`).join(`:`);return{url:r.urlBuilder(`/api/discover/v1/livestreams`,{status:a.Published,limit:100,query:`audiences`,...e}),key:`streamable:calendar:livestreams:${t}`,normalize:!1,formatData:e=>e.data.map(e=>({id:e.id,startDate:n.format(i.convertUTCToTimezoneDate(e.startDateTime),`YYYY-MM-DD`),type:`Livestream`,name:e.name,description:e.description,content:e}))}}};export{s as n,c as t};
2
- //# sourceMappingURL=DLp7yHzT2.chunk.js.map
1
+ import"./Dp9qJj1C.chunk.js";import{lt as e,ut as t}from"./Dun43GrB.chunk.js";import{t as n}from"./CFXUbsBS.chunk.js";import{n as r}from"./CAEQvGr_.chunk.js";import{Z as i}from"./app-BIigh9wv.js";import{t as a}from"./EF7Q4oN02.chunk.js";t();var o=e();function s(e){return(0,o.jsx)(`svg`,{...e,children:(0,o.jsx)(`path`,{fill:`currentColor`,d:`M9.2 6h5.6V4.6a.6.6 0 1 1 1.2 0V6h2a1 1 0 0 1 1 1v11a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V7a1 1 0 0 1 1-1h2V4.6a.6.6 0 0 1 1.2 0zm8.8 5H6v7a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1zm-3.2 1.976a.51.51 0 0 0-.046-.706.477.477 0 0 0-.686.047l-3.063 3.598-1.092-1.122a.477.477 0 0 0-.688 0 .51.51 0 0 0 0 .707l1.46 1.5a.48.48 0 0 0 .71-.024z`})})}var c={livestream(e){return{url:r.urlBuilder(`/api/discover/v1/livestreams/${e}`,{query:`audiences,recording`}),key:`streamable:livestream:${e}}`}},calendarLivestreams(e){let t=Object.keys(e).map(t=>`${t}:${e[t]}`).join(`:`);return{url:r.urlBuilder(`/api/discover/v1/livestreams`,{status:a.Published,limit:100,query:`audiences`,...e}),key:`streamable:calendar:livestreams:${t}`,normalize:!1,formatData:e=>e.data.map(e=>({id:e.id,startDate:n.format(i.convertUTCToTimezoneDate(e.startDateTime),`YYYY-MM-DD`),type:`Livestream`,name:e.name,description:e.description,content:e}))}}};export{s as n,c as t};
2
+ //# sourceMappingURL=C5i1HsPp2.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DLp7yHzT2.chunk.js","names":[],"sources":["../../../../libs/shared/src/images/svg/objects/CalendarCheckSvg.tsx","../../src/shared/flight-requests/LivestreamRequests.ts"],"sourcesContent":["import React from 'react';\n\nexport function CalendarCheckSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n fill='currentColor'\n d='M9.2 6h5.6V4.6a.6.6 0 1 1 1.2 0V6h2a1 1 0 0 1 1 1v11a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V7a1 1 0 0 1 1-1h2V4.6a.6.6 0 0 1 1.2 0zm8.8 5H6v7a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1zm-3.2 1.976a.51.51 0 0 0-.046-.706.477.477 0 0 0-.686.047l-3.063 3.598-1.092-1.122a.477.477 0 0 0-.688 0 .51.51 0 0 0 0 .707l1.46 1.5a.48.48 0 0 0 .71-.024z'\n />\n </svg>\n );\n}\n","import { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/react/index';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { TimezoneHelper } from 'libs/shared/apps/streamable-learning/utils/TimezoneHelper';\nimport { CurationStatus } from 'libs/shared/enums/CurationStatus';\nimport { BasePaginatedCollection, CalendarEvent, Livestream } from 'libs/shared/interfaces';\n\nexport const LivestreamRequests = {\n livestream(\n id: string\n ): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(`/api/discover/v1/livestreams/${id}`, { query: 'audiences,recording' }),\n key: `streamable:livestream:${id}}`\n };\n },\n calendarLivestreams(queryParams: HashObject): Flight.Request {\n const key = Object.keys(queryParams).map(param => `${param}:${queryParams[param]}`).join(':');\n\n return {\n url: UrlHelper.urlBuilder(`/api/discover/v1/livestreams`, {\n status: CurationStatus.Published,\n limit: 100,\n query: 'audiences',\n ...queryParams\n }),\n key: `streamable:calendar:livestreams:${key}`,\n normalize: false,\n formatData: (paginatedData: BasePaginatedCollection<Livestream>): CalendarEvent<Livestream>[] => {\n return paginatedData.data.map(livestream => ({\n id: livestream.id,\n startDate: DateHelper.format(TimezoneHelper.convertUTCToTimezoneDate(livestream.startDateTime), 'YYYY-MM-DD'),\n type: 'Livestream',\n name: livestream.name,\n description: livestream.description,\n content: livestream\n }));\n }\n };\n }\n};\n"],"mappings":"0PAEA,SAAgB,EAAiB,EAAsC,CACrE,OACE,EAAA,EAAA,KAAC,MAAD,CAAK,GAAI,YACP,EAAA,EAAA,KAAC,OAAD,CACE,KAAK,eACL,EAAE,mUACF,CAAA,CACE,CAAA,CCAV,IAAa,EAAqB,CAChC,WACE,EACgB,CAChB,MAAO,CACL,IAAK,EAAU,WAAW,gCAAgC,IAAM,CAAE,MAAO,sBAAuB,CAAC,CACjG,IAAK,yBAAyB,EAAG,GAClC,EAEH,oBAAoB,EAAyC,CAC3D,IAAM,EAAM,OAAO,KAAK,EAAY,CAAC,IAAI,GAAS,GAAG,EAAM,GAAG,EAAY,KAAS,CAAC,KAAK,IAAI,CAE7F,MAAO,CACL,IAAK,EAAU,WAAW,+BAAgC,CACxD,OAAQ,EAAe,UACvB,MAAO,IACP,MAAO,YACP,GAAG,EACJ,CAAC,CACF,IAAK,mCAAmC,IACxC,UAAW,GACX,WAAa,GACJ,EAAc,KAAK,IAAI,IAAe,CAC3C,GAAI,EAAW,GACf,UAAW,EAAW,OAAO,EAAe,yBAAyB,EAAW,cAAc,CAAE,aAAa,CAC7G,KAAM,aACN,KAAM,EAAW,KACjB,YAAa,EAAW,YACxB,QAAS,EACV,EAAE,CAEN,EAEJ"}
1
+ {"version":3,"file":"C5i1HsPp2.chunk.js","names":[],"sources":["../../../../libs/shared/src/images/svg/objects/CalendarCheckSvg.tsx","../../src/shared/flight-requests/LivestreamRequests.ts"],"sourcesContent":["import React from 'react';\n\nexport function CalendarCheckSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n fill='currentColor'\n d='M9.2 6h5.6V4.6a.6.6 0 1 1 1.2 0V6h2a1 1 0 0 1 1 1v11a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V7a1 1 0 0 1 1-1h2V4.6a.6.6 0 0 1 1.2 0zm8.8 5H6v7a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1zm-3.2 1.976a.51.51 0 0 0-.046-.706.477.477 0 0 0-.686.047l-3.063 3.598-1.092-1.122a.477.477 0 0 0-.688 0 .51.51 0 0 0 0 .707l1.46 1.5a.48.48 0 0 0 .71-.024z'\n />\n </svg>\n );\n}\n","import { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/react/index';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { TimezoneHelper } from 'libs/shared/apps/streamable-learning/utils/TimezoneHelper';\nimport { CurationStatus } from 'libs/shared/enums/CurationStatus';\nimport { BasePaginatedCollection, CalendarEvent, Livestream } from 'libs/shared/interfaces';\n\nexport const LivestreamRequests = {\n livestream(\n id: string\n ): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(`/api/discover/v1/livestreams/${id}`, { query: 'audiences,recording' }),\n key: `streamable:livestream:${id}}`\n };\n },\n calendarLivestreams(queryParams: HashObject): Flight.Request {\n const key = Object.keys(queryParams).map(param => `${param}:${queryParams[param]}`).join(':');\n\n return {\n url: UrlHelper.urlBuilder(`/api/discover/v1/livestreams`, {\n status: CurationStatus.Published,\n limit: 100,\n query: 'audiences',\n ...queryParams\n }),\n key: `streamable:calendar:livestreams:${key}`,\n normalize: false,\n formatData: (paginatedData: BasePaginatedCollection<Livestream>): CalendarEvent<Livestream>[] => {\n return paginatedData.data.map(livestream => ({\n id: livestream.id,\n startDate: DateHelper.format(TimezoneHelper.convertUTCToTimezoneDate(livestream.startDateTime), 'YYYY-MM-DD'),\n type: 'Livestream',\n name: livestream.name,\n description: livestream.description,\n content: livestream\n }));\n }\n };\n }\n};\n"],"mappings":"0PAEA,SAAgB,EAAiB,EAAsC,CACrE,OACE,EAAA,EAAA,KAAC,MAAD,CAAK,GAAI,YACP,EAAA,EAAA,KAAC,OAAD,CACE,KAAK,eACL,EAAE,mUACF,CAAA,CACE,CAAA,CCAV,IAAa,EAAqB,CAChC,WACE,EACgB,CAChB,MAAO,CACL,IAAK,EAAU,WAAW,gCAAgC,IAAM,CAAE,MAAO,sBAAuB,CAAC,CACjG,IAAK,yBAAyB,EAAG,GAClC,EAEH,oBAAoB,EAAyC,CAC3D,IAAM,EAAM,OAAO,KAAK,EAAY,CAAC,IAAI,GAAS,GAAG,EAAM,GAAG,EAAY,KAAS,CAAC,KAAK,IAAI,CAE7F,MAAO,CACL,IAAK,EAAU,WAAW,+BAAgC,CACxD,OAAQ,EAAe,UACvB,MAAO,IACP,MAAO,YACP,GAAG,EACJ,CAAC,CACF,IAAK,mCAAmC,IACxC,UAAW,GACX,WAAa,GACJ,EAAc,KAAK,IAAI,IAAe,CAC3C,GAAI,EAAW,GACf,UAAW,EAAW,OAAO,EAAe,yBAAyB,EAAW,cAAc,CAAE,aAAa,CAC7G,KAAM,aACN,KAAM,EAAW,KACjB,YAAa,EAAW,YACxB,QAAS,EACV,EAAE,CAEN,EAEJ"}
@@ -1,4 +1,4 @@
1
- import{gt as e,v as t}from"./Dp9qJj1C.chunk.js";import{t as n}from"./BJvPfCvt.chunk.js";import{lt as r,n as i,ut as a}from"./Dun43GrB.chunk.js";import{n as o,t as s}from"./Ca1QPe-q2.chunk.js";import{N as c}from"./app-B1XBsz23.js";import{n as l,t as u}from"./CeyqMjfq.chunk.js";var d={pillTabSelector:`_pillTabSelector_a6f6x_1`,tab:`_tab_a6f6x_4`,minWidth:`_minWidth_a6f6x_21`,radiusSmall:`_radiusSmall_a6f6x_24`,tabLink:`_tabLink_a6f6x_35`},f=e(a()),p=r();function m(e){return(0,p.jsxs)(p.Fragment,{children:[!!e.tab.svg&&(0,p.jsx)(`div`,{className:e.tab.name?`pe-1`:``,children:(0,p.jsx)(n,{svg:e.tab.svg,size:e.tab.svgSize})}),e.formatDisplayText?.(e.tab.name)??e.tab.name,typeof e.tab.count==`number`&&(0,p.jsx)(`div`,{className:`ps-2`,children:(0,p.jsx)(u,{type:l.Count,data:e.tab.count})})]})}function h(e){let{borderRadius:n=`lg`}=e,r=c();function a(e){e.analyticsData&&e.analyticsOptions&&i.logUserAction(e.analyticsData,e.analyticsOptions)}function l(e){e.active||!e.onSelect||(e.onSelect(),a(e))}function u(n){let r=n.target.value,i=e.tabs.find(e=>e.name===r);!i||i.active||(a(i),t.trigger(i.appLink))}let h=e.tabs.find(e=>e.active),g=e.forceSmallScreenDropdown||e.enableSmallScreenSupport&&(r.sm||r.xs);return(0,p.jsxs)(`nav`,{className:e.className??``,children:[g&&(0,p.jsx)(`select`,{className:`form-select`,onChange:u,value:h?.name,style:{minWidth:`150px`},children:e.tabs.map((t,n)=>t.hide?(0,p.jsx)(f.Fragment,{},n):(0,p.jsx)(`option`,{value:t.name,children:e.formatDisplayText?.(t.name)??t.name},n))}),!g&&(0,p.jsx)(`ul`,{className:`
1
+ import{gt as e,v as t}from"./Dp9qJj1C.chunk.js";import{t as n}from"./BJvPfCvt.chunk.js";import{lt as r,n as i,ut as a}from"./Dun43GrB.chunk.js";import{n as o,t as s}from"./Ca1QPe-q2.chunk.js";import{N as c}from"./app-BIigh9wv.js";import{n as l,t as u}from"./CeyqMjfq.chunk.js";var d={pillTabSelector:`_pillTabSelector_a6f6x_1`,tab:`_tab_a6f6x_4`,minWidth:`_minWidth_a6f6x_21`,radiusSmall:`_radiusSmall_a6f6x_24`,tabLink:`_tabLink_a6f6x_35`},f=e(a()),p=r();function m(e){return(0,p.jsxs)(p.Fragment,{children:[!!e.tab.svg&&(0,p.jsx)(`div`,{className:e.tab.name?`pe-1`:``,children:(0,p.jsx)(n,{svg:e.tab.svg,size:e.tab.svgSize})}),e.formatDisplayText?.(e.tab.name)??e.tab.name,typeof e.tab.count==`number`&&(0,p.jsx)(`div`,{className:`ps-2`,children:(0,p.jsx)(u,{type:l.Count,data:e.tab.count})})]})}function h(e){let{borderRadius:n=`lg`}=e,r=c();function a(e){e.analyticsData&&e.analyticsOptions&&i.logUserAction(e.analyticsData,e.analyticsOptions)}function l(e){e.active||!e.onSelect||(e.onSelect(),a(e))}function u(n){let r=n.target.value,i=e.tabs.find(e=>e.name===r);!i||i.active||(a(i),t.trigger(i.appLink))}let h=e.tabs.find(e=>e.active),g=e.forceSmallScreenDropdown||e.enableSmallScreenSupport&&(r.sm||r.xs);return(0,p.jsxs)(`nav`,{className:e.className??``,children:[g&&(0,p.jsx)(`select`,{className:`form-select`,onChange:u,value:h?.name,style:{minWidth:`150px`},children:e.tabs.map((t,n)=>t.hide?(0,p.jsx)(f.Fragment,{},n):(0,p.jsx)(`option`,{value:t.name,children:e.formatDisplayText?.(t.name)??t.name},n))}),!g&&(0,p.jsx)(`ul`,{className:`
2
2
  list-unstyled d-inline-block m-0 ${d.pillTabSelector}
3
3
  ${n?d.radiusSmall:``}
4
4
  ${e.listClassName}
@@ -12,4 +12,4 @@ import{gt as e,v as t}from"./Dp9qJj1C.chunk.js";import{t as n}from"./BJvPfCvt.ch
12
12
  cursor-pointer d-flex align-items-center justify-content-center
13
13
  text-decoration-none text-reset px-2 text-nowrap ${d.tabLink}
14
14
  `,onClick:()=>l(t),children:(0,p.jsx)(m,{tab:t,formatDisplayText:e.formatDisplayText})})},n))})]})}export{h as t};
15
- //# sourceMappingURL=Bkv1Tbyu.chunk.js.map
15
+ //# sourceMappingURL=CCoZQmgX.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Bkv1Tbyu.chunk.js","names":[],"sources":["../../../../libs/shared/src/components/pill-tab-selector/pill-tab-selector.module.scss","../../../../libs/shared/src/components/pill-tab-selector/PillTabSelector.tsx"],"sourcesContent":[":local {\n $pill-tab-min-width: 7rem;\n\n .pillTabSelector {\n border-radius: $border-radius-lg;\n\n .tab {\n border-radius: 0;\n\n &:first-child {\n border-top-left-radius: $border-radius-lg;\n border-bottom-left-radius: $border-radius-lg;\n }\n\n &:last-child {\n border-top-right-radius: $border-radius-lg;\n border-bottom-right-radius: $border-radius-lg;\n }\n\n &:not(:first-child) {\n border-left: none;\n }\n\n &:not(:last-child) {\n border-right: none;\n }\n\n &.minWidth {\n min-width: $pill-tab-min-width;\n }\n }\n\n &.radiusSmall {\n border-radius: $border-radius;\n\n li {\n &:first-child {\n border-top-left-radius: $border-radius;\n border-bottom-left-radius: $border-radius;\n }\n \n &:last-child {\n border-top-right-radius: $border-radius;\n border-bottom-right-radius: $border-radius;\n }\n }\n }\n\n .tabLink {\n padding-top: $input-btn-padding-y;\n padding-bottom: $input-btn-padding-y;\n }\n }\n}","import React from 'react';\n\nimport { AppLinkHelper } from 'libs/common/backbone/core';\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';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { SvgIcon } from 'libs/shared/utils/SvgHelper';\n\nimport { SvgContainer, SvgContainerSize } from '../svg-container/SvgContainer';\n\nimport styles from './pill-tab-selector.module.scss';\n\ninterface TabContentsProps {\n tab: PillTab;\n formatDisplayText?: (name: string) => string;\n}\n\nfunction TabContents(props: TabContentsProps): JSX.Element {\n return (\n <>\n {!!props.tab.svg && (\n <div className={props.tab.name ? 'pe-1' : ''}>\n <SvgContainer svg={props.tab.svg} size={props.tab.svgSize} />\n </div>\n )}\n\n {props.formatDisplayText?.(props.tab.name) ?? 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 svg?: SvgIcon;\n svgSize?: SvgContainerSize;\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 hide?: boolean;\n}\n\ninterface PillTabSelectorProps {\n tabs: PillTab[];\n listClassName?: string;\n className?: string;\n borderRadius?: 'sm' | 'lg';\n enableSmallScreenSupport?: boolean;\n formatDisplayText?: (name: string) => string;\n forceSmallScreenDropdown?: boolean;\n}\n\nexport function PillTabSelector(props: PillTabSelectorProps): JSX.Element {\n const { borderRadius = 'lg' } = props;\n \n const breakpoints = useBreakpoints();\n \n function logAnalytics(tab: PillTab): void {\n if (tab.analyticsData && tab.analyticsOptions)\n AnalyticsHelper.logUserAction(tab.analyticsData, tab.analyticsOptions);\n }\n \n function onSelectTab(tab: PillTab): void {\n if (tab.active || !tab.onSelect)\n return;\n\n tab.onSelect();\n\n logAnalytics(tab);\n }\n\n function onChangeSelect(event: React.ChangeEvent<HTMLSelectElement>): void {\n const value = event.target.value;\n const tab = props.tabs.find(tab => tab.name === value);\n if (!tab || tab.active)\n return;\n \n logAnalytics(tab);\n AppLinkHelper.trigger(tab.appLink);\n }\n\n const selectedTab = props.tabs.find(tab => tab.active);\n const showSelectDropdown = props.forceSmallScreenDropdown\n || (props.enableSmallScreenSupport && (breakpoints.sm || breakpoints.xs));\n\n return (\n <nav className={props.className ?? ''}>\n {showSelectDropdown && (\n <select className='form-select' onChange={onChangeSelect} value={selectedTab?.name} style={{ minWidth: '150px' }}>\n {props.tabs.map((tab, index) => {\n if (tab.hide)\n return <React.Fragment key={index}/>;\n\n return (\n <option\n key={index}\n value={tab.name}>\n {props.formatDisplayText?.(tab.name) ?? tab.name}\n </option>\n );\n })}\n </select>\n )}\n \n {!showSelectDropdown && (\n <ul className={`\n list-unstyled d-inline-block m-0 ${styles.pillTabSelector}\n ${borderRadius ? styles.radiusSmall : ''}\n ${props.listClassName}\n `}>\n {props.tabs.map((tab, index) => {\n if (tab.hide)\n return <React.Fragment key={index}/>;\n \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} formatDisplayText={props.formatDisplayText} />\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} formatDisplayText={props.formatDisplayText} />\n </DivButton>\n )}\n </li>\n );\n })}\n </ul>\n )}\n </nav>\n );\n}\n"],"mappings":"wcCwBA,SAAS,EAAY,EAAsC,CACzD,OACE,EAAA,EAAA,MAAA,EAAA,SAAA,CAAA,SAAA,CACG,CAAC,CAAC,EAAM,IAAI,MACX,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,EAAM,IAAI,KAAO,OAAS,aACxC,EAAA,EAAA,KAAC,EAAD,CAAc,IAAK,EAAM,IAAI,IAAK,KAAM,EAAM,IAAI,QAAW,CAAA,CACzD,CAAA,CAGP,EAAM,oBAAoB,EAAM,IAAI,KAAK,EAAI,EAAM,IAAI,KAEvD,OAAQ,EAAM,IAAI,OAAW,WAC5B,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,iBACb,EAAA,EAAA,KAAC,EAAD,CAAO,KAAM,EAAU,MAAO,KAAM,EAAM,IAAI,MAAS,CAAA,CACnD,CAAA,CAEP,CAAA,CAAA,CAiCP,SAAgB,EAAgB,EAA0C,CACxE,GAAM,CAAE,eAAe,MAAS,EAE1B,EAAc,GAAgB,CAEpC,SAAS,EAAa,EAAoB,CACpC,EAAI,eAAiB,EAAI,kBAC3B,EAAgB,cAAc,EAAI,cAAe,EAAI,iBAAiB,CAG1E,SAAS,EAAY,EAAoB,CACnC,EAAI,QAAU,CAAC,EAAI,WAGvB,EAAI,UAAU,CAEd,EAAa,EAAI,EAGnB,SAAS,EAAe,EAAmD,CACzE,IAAM,EAAQ,EAAM,OAAO,MACrB,EAAM,EAAM,KAAK,KAAK,GAAO,EAAI,OAAS,EAAM,CAClD,CAAC,GAAO,EAAI,SAGhB,EAAa,EAAI,CACjB,EAAc,QAAQ,EAAI,QAAQ,EAGpC,IAAM,EAAc,EAAM,KAAK,KAAK,GAAO,EAAI,OAAO,CAChD,EAAqB,EAAM,0BAC3B,EAAM,2BAA6B,EAAY,IAAM,EAAY,IAEvE,OACE,EAAA,EAAA,MAAC,MAAD,CAAK,UAAW,EAAM,WAAa,YAAnC,CACG,IACC,EAAA,EAAA,KAAC,SAAD,CAAQ,UAAU,cAAc,SAAU,EAAgB,MAAO,GAAa,KAAM,MAAO,CAAE,SAAU,QAAS,UAC7G,EAAM,KAAK,KAAK,EAAK,IAChB,EAAI,MACC,EAAA,EAAA,KAAA,EAAO,SAAP,EAA6B,CAAR,EAAQ,EAGpC,EAAA,EAAA,KAAC,SAAD,CAEE,MAAO,EAAI,cACV,EAAM,oBAAoB,EAAI,KAAK,EAAI,EAAI,KACrC,CAHF,EAGE,EAGN,CAAA,CAGV,CAAC,IACA,EAAA,EAAA,KAAC,KAAD,CAAI,UAAW;6CACsB,EAAO,gBAAA;YACxC,EAAe,EAAO,YAAc,GAAA;YACpC,EAAM,cAAA;mBAEP,EAAM,KAAK,KAAK,EAAK,IAChB,EAAI,MACC,EAAA,EAAA,KAAA,EAAO,SAAP,EAA6B,CAAR,EAAQ,EAGpC,EAAA,EAAA,KAAC,KAAD,CACE,UAAW;sBACL,EAAO,IAAI,GAAG,EAAI,OAAS,eAAiB,uBAAA;kBAChD,EAAI,KAAO,EAAO,SAAW,GAAG,GAAG,EAAI,UAAA;yBAIxC,EAAI,SACH,EAAA,EAAA,KAAC,EAAD,CACE,QAAS,EAAI,QACb,cAAe,EAAI,cACnB,iBAAkB,EAAI,iBACtB,UAAW;;uEAEwC,EAAO,QAAA;8BAG1D,EAAA,EAAA,KAAC,EAAD,CAAkB,MAAK,kBAAmB,EAAM,kBAAqB,CAAA,CAC7D,CAAA,EAEV,EAAA,EAAA,KAAC,EAAD,CACE,UAAW;;uEAEwC,EAAO,QAAA;oBAE1D,YAAe,EAAY,EAAI,WAE/B,EAAA,EAAA,KAAC,EAAD,CAAkB,MAAK,kBAAmB,EAAM,kBAAqB,CAAA,CAC3D,CAAA,CAEX,CAzBE,EAyBF,EAGN,CAAA,CAAA"}
1
+ {"version":3,"file":"CCoZQmgX.chunk.js","names":[],"sources":["../../../../libs/shared/src/components/pill-tab-selector/pill-tab-selector.module.scss","../../../../libs/shared/src/components/pill-tab-selector/PillTabSelector.tsx"],"sourcesContent":[":local {\n $pill-tab-min-width: 7rem;\n\n .pillTabSelector {\n border-radius: $border-radius-lg;\n\n .tab {\n border-radius: 0;\n\n &:first-child {\n border-top-left-radius: $border-radius-lg;\n border-bottom-left-radius: $border-radius-lg;\n }\n\n &:last-child {\n border-top-right-radius: $border-radius-lg;\n border-bottom-right-radius: $border-radius-lg;\n }\n\n &:not(:first-child) {\n border-left: none;\n }\n\n &:not(:last-child) {\n border-right: none;\n }\n\n &.minWidth {\n min-width: $pill-tab-min-width;\n }\n }\n\n &.radiusSmall {\n border-radius: $border-radius;\n\n li {\n &:first-child {\n border-top-left-radius: $border-radius;\n border-bottom-left-radius: $border-radius;\n }\n \n &:last-child {\n border-top-right-radius: $border-radius;\n border-bottom-right-radius: $border-radius;\n }\n }\n }\n\n .tabLink {\n padding-top: $input-btn-padding-y;\n padding-bottom: $input-btn-padding-y;\n }\n }\n}","import React from 'react';\n\nimport { AppLinkHelper } from 'libs/common/backbone/core';\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';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { SvgIcon } from 'libs/shared/utils/SvgHelper';\n\nimport { SvgContainer, SvgContainerSize } from '../svg-container/SvgContainer';\n\nimport styles from './pill-tab-selector.module.scss';\n\ninterface TabContentsProps {\n tab: PillTab;\n formatDisplayText?: (name: string) => string;\n}\n\nfunction TabContents(props: TabContentsProps): JSX.Element {\n return (\n <>\n {!!props.tab.svg && (\n <div className={props.tab.name ? 'pe-1' : ''}>\n <SvgContainer svg={props.tab.svg} size={props.tab.svgSize} />\n </div>\n )}\n\n {props.formatDisplayText?.(props.tab.name) ?? 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 svg?: SvgIcon;\n svgSize?: SvgContainerSize;\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 hide?: boolean;\n}\n\ninterface PillTabSelectorProps {\n tabs: PillTab[];\n listClassName?: string;\n className?: string;\n borderRadius?: 'sm' | 'lg';\n enableSmallScreenSupport?: boolean;\n formatDisplayText?: (name: string) => string;\n forceSmallScreenDropdown?: boolean;\n}\n\nexport function PillTabSelector(props: PillTabSelectorProps): JSX.Element {\n const { borderRadius = 'lg' } = props;\n \n const breakpoints = useBreakpoints();\n \n function logAnalytics(tab: PillTab): void {\n if (tab.analyticsData && tab.analyticsOptions)\n AnalyticsHelper.logUserAction(tab.analyticsData, tab.analyticsOptions);\n }\n \n function onSelectTab(tab: PillTab): void {\n if (tab.active || !tab.onSelect)\n return;\n\n tab.onSelect();\n\n logAnalytics(tab);\n }\n\n function onChangeSelect(event: React.ChangeEvent<HTMLSelectElement>): void {\n const value = event.target.value;\n const tab = props.tabs.find(tab => tab.name === value);\n if (!tab || tab.active)\n return;\n \n logAnalytics(tab);\n AppLinkHelper.trigger(tab.appLink);\n }\n\n const selectedTab = props.tabs.find(tab => tab.active);\n const showSelectDropdown = props.forceSmallScreenDropdown\n || (props.enableSmallScreenSupport && (breakpoints.sm || breakpoints.xs));\n\n return (\n <nav className={props.className ?? ''}>\n {showSelectDropdown && (\n <select className='form-select' onChange={onChangeSelect} value={selectedTab?.name} style={{ minWidth: '150px' }}>\n {props.tabs.map((tab, index) => {\n if (tab.hide)\n return <React.Fragment key={index}/>;\n\n return (\n <option\n key={index}\n value={tab.name}>\n {props.formatDisplayText?.(tab.name) ?? tab.name}\n </option>\n );\n })}\n </select>\n )}\n \n {!showSelectDropdown && (\n <ul className={`\n list-unstyled d-inline-block m-0 ${styles.pillTabSelector}\n ${borderRadius ? styles.radiusSmall : ''}\n ${props.listClassName}\n `}>\n {props.tabs.map((tab, index) => {\n if (tab.hide)\n return <React.Fragment key={index}/>;\n \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} formatDisplayText={props.formatDisplayText} />\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} formatDisplayText={props.formatDisplayText} />\n </DivButton>\n )}\n </li>\n );\n })}\n </ul>\n )}\n </nav>\n );\n}\n"],"mappings":"wcCwBA,SAAS,EAAY,EAAsC,CACzD,OACE,EAAA,EAAA,MAAA,EAAA,SAAA,CAAA,SAAA,CACG,CAAC,CAAC,EAAM,IAAI,MACX,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,EAAM,IAAI,KAAO,OAAS,aACxC,EAAA,EAAA,KAAC,EAAD,CAAc,IAAK,EAAM,IAAI,IAAK,KAAM,EAAM,IAAI,QAAW,CAAA,CACzD,CAAA,CAGP,EAAM,oBAAoB,EAAM,IAAI,KAAK,EAAI,EAAM,IAAI,KAEvD,OAAQ,EAAM,IAAI,OAAW,WAC5B,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,iBACb,EAAA,EAAA,KAAC,EAAD,CAAO,KAAM,EAAU,MAAO,KAAM,EAAM,IAAI,MAAS,CAAA,CACnD,CAAA,CAEP,CAAA,CAAA,CAiCP,SAAgB,EAAgB,EAA0C,CACxE,GAAM,CAAE,eAAe,MAAS,EAE1B,EAAc,GAAgB,CAEpC,SAAS,EAAa,EAAoB,CACpC,EAAI,eAAiB,EAAI,kBAC3B,EAAgB,cAAc,EAAI,cAAe,EAAI,iBAAiB,CAG1E,SAAS,EAAY,EAAoB,CACnC,EAAI,QAAU,CAAC,EAAI,WAGvB,EAAI,UAAU,CAEd,EAAa,EAAI,EAGnB,SAAS,EAAe,EAAmD,CACzE,IAAM,EAAQ,EAAM,OAAO,MACrB,EAAM,EAAM,KAAK,KAAK,GAAO,EAAI,OAAS,EAAM,CAClD,CAAC,GAAO,EAAI,SAGhB,EAAa,EAAI,CACjB,EAAc,QAAQ,EAAI,QAAQ,EAGpC,IAAM,EAAc,EAAM,KAAK,KAAK,GAAO,EAAI,OAAO,CAChD,EAAqB,EAAM,0BAC3B,EAAM,2BAA6B,EAAY,IAAM,EAAY,IAEvE,OACE,EAAA,EAAA,MAAC,MAAD,CAAK,UAAW,EAAM,WAAa,YAAnC,CACG,IACC,EAAA,EAAA,KAAC,SAAD,CAAQ,UAAU,cAAc,SAAU,EAAgB,MAAO,GAAa,KAAM,MAAO,CAAE,SAAU,QAAS,UAC7G,EAAM,KAAK,KAAK,EAAK,IAChB,EAAI,MACC,EAAA,EAAA,KAAA,EAAO,SAAP,EAA6B,CAAR,EAAQ,EAGpC,EAAA,EAAA,KAAC,SAAD,CAEE,MAAO,EAAI,cACV,EAAM,oBAAoB,EAAI,KAAK,EAAI,EAAI,KACrC,CAHF,EAGE,EAGN,CAAA,CAGV,CAAC,IACA,EAAA,EAAA,KAAC,KAAD,CAAI,UAAW;6CACsB,EAAO,gBAAA;YACxC,EAAe,EAAO,YAAc,GAAA;YACpC,EAAM,cAAA;mBAEP,EAAM,KAAK,KAAK,EAAK,IAChB,EAAI,MACC,EAAA,EAAA,KAAA,EAAO,SAAP,EAA6B,CAAR,EAAQ,EAGpC,EAAA,EAAA,KAAC,KAAD,CACE,UAAW;sBACL,EAAO,IAAI,GAAG,EAAI,OAAS,eAAiB,uBAAA;kBAChD,EAAI,KAAO,EAAO,SAAW,GAAG,GAAG,EAAI,UAAA;yBAIxC,EAAI,SACH,EAAA,EAAA,KAAC,EAAD,CACE,QAAS,EAAI,QACb,cAAe,EAAI,cACnB,iBAAkB,EAAI,iBACtB,UAAW;;uEAEwC,EAAO,QAAA;8BAG1D,EAAA,EAAA,KAAC,EAAD,CAAkB,MAAK,kBAAmB,EAAM,kBAAqB,CAAA,CAC7D,CAAA,EAEV,EAAA,EAAA,KAAC,EAAD,CACE,UAAW;;uEAEwC,EAAO,QAAA;oBAE1D,YAAe,EAAY,EAAI,WAE/B,EAAA,EAAA,KAAC,EAAD,CAAkB,MAAK,kBAAmB,EAAM,kBAAqB,CAAA,CAC3D,CAAA,CAEX,CAzBE,EAyBF,EAGN,CAAA,CAAA"}
@@ -1,2 +1,2 @@
1
- import"./Dp9qJj1C.chunk.js";import{t as e}from"./ImQRQGZr.chunk.js";import{lt as t,ut as n}from"./Dun43GrB.chunk.js";import{t as r}from"./CFXUbsBS.chunk.js";import{l as i}from"./BQ5XMoHG.chunk.js";import{n as a}from"./C9ET3pjZ.chunk.js";import{r as o,t as s}from"./D2om474U2.chunk.js";import{E as c,M as l,q as u,z as d}from"./app-B1XBsz23.js";import{t as f}from"./Dd8r1SE32.chunk.js";import{t as p}from"./DLp7yHzT2.chunk.js";import{a as m,i as h,r as g,t as _}from"./DAvXFgC62.chunk.js";var v=c();n();var y={modalWidth:`_modalWidth_t2uj7_1`,buttons:`_buttons_t2uj7_6`},b=t(),x=`specialEventCalendar.eventListPopup`,S=e.encloseNamespace(x),C=400,w=300;function T(t){let n=i(u.streamablePresentation()),{hasPermissions:c}=l(),T=c(a.StudentExperience),E=new Date(t.from),D=new Date(t.to),O=i(n.data?.id&&p.calendarLivestreams({from:r.format(E,`YYYY-MM-DD`),to:r.format(D,`YYYY-MM-DD`)})),k=O.data?.filter(e=>e.startDate===r.format(new Date(t.date),`YYYY-MM-DD`))||[];function A(e){return T||g.isPastEvent(e)?`pastActionLabel`:`actionLabel`}function j(e){return s.createUrl(e.company.banner?.url,{size:o.Large})}function M(e){return s.createUrl(e.company.logo?.url,{size:o.Small})}return(0,b.jsxs)(d,{title:`Events on ${f.getOrdinalDate(t.date)}`,closePopup:t.closePopup,dialogClassName:y.modalWidth,bodyClassName:`p-0`,showLoadingSpinner:!O.data,children:[(0,b.jsx)(v.Scrollbars,{autoHeight:!0,autoHeightMin:w,autoHeightMax:C,children:(0,b.jsx)(`div`,{className:`px-3 pt-2`,children:k.map((e,r)=>(0,b.jsx)(m,{getAppLink:_().event,event:e,onClick:t.closePopup,inPopup:!0,presentationId:n.data?.id,getActionLabel:()=>S(A(e.content)),getBackgroundColor:e=>e.company.metadata?.colour,getBannerUrl:j,getIconUrl:M,getStartTime:g.isSameTime(k,r)?null:g.getStartTime,isPastEvent:g.isPastEvent},e.content.id))})}),(0,b.jsxs)(`div`,{className:`d-flex justify-content-between align-items-center p-3 border-top`,children:[(0,b.jsx)(h,{}),(0,b.jsx)(`button`,{onClick:t.closePopup,className:`btn btn-outline-dark`,children:e.getPhrase(x,`close`)})]})]})}export{T as SpecialEventListView};
2
- //# sourceMappingURL=Clh6wBrg.chunk.js.map
1
+ import"./Dp9qJj1C.chunk.js";import{t as e}from"./ImQRQGZr.chunk.js";import{lt as t,ut as n}from"./Dun43GrB.chunk.js";import{t as r}from"./CFXUbsBS.chunk.js";import{l as i}from"./BQ5XMoHG.chunk.js";import{n as a}from"./C9ET3pjZ.chunk.js";import{r as o,t as s}from"./D2om474U2.chunk.js";import{E as c,M as l,q as u,z as d}from"./app-BIigh9wv.js";import{t as f}from"./BsAo7Lri2.chunk.js";import{t as p}from"./C5i1HsPp2.chunk.js";import{a as m,i as h,r as g,t as _}from"./CKdklY2o2.chunk.js";var v=c();n();var y={modalWidth:`_modalWidth_t2uj7_1`,buttons:`_buttons_t2uj7_6`},b=t(),x=`specialEventCalendar.eventListPopup`,S=e.encloseNamespace(x),C=400,w=300;function T(t){let n=i(u.streamablePresentation()),{hasPermissions:c}=l(),T=c(a.StudentExperience),E=new Date(t.from),D=new Date(t.to),O=i(n.data?.id&&p.calendarLivestreams({from:r.format(E,`YYYY-MM-DD`),to:r.format(D,`YYYY-MM-DD`)})),k=O.data?.filter(e=>e.startDate===r.format(new Date(t.date),`YYYY-MM-DD`))||[];function A(e){return T||g.isPastEvent(e)?`pastActionLabel`:`actionLabel`}function j(e){return s.createUrl(e.company.banner?.url,{size:o.Large})}function M(e){return s.createUrl(e.company.logo?.url,{size:o.Small})}return(0,b.jsxs)(d,{title:`Events on ${f.getOrdinalDate(t.date)}`,closePopup:t.closePopup,dialogClassName:y.modalWidth,bodyClassName:`p-0`,showLoadingSpinner:!O.data,children:[(0,b.jsx)(v.Scrollbars,{autoHeight:!0,autoHeightMin:w,autoHeightMax:C,children:(0,b.jsx)(`div`,{className:`px-3 pt-2`,children:k.map((e,r)=>(0,b.jsx)(m,{getAppLink:_().event,event:e,onClick:t.closePopup,inPopup:!0,presentationId:n.data?.id,getActionLabel:()=>S(A(e.content)),getBackgroundColor:e=>e.company.metadata?.colour,getBannerUrl:j,getIconUrl:M,getStartTime:g.isSameTime(k,r)?null:g.getStartTime,isPastEvent:g.isPastEvent},e.content.id))})}),(0,b.jsxs)(`div`,{className:`d-flex justify-content-between align-items-center p-3 border-top`,children:[(0,b.jsx)(h,{}),(0,b.jsx)(`button`,{onClick:t.closePopup,className:`btn btn-outline-dark`,children:e.getPhrase(x,`close`)})]})]})}export{T as SpecialEventListView};
2
+ //# sourceMappingURL=CGxa1Jzq.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Clh6wBrg.chunk.js","names":[],"sources":["../../src/apps/calendar/views/special-event-list-view/special-event-list-view.module.scss","../../src/apps/calendar/views/special-event-list-view/SpecialEventListView.tsx"],"sourcesContent":[":local {\n .modalWidth {\n width: 40rem;\n max-width: 40rem;\n overflow: hidden;\n }\n .buttons {\n width: 40rem;\n }\n}","import React from 'react';\nimport { Scrollbars } from 'react-custom-scrollbars-2';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { SpecialEventListItem } from 'libs/shared/apps/calendar/components/special-event-list-item/SpecialEventListItem';\nimport { SpecialEventHelper } from 'libs/shared/apps/calendar/utils/SpecialEventHelper';\nimport { TimezoneIndicator } from 'libs/shared/apps/streamable-learning/components/timezone-indicator/TimezoneIndicator';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { ImageSize } from 'libs/shared/enums/Images';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { Livestream, PopupViewProps, Presentation } from 'libs/shared/interfaces';\nimport { CalendarEvent } from 'libs/shared/interfaces';\nimport { ImageHelper } from 'libs/shared/utils/ImageHelper';\n\nimport { LivestreamRequests } from 'shared/flight-requests/LivestreamRequests';\nimport { PresentationRequests } from 'shared/flight-requests/PresentationRequests';\n\nimport { CalendarUtils } from 'apps/calendar/utils/CalendarUtils';\nimport { getCalendarAppLinks } from 'apps/calendar/views/calendar-view/CalendarViewUtils';\n\nimport styles from './special-event-list-view.module.scss';\n\nconst namespace = 'specialEventCalendar.eventListPopup';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst SCROLL_HEIGHT_MAX = 400;// in px\nconst SCROLL_HEIGHT_MIN = 300;// in px\nexport interface SpecialEventsViewQueryParams extends PopupViewProps {\n from: string;\n to: string;\n date: string;\n}\n\nexport function SpecialEventListView(props: SpecialEventsViewQueryParams): JSX.Element {\n const presentation = Flight.useBasicFetch<Presentation>(\n PresentationRequests.streamablePresentation()\n );\n\n const { hasPermissions } = usePermissions();\n const isStudent = hasPermissions(PermissionName.StudentExperience);\n \n const fromDate = new Date(props.from);\n const toDate = new Date(props.to);\n\n const events = Flight.useBasicFetch<CalendarEvent<Livestream>[]>(presentation.data?.id\n && LivestreamRequests.calendarLivestreams({ from: DateHelper.format(fromDate, 'YYYY-MM-DD'), to: DateHelper.format(toDate, 'YYYY-MM-DD') }));\n const eventsOnDay = events.data?.filter(e => e.startDate === DateHelper.format(new Date(props.date), 'YYYY-MM-DD')) || [];\n\n function getActionLabel(livestream: Livestream): string {\n return isStudent || CalendarUtils.isPastEvent(livestream) ? 'pastActionLabel' : 'actionLabel';\n }\n\n function getBannerUrl(content: Livestream) {\n return ImageHelper.createUrl(content.company.banner?.url, { size: ImageSize.Large });\n }\n\n function getIconUrl(content: Livestream) {\n return ImageHelper.createUrl(content.company.logo?.url, { size: ImageSize.Small });\n }\n\n return (\n <Popup\n title={`Events on ${SpecialEventHelper.getOrdinalDate(props.date)}`}\n closePopup={props.closePopup}\n dialogClassName={styles.modalWidth}\n bodyClassName='p-0'\n showLoadingSpinner={!events.data}\n >\n <Scrollbars\n autoHeight\n autoHeightMin={SCROLL_HEIGHT_MIN}\n autoHeightMax={SCROLL_HEIGHT_MAX}\n >\n <div className='px-3 pt-2'>\n {eventsOnDay.map((e, i) => (\n <SpecialEventListItem\n key={e.content.id}\n getAppLink={getCalendarAppLinks().event}\n event={e}\n onClick={props.closePopup}\n inPopup\n presentationId={presentation.data?.id}\n getActionLabel={() => getPhrase(getActionLabel(e.content))}\n getBackgroundColor={(content: Livestream) => content.company.metadata?.colour}\n getBannerUrl={getBannerUrl}\n getIconUrl={getIconUrl}\n getStartTime={!CalendarUtils.isSameTime(eventsOnDay, i) ? CalendarUtils.getStartTime : null}\n isPastEvent={CalendarUtils.isPastEvent}\n />\n ))}\n </div>\n </Scrollbars>\n <div className='d-flex justify-content-between align-items-center p-3 border-top'>\n <TimezoneIndicator />\n <button\n onClick={props.closePopup}\n className='btn btn-outline-dark'\n >\n {LanguageService.getPhrase(namespace, 'close')}\n </button>\n </div>\n </Popup>\n\n );\n}\n"],"mappings":"gkBC0BM,EAAY,sCACZ,EAAY,EAAgB,iBAAiB,EAAU,CAEvD,EAAoB,IACpB,EAAoB,IAO1B,SAAgB,EAAqB,EAAkD,CACrF,IAAM,EAAe,EACnB,EAAqB,wBAAwB,CAC9C,CAEK,CAAE,kBAAmB,GAAgB,CACrC,EAAY,EAAe,EAAe,kBAAkB,CAE5D,EAAW,IAAI,KAAK,EAAM,KAAK,CAC/B,EAAS,IAAI,KAAK,EAAM,GAAG,CAE3B,EAAS,EAAkD,EAAa,MAAM,IAC/E,EAAmB,oBAAoB,CAAE,KAAM,EAAW,OAAO,EAAU,aAAa,CAAE,GAAI,EAAW,OAAO,EAAQ,aAAA,CAAe,CAAC,CAAC,CACxI,EAAc,EAAO,MAAM,OAAO,GAAK,EAAE,YAAc,EAAW,OAAO,IAAI,KAAK,EAAM,KAAK,CAAE,aAAa,CAAC,EAAI,EAAE,CAEzH,SAAS,EAAe,EAAgC,CACtD,OAAO,GAAa,EAAc,YAAY,EAAW,CAAG,kBAAoB,cAGlF,SAAS,EAAa,EAAqB,CACzC,OAAO,EAAY,UAAU,EAAQ,QAAQ,QAAQ,IAAK,CAAE,KAAM,EAAU,MAAO,CAAC,CAGtF,SAAS,EAAW,EAAqB,CACvC,OAAO,EAAY,UAAU,EAAQ,QAAQ,MAAM,IAAK,CAAE,KAAM,EAAU,MAAO,CAAC,CAGpF,OACE,EAAA,EAAA,MAAC,EAAD,CACE,MAAO,aAAa,EAAmB,eAAe,EAAM,KAAK,GACjE,WAAY,EAAM,WAClB,gBAAiB,EAAO,WACxB,cAAc,MACd,mBAAoB,CAAC,EAAO,cAL9B,EAOE,EAAA,EAAA,KAAC,EAAA,WAAD,CACE,WAAA,GACA,cAAe,EACf,cAAe,YAEf,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,qBACZ,EAAY,KAAK,EAAG,KACnB,EAAA,EAAA,KAAC,EAAD,CAEE,WAAY,GAAqB,CAAC,MAClC,MAAO,EACP,QAAS,EAAM,WACf,QAAA,GACA,eAAgB,EAAa,MAAM,GACnC,mBAAsB,EAAU,EAAe,EAAE,QAAQ,CAAC,CAC1D,mBAAqB,GAAwB,EAAQ,QAAQ,UAAU,OACzD,eACF,aACZ,aAAe,EAAc,WAAW,EAAa,EAAE,CAAgC,KAA7B,EAAc,aACxE,YAAa,EAAc,YAC3B,CAZK,EAAE,QAAQ,GAYf,CAAA,CAEA,CAAA,CACK,CAAA,EACb,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,4EAAf,EACE,EAAA,EAAA,KAAC,EAAD,EAAqB,CAAA,EACrB,EAAA,EAAA,KAAC,SAAD,CACE,QAAS,EAAM,WACf,UAAU,gCAET,EAAgB,UAAU,EAAW,QAAA,CAC/B,CAAA,CAAA"}
1
+ {"version":3,"file":"CGxa1Jzq.chunk.js","names":[],"sources":["../../src/apps/calendar/views/special-event-list-view/special-event-list-view.module.scss","../../src/apps/calendar/views/special-event-list-view/SpecialEventListView.tsx"],"sourcesContent":[":local {\n .modalWidth {\n width: 40rem;\n max-width: 40rem;\n overflow: hidden;\n }\n .buttons {\n width: 40rem;\n }\n}","import React from 'react';\nimport { Scrollbars } from 'react-custom-scrollbars-2';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { SpecialEventListItem } from 'libs/shared/apps/calendar/components/special-event-list-item/SpecialEventListItem';\nimport { SpecialEventHelper } from 'libs/shared/apps/calendar/utils/SpecialEventHelper';\nimport { TimezoneIndicator } from 'libs/shared/apps/streamable-learning/components/timezone-indicator/TimezoneIndicator';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { ImageSize } from 'libs/shared/enums/Images';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { Livestream, PopupViewProps, Presentation } from 'libs/shared/interfaces';\nimport { CalendarEvent } from 'libs/shared/interfaces';\nimport { ImageHelper } from 'libs/shared/utils/ImageHelper';\n\nimport { LivestreamRequests } from 'shared/flight-requests/LivestreamRequests';\nimport { PresentationRequests } from 'shared/flight-requests/PresentationRequests';\n\nimport { CalendarUtils } from 'apps/calendar/utils/CalendarUtils';\nimport { getCalendarAppLinks } from 'apps/calendar/views/calendar-view/CalendarViewUtils';\n\nimport styles from './special-event-list-view.module.scss';\n\nconst namespace = 'specialEventCalendar.eventListPopup';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst SCROLL_HEIGHT_MAX = 400;// in px\nconst SCROLL_HEIGHT_MIN = 300;// in px\nexport interface SpecialEventsViewQueryParams extends PopupViewProps {\n from: string;\n to: string;\n date: string;\n}\n\nexport function SpecialEventListView(props: SpecialEventsViewQueryParams): JSX.Element {\n const presentation = Flight.useBasicFetch<Presentation>(\n PresentationRequests.streamablePresentation()\n );\n\n const { hasPermissions } = usePermissions();\n const isStudent = hasPermissions(PermissionName.StudentExperience);\n \n const fromDate = new Date(props.from);\n const toDate = new Date(props.to);\n\n const events = Flight.useBasicFetch<CalendarEvent<Livestream>[]>(presentation.data?.id\n && LivestreamRequests.calendarLivestreams({ from: DateHelper.format(fromDate, 'YYYY-MM-DD'), to: DateHelper.format(toDate, 'YYYY-MM-DD') }));\n const eventsOnDay = events.data?.filter(e => e.startDate === DateHelper.format(new Date(props.date), 'YYYY-MM-DD')) || [];\n\n function getActionLabel(livestream: Livestream): string {\n return isStudent || CalendarUtils.isPastEvent(livestream) ? 'pastActionLabel' : 'actionLabel';\n }\n\n function getBannerUrl(content: Livestream) {\n return ImageHelper.createUrl(content.company.banner?.url, { size: ImageSize.Large });\n }\n\n function getIconUrl(content: Livestream) {\n return ImageHelper.createUrl(content.company.logo?.url, { size: ImageSize.Small });\n }\n\n return (\n <Popup\n title={`Events on ${SpecialEventHelper.getOrdinalDate(props.date)}`}\n closePopup={props.closePopup}\n dialogClassName={styles.modalWidth}\n bodyClassName='p-0'\n showLoadingSpinner={!events.data}\n >\n <Scrollbars\n autoHeight\n autoHeightMin={SCROLL_HEIGHT_MIN}\n autoHeightMax={SCROLL_HEIGHT_MAX}\n >\n <div className='px-3 pt-2'>\n {eventsOnDay.map((e, i) => (\n <SpecialEventListItem\n key={e.content.id}\n getAppLink={getCalendarAppLinks().event}\n event={e}\n onClick={props.closePopup}\n inPopup\n presentationId={presentation.data?.id}\n getActionLabel={() => getPhrase(getActionLabel(e.content))}\n getBackgroundColor={(content: Livestream) => content.company.metadata?.colour}\n getBannerUrl={getBannerUrl}\n getIconUrl={getIconUrl}\n getStartTime={!CalendarUtils.isSameTime(eventsOnDay, i) ? CalendarUtils.getStartTime : null}\n isPastEvent={CalendarUtils.isPastEvent}\n />\n ))}\n </div>\n </Scrollbars>\n <div className='d-flex justify-content-between align-items-center p-3 border-top'>\n <TimezoneIndicator />\n <button\n onClick={props.closePopup}\n className='btn btn-outline-dark'\n >\n {LanguageService.getPhrase(namespace, 'close')}\n </button>\n </div>\n </Popup>\n\n );\n}\n"],"mappings":"gkBC0BM,EAAY,sCACZ,EAAY,EAAgB,iBAAiB,EAAU,CAEvD,EAAoB,IACpB,EAAoB,IAO1B,SAAgB,EAAqB,EAAkD,CACrF,IAAM,EAAe,EACnB,EAAqB,wBAAwB,CAC9C,CAEK,CAAE,kBAAmB,GAAgB,CACrC,EAAY,EAAe,EAAe,kBAAkB,CAE5D,EAAW,IAAI,KAAK,EAAM,KAAK,CAC/B,EAAS,IAAI,KAAK,EAAM,GAAG,CAE3B,EAAS,EAAkD,EAAa,MAAM,IAC/E,EAAmB,oBAAoB,CAAE,KAAM,EAAW,OAAO,EAAU,aAAa,CAAE,GAAI,EAAW,OAAO,EAAQ,aAAA,CAAe,CAAC,CAAC,CACxI,EAAc,EAAO,MAAM,OAAO,GAAK,EAAE,YAAc,EAAW,OAAO,IAAI,KAAK,EAAM,KAAK,CAAE,aAAa,CAAC,EAAI,EAAE,CAEzH,SAAS,EAAe,EAAgC,CACtD,OAAO,GAAa,EAAc,YAAY,EAAW,CAAG,kBAAoB,cAGlF,SAAS,EAAa,EAAqB,CACzC,OAAO,EAAY,UAAU,EAAQ,QAAQ,QAAQ,IAAK,CAAE,KAAM,EAAU,MAAO,CAAC,CAGtF,SAAS,EAAW,EAAqB,CACvC,OAAO,EAAY,UAAU,EAAQ,QAAQ,MAAM,IAAK,CAAE,KAAM,EAAU,MAAO,CAAC,CAGpF,OACE,EAAA,EAAA,MAAC,EAAD,CACE,MAAO,aAAa,EAAmB,eAAe,EAAM,KAAK,GACjE,WAAY,EAAM,WAClB,gBAAiB,EAAO,WACxB,cAAc,MACd,mBAAoB,CAAC,EAAO,cAL9B,EAOE,EAAA,EAAA,KAAC,EAAA,WAAD,CACE,WAAA,GACA,cAAe,EACf,cAAe,YAEf,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,qBACZ,EAAY,KAAK,EAAG,KACnB,EAAA,EAAA,KAAC,EAAD,CAEE,WAAY,GAAqB,CAAC,MAClC,MAAO,EACP,QAAS,EAAM,WACf,QAAA,GACA,eAAgB,EAAa,MAAM,GACnC,mBAAsB,EAAU,EAAe,EAAE,QAAQ,CAAC,CAC1D,mBAAqB,GAAwB,EAAQ,QAAQ,UAAU,OACzD,eACF,aACZ,aAAe,EAAc,WAAW,EAAa,EAAE,CAAgC,KAA7B,EAAc,aACxE,YAAa,EAAc,YAC3B,CAZK,EAAE,QAAQ,GAYf,CAAA,CAEA,CAAA,CACK,CAAA,EACb,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,4EAAf,EACE,EAAA,EAAA,KAAC,EAAD,EAAqB,CAAA,EACrB,EAAA,EAAA,KAAC,SAAD,CACE,QAAS,EAAM,WACf,UAAU,gCAET,EAAgB,UAAU,EAAW,QAAA,CAC/B,CAAA,CAAA"}
@@ -1,2 +1,2 @@
1
- import"./Dp9qJj1C.chunk.js";import{t as e}from"./BJvPfCvt.chunk.js";import{C as t,dt as n,l as r,lt as i,m as a,n as o,ut as s}from"./Dun43GrB.chunk.js";import{t as c}from"./CFXUbsBS.chunk.js";import{t as l}from"./B-OL6Vs7.chunk.js";import{t as u}from"./DeldjYRc.chunk.js";import{t as d}from"./BYYiNmLB.chunk.js";import{t as f}from"./Ca1QPe-q2.chunk.js";import{n as p}from"./D7d5XFW82.chunk.js";import{$ as m,H as h,Q as g,Z as _}from"./app-B1XBsz23.js";import{t as v}from"./CyxOxJjg2.chunk.js";import{t as y}from"./Dd8r1SE32.chunk.js";import{t as b}from"./DrgVCnQA2.chunk.js";import{t as x}from"./DpDQnXqh2.chunk.js";import{t as S}from"./LdxNQaUZ2.chunk.js";import{n as C}from"./DLp7yHzT2.chunk.js";import{t as w}from"./C9tPKnK22.chunk.js";import{t as T}from"./BF6BdGN-.chunk.js";var E={modalWidth:`_modalWidth_1p617_1`,banner:`_banner_1p617_5`,pill:`_pill_1p617_10`,logo:`_logo_1p617_13`};s();var D=i(),O=`shared.specialEventListItem`;function k(e){return`audiences`in e&&`endDateTime`in e&&`startDateTime`in e}function A(i){let s=i.getAppLink(i.event.content,n.slugify(i.event.name)),l=i.getBackgroundColor?.(i.event.content),u=i.getIconUrl?.(i.event.content),d=i.getBannerUrl?.(i.event.content),m=!!i.event.endDate,g=i.event.content.status===b.ComingSoon,_=i.getStartTime?.(i.event.content),T=i.getActionLabel?.(),A=i.isPastEvent?.(i.event.content),j={actionType:t.Click,entity:r.SpecialEvent,location:i.inPopup?a.CalendarPopup:a.CalendarDay},M={topicId:i.event.content.id,eventId:i.event.specialEventId,presentationId:i.presentationId,date:c.format(new Date(i.event.startDate),`YYYY-MM-DD`),status:i.event.content.status};return(0,D.jsxs)(`div`,{children:[_&&(0,D.jsx)(`h6`,{children:_}),(0,D.jsxs)(`div`,{onClick:()=>{g&&o.logUserAction(M,j)},children:[(0,D.jsx)(f,{appLink:!g&&s,className:`${g?``:`cursor-pointer`} text-decoration-none mb-2`,onClick:i.onClick,analyticsOptions:j,analyticsData:M,children:(0,D.jsxs)(`div`,{className:`banner rounded-3 position-relative position-relative ${E.banner}`,style:{backgroundColor:l,backgroundImage:`url('${d}')`},children:[A&&(0,D.jsx)(`div`,{className:`bg-white w-100 h-100 opacity-50 position-absolute top-0 left-0 z-0`}),(0,D.jsxs)(`div`,{className:`d-flex justify-content-between align-items-center w-100 h-100 px-3`,children:[(0,D.jsxs)(`div`,{className:`d-flex align-items-center z-1`,children:[u&&(0,D.jsx)(`div`,{className:`${E.logo} rounded-circle flex-shrink-0 overflow-hidden me-2`,children:(0,D.jsx)(S,{data:u})}),(0,D.jsxs)(`div`,{children:[g&&(0,D.jsx)(v,{className:`pe-2 fw-semibold mb-1 rounded-pill justify-content-start ${E.pill}`}),A&&(0,D.jsxs)(`div`,{className:`d-inline-block rounded-pill bg-light-green mb-1`,children:[(0,D.jsx)(e,{svg:C}),(0,D.jsx)(`p`,{className:`d-inline ms-1 mb-0`,children:(0,D.jsx)(p,{namespace:O,phrase:`pastEvent`})})]}),m&&(0,D.jsx)(`p`,{className:`text-white text-shadow mb-1`,children:y.getDisplayDate(i.event.startDate,i.event.endDate)}),(0,D.jsx)(`h2`,{className:`h4 text-white text-shadow ${i.event.description?`clamp-2`:`clamp-1`}`,title:i.event.name,children:i.event.name})]})]}),(0,D.jsx)(`div`,{className:`d-none d-sm-block flex-shrink-0 z-1`,children:!g&&(0,D.jsx)(h,{className:`btn ${A?`btn-outline-dark`:`btn-dark`} fw-semibold`,children:T})})]})]})}),(0,D.jsx)(`div`,{className:`pre-wrap text-break mb-3`,dangerouslySetInnerHTML:{__html:x.linkifyText(i.event.description||i.event.content.description)}}),k(i.event.content)&&(0,D.jsxs)(`div`,{className:`d-flex mb-3`,children:[(0,D.jsx)(`div`,{className:`rounded-pill border border-dark px-2 bg-white d-inline-block me-2`,children:w.getMergedPresentationAudienceString(i.event.content.audiences)?.name}),(0,D.jsx)(`div`,{className:`rounded-pill fw-semibold bg-dark text-white d-inline-block px-2`,children:`${c.diffBetween(i.event.content.endDateTime,i.event.content.startDateTime,`minutes`)}m`})]})]})]})}function j(){return(0,D.jsxs)(`div`,{children:[(0,D.jsx)(e,{svg:T}),(0,D.jsx)(`span`,{className:`ms-1`,children:g[m.ET]?.name})]})}var M={getStartTime(e){return c.format(_.convertUTCToTimezoneDate(e.startDateTime),`h:mm a`)},isSameTime(e,t){return t===0?!1:c.isSame(e[t].content.startDateTime,e[t-1].content.startDateTime)},isPastEvent(e){return c.isBefore(e.endDateTime,new Date)}};function N(){return{emptyState:d.EmptyStates.CALENDAR.NO_EVENTS,errorState:d.EmptyStates.CALENDAR.INVALID_DATE}}function P(){return{calendar:()=>({application:l.CALENDAR,action:u.Calendar.CALENDAR}),month:e=>({application:l.CALENDAR,action:u.Calendar.CALENDAR_MONTH,args:[e]}),event:(e,t)=>({application:l.LIVESTREAMS,action:u.Livestreams.LIVESTREAM,args:[e.id,t]}),eventList:(e,t,n)=>({application:l.CALENDAR,action:u.Calendar.SPECIAL_EVENT_LIST,params:{...e,date:t.toString(),presentationId:n}})}}export{A as a,j as i,N as n,M as r,P as t};
2
- //# sourceMappingURL=DAvXFgC62.chunk.js.map
1
+ import"./Dp9qJj1C.chunk.js";import{t as e}from"./BJvPfCvt.chunk.js";import{C as t,dt as n,l as r,lt as i,m as a,n as o,ut as s}from"./Dun43GrB.chunk.js";import{t as c}from"./CFXUbsBS.chunk.js";import{t as l}from"./B-OL6Vs7.chunk.js";import{t as u}from"./DeldjYRc.chunk.js";import{t as d}from"./BYYiNmLB.chunk.js";import{t as f}from"./Ca1QPe-q2.chunk.js";import{n as p}from"./D7d5XFW82.chunk.js";import{$ as m,H as h,Q as g,Z as _}from"./app-BIigh9wv.js";import{t as v}from"./CyxOxJjg2.chunk.js";import{t as y}from"./BsAo7Lri2.chunk.js";import{t as b}from"./DrgVCnQA2.chunk.js";import{t as x}from"./DpDQnXqh2.chunk.js";import{t as S}from"./LdxNQaUZ2.chunk.js";import{n as C}from"./C5i1HsPp2.chunk.js";import{t as w}from"./C9tPKnK22.chunk.js";import{t as T}from"./BF6BdGN-.chunk.js";var E={modalWidth:`_modalWidth_1p617_1`,banner:`_banner_1p617_5`,pill:`_pill_1p617_10`,logo:`_logo_1p617_13`};s();var D=i(),O=`shared.specialEventListItem`;function k(e){return`audiences`in e&&`endDateTime`in e&&`startDateTime`in e}function A(i){let s=i.getAppLink(i.event.content,n.slugify(i.event.name)),l=i.getBackgroundColor?.(i.event.content),u=i.getIconUrl?.(i.event.content),d=i.getBannerUrl?.(i.event.content),m=!!i.event.endDate,g=i.event.content.status===b.ComingSoon,_=i.getStartTime?.(i.event.content),T=i.getActionLabel?.(),A=i.isPastEvent?.(i.event.content),j={actionType:t.Click,entity:r.SpecialEvent,location:i.inPopup?a.CalendarPopup:a.CalendarDay},M={topicId:i.event.content.id,eventId:i.event.specialEventId,presentationId:i.presentationId,date:c.format(new Date(i.event.startDate),`YYYY-MM-DD`),status:i.event.content.status};return(0,D.jsxs)(`div`,{children:[_&&(0,D.jsx)(`h6`,{children:_}),(0,D.jsxs)(`div`,{onClick:()=>{g&&o.logUserAction(M,j)},children:[(0,D.jsx)(f,{appLink:!g&&s,className:`${g?``:`cursor-pointer`} text-decoration-none mb-2`,onClick:i.onClick,analyticsOptions:j,analyticsData:M,children:(0,D.jsxs)(`div`,{className:`banner rounded-3 position-relative position-relative ${E.banner}`,style:{backgroundColor:l,backgroundImage:`url('${d}')`},children:[A&&(0,D.jsx)(`div`,{className:`bg-white w-100 h-100 opacity-50 position-absolute top-0 left-0 z-0`}),(0,D.jsxs)(`div`,{className:`d-flex justify-content-between align-items-center w-100 h-100 px-3`,children:[(0,D.jsxs)(`div`,{className:`d-flex align-items-center z-1`,children:[u&&(0,D.jsx)(`div`,{className:`${E.logo} rounded-circle flex-shrink-0 overflow-hidden me-2`,children:(0,D.jsx)(S,{data:u})}),(0,D.jsxs)(`div`,{children:[g&&(0,D.jsx)(v,{className:`pe-2 fw-semibold mb-1 rounded-pill justify-content-start ${E.pill}`}),A&&(0,D.jsxs)(`div`,{className:`d-inline-block rounded-pill bg-light-green mb-1`,children:[(0,D.jsx)(e,{svg:C}),(0,D.jsx)(`p`,{className:`d-inline ms-1 mb-0`,children:(0,D.jsx)(p,{namespace:O,phrase:`pastEvent`})})]}),m&&(0,D.jsx)(`p`,{className:`text-white text-shadow mb-1`,children:y.getDisplayDate(i.event.startDate,i.event.endDate)}),(0,D.jsx)(`h2`,{className:`h4 text-white text-shadow ${i.event.description?`clamp-2`:`clamp-1`}`,title:i.event.name,children:i.event.name})]})]}),(0,D.jsx)(`div`,{className:`d-none d-sm-block flex-shrink-0 z-1`,children:!g&&(0,D.jsx)(h,{className:`btn ${A?`btn-outline-dark`:`btn-dark`} fw-semibold`,children:T})})]})]})}),(0,D.jsx)(`div`,{className:`pre-wrap text-break mb-3`,dangerouslySetInnerHTML:{__html:x.linkifyText(i.event.description||i.event.content.description)}}),k(i.event.content)&&(0,D.jsxs)(`div`,{className:`d-flex mb-3`,children:[(0,D.jsx)(`div`,{className:`rounded-pill border border-dark px-2 bg-white d-inline-block me-2`,children:w.getMergedPresentationAudienceString(i.event.content.audiences)?.name}),(0,D.jsx)(`div`,{className:`rounded-pill fw-semibold bg-dark text-white d-inline-block px-2`,children:`${c.diffBetween(i.event.content.endDateTime,i.event.content.startDateTime,`minutes`)}m`})]})]})]})}function j(){return(0,D.jsxs)(`div`,{children:[(0,D.jsx)(e,{svg:T}),(0,D.jsx)(`span`,{className:`ms-1`,children:g[m.ET]?.name})]})}var M={getStartTime(e){return c.format(_.convertUTCToTimezoneDate(e.startDateTime),`h:mm a`)},isSameTime(e,t){return t===0?!1:c.isSame(e[t].content.startDateTime,e[t-1].content.startDateTime)},isPastEvent(e){return c.isBefore(e.endDateTime,new Date)}};function N(){return{emptyState:d.EmptyStates.CALENDAR.NO_EVENTS,errorState:d.EmptyStates.CALENDAR.INVALID_DATE}}function P(){return{calendar:()=>({application:l.CALENDAR,action:u.Calendar.CALENDAR}),month:e=>({application:l.CALENDAR,action:u.Calendar.CALENDAR_MONTH,args:[e]}),event:(e,t)=>({application:l.LIVESTREAMS,action:u.Livestreams.LIVESTREAM,args:[e.id,t]}),eventList:(e,t,n)=>({application:l.CALENDAR,action:u.Calendar.SPECIAL_EVENT_LIST,params:{...e,date:t.toString(),presentationId:n}})}}export{A as a,j as i,N as n,M as r,P as t};
2
+ //# sourceMappingURL=CKdklY2o2.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DAvXFgC62.chunk.js","names":[],"sources":["../../../../libs/shared/src/apps/calendar/components/special-event-list-item/special-event-list-item.module.scss","../../../../libs/shared/src/apps/calendar/components/special-event-list-item/SpecialEventListItem.tsx","../../../../libs/shared/src/apps/streamable-learning/components/timezone-indicator/TimezoneIndicator.tsx","../../src/apps/calendar/utils/CalendarUtils.ts","../../src/apps/calendar/views/calendar-view/CalendarViewUtils.ts"],"sourcesContent":[":local {\n .modalWidth {\n width: 40rem;\n max-width: 40rem;\n }\n\n .banner {\n background-position: center;\n background-size: cover; \n height: 6.25rem;\n }\n\n .pill {\n width:fit-content\n }\n\n .logo {\n height: 3.75rem;\n width: 3.75rem;\n }\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\nimport { LinkifyHelper } from 'libs/common/react/utils/LinkifyHelper';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AnalyticsOptions, EntityType, LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { ComingSoonTag } from 'libs/shared/apps/calendar/components/coming-soon-tag/ComingSoonTag';\nimport { SpecialEventHelper } from 'libs/shared/apps/calendar/utils/SpecialEventHelper';\nimport { ActionButton } from 'libs/shared/components/actions/ActionButton';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { BaseImage } from 'libs/shared/components/image/BaseImage';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { ClassificationStatus } from 'libs/shared/enums/ClassificationStatus';\nimport { CalendarCheckSvg } from 'libs/shared/images/svg/objects/CalendarCheckSvg';\nimport { CalendarEvent, CalendarEventContent, Livestream, PresentationAudience } from 'libs/shared/interfaces';\nimport { AudienceHelper } from 'libs/shared/utils/audience-helper/AudienceHelper';\n\nimport styles from './special-event-list-item.module.scss';\n\nconst namespace = 'shared.specialEventListItem';\n\nfunction isLiveStream(obj: CalendarEventContent): obj is Livestream {\n return 'audiences' in obj &&\n 'endDateTime' in obj &&\n 'startDateTime' in obj;\n}\n\ninterface SpecialEventListItemProps {\n getAppLink: (content: CalendarEventContent, name: string) => Core.AppLink;\n event: CalendarEvent<CalendarEventContent>;\n onClick?: () => void;\n inPopup?: boolean;\n presentationId: string;\n headingClassName?: string;\n getIconUrl?: (content: CalendarEventContent) => string;\n getBackgroundColor?: (content: CalendarEventContent) => string;\n getBannerUrl?: (content: CalendarEventContent) => string;\n getActionLabel?: () => string;\n getStartTime?: (content: CalendarEventContent) => string;\n isPastEvent?: (content: CalendarEventContent) => boolean;\n}\n\nexport function SpecialEventListItem(props: SpecialEventListItemProps): JSX.Element {\n const appLink = props.getAppLink(props.event.content, TextHelper.slugify(props.event.name));\n\n const backgroundColor = props.getBackgroundColor?.(props.event.content);\n const iconUrl = props.getIconUrl?.(props.event.content);\n const bannerUrl = props.getBannerUrl?.(props.event.content);\n const multiDayEvent = !!props.event.endDate;\n const isComingSoon = props.event.content.status === ClassificationStatus.ComingSoon;\n const startTime = props.getStartTime?.(props.event.content);\n const actionLabel = props.getActionLabel?.();\n const isPastEvent = props.isPastEvent?.(props.event.content);\n\n const analyticsOptions: AnalyticsOptions = {\n actionType: UserAction.Click,\n entity: EntityType.SpecialEvent,\n location: props.inPopup ? LocationContext.CalendarPopup : LocationContext.CalendarDay\n };\n const analyticsData = {\n topicId: props.event.content.id,\n eventId: props.event.specialEventId,\n presentationId: props.presentationId,\n date: DateHelper.format(new Date(props.event.startDate), 'YYYY-MM-DD'),\n status: props.event.content.status\n };\n\n return (\n <div>\n {startTime && (\n <h6>{startTime}</h6>\n )}\n\n <div onClick={() => {\n if (isComingSoon)\n AnalyticsHelper.logUserAction(analyticsData, analyticsOptions);\n }}>\n <AppLink\n appLink={!isComingSoon && appLink}\n className={`${!isComingSoon ? 'cursor-pointer' : ''} text-decoration-none mb-2`}\n onClick={props.onClick}\n analyticsOptions={analyticsOptions}\n analyticsData={analyticsData}\n >\n <div\n className={`banner rounded-3 position-relative position-relative ${styles.banner}`}\n style={{ backgroundColor, backgroundImage: `url('${bannerUrl}')` }}\n >\n {isPastEvent && (\n <div className='bg-white w-100 h-100 opacity-50 position-absolute top-0 left-0 z-0' />\n )}\n <div className='d-flex justify-content-between align-items-center w-100 h-100 px-3'>\n <div className='d-flex align-items-center z-1'>\n {iconUrl && (\n <div className={`${styles.logo} rounded-circle flex-shrink-0 overflow-hidden me-2`}>\n <BaseImage data={iconUrl} />\n </div>\n )}\n <div>\n {isComingSoon && <ComingSoonTag className={`pe-2 fw-semibold mb-1 rounded-pill justify-content-start ${styles.pill}`}/>}\n\n {isPastEvent &&\n <div className='d-inline-block rounded-pill bg-light-green mb-1'>\n <SvgContainer svg={CalendarCheckSvg} />\n <p className='d-inline ms-1 mb-0'><Text namespace={namespace} phrase='pastEvent' /></p>\n </div>}\n \n {multiDayEvent && (\n <p className='text-white text-shadow mb-1'>{SpecialEventHelper.getDisplayDate(props.event.startDate, props.event.endDate)}</p>\n )}\n <h2 className={`h4 text-white text-shadow ${props.event.description ? 'clamp-2' : 'clamp-1'}`} title={props.event.name}>{props.event.name}</h2>\n \n </div>\n </div>\n\n <div className='d-none d-sm-block flex-shrink-0 z-1'>\n {!isComingSoon && (\n <ActionButton className={`btn ${isPastEvent ? 'btn-outline-dark' : 'btn-dark'} fw-semibold`}>\n {actionLabel}\n </ActionButton>\n )}\n </div>\n </div>\n </div>\n </AppLink>\n <div className='pre-wrap text-break mb-3' dangerouslySetInnerHTML={{ __html: LinkifyHelper.linkifyText(props.event.description || props.event.content.description) }}/>\n {(isLiveStream(props.event.content) &&\n <div className='d-flex mb-3'>\n <div className='rounded-pill border border-dark px-2 bg-white d-inline-block me-2'>\n {AudienceHelper.getMergedPresentationAudienceString(\n props.event.content.audiences as PresentationAudience[]\n )?.name}\n </div>\n <div className='rounded-pill fw-semibold bg-dark text-white d-inline-block px-2'>\n {`${DateHelper.diffBetween(props.event.content.endDateTime, props.event.content.startDateTime, 'minutes')}m`}\n </div>\n </div>\n )}\n </div>\n </div>\n );\n}\n","import React from 'react';\n\nimport { Timezone, TIMEZONES_US } from 'libs/shared/apps/streamable-learning/constants/Timezones';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { GlobeSvg } from 'libs/shared/images/svg/objects/GlobeSvg';\n\nexport function TimezoneIndicator() {\n return (\n <div>\n <SvgContainer svg={GlobeSvg} />\n <span className='ms-1'>{TIMEZONES_US[Timezone.ET]?.name}</span>\n </div>\n );\n}\n","import { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { TimezoneHelper } from 'libs/shared/apps/streamable-learning/utils/TimezoneHelper';\nimport { CalendarEvent, Livestream } from 'libs/shared/interfaces';\n\nexport const CalendarUtils = {\n getStartTime(livestream: Livestream): string {\n return DateHelper.format(\n TimezoneHelper.convertUTCToTimezoneDate(livestream.startDateTime),\n 'h:mm a'\n );\n },\n isSameTime(events: CalendarEvent<Livestream>[], index: number): boolean {\n if (index === 0) return false;\n \n return DateHelper.isSame(\n events[index].content.startDateTime,\n events[index - 1].content.startDateTime\n );\n },\n isPastEvent(livestream: Livestream): boolean {\n return DateHelper.isBefore(livestream.endDateTime, new Date());\n }\n};\n","import { CalendarAppLinks } from 'libs/shared/apps/calendar/interfaces/CalendarAppLinks';\nimport { CalendarImageUrls } from 'libs/shared/apps/calendar/interfaces/CalendarImageUrls';\nimport { MonthQuery } from 'libs/shared/apps/calendar/interfaces/MonthQuery';\nimport { PatchedDate } from 'libs/shared/apps/calendar/utils/CalendarHelper';\nimport { Livestream } from 'libs/shared/interfaces';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { Actions } from 'shared/constants/StreamableActions';\nimport { AppChannels } from 'shared/constants/StreamableRadioChannels';\n\nexport function getCalendarImageUrls(): CalendarImageUrls {\n return {\n emptyState: ImageUrls.EmptyStates.CALENDAR.NO_EVENTS,\n errorState: ImageUrls.EmptyStates.CALENDAR.INVALID_DATE\n };\n}\n\nexport function getCalendarAppLinks(): CalendarAppLinks {\n return {\n calendar: () => ({ application: AppChannels.CALENDAR, action: Actions.Calendar.CALENDAR }),\n month: (month: string) => ({\n application: AppChannels.CALENDAR,\n action: Actions.Calendar.CALENDAR_MONTH,\n args: [month]\n }),\n event: (livestream: Livestream, slug: string) => ({\n application: AppChannels.LIVESTREAMS,\n action: Actions.Livestreams.LIVESTREAM,\n args: [ livestream.id, slug ]\n }),\n eventList: (monthQuery: MonthQuery, date: PatchedDate, presentationId: string) => ({\n application: AppChannels.CALENDAR,\n action: Actions.Calendar.SPECIAL_EVENT_LIST,\n params: {\n ...monthQuery,\n date: date.toString(),\n presentationId: presentationId\n }\n })\n };\n}\n"],"mappings":"y4BCwBM,EAAY,8BAElB,SAAS,EAAa,EAA8C,CAClE,MAAO,cAAe,GACpB,gBAAiB,GACjB,kBAAmB,EAkBvB,SAAgB,EAAqB,EAA+C,CAClF,IAAM,EAAU,EAAM,WAAW,EAAM,MAAM,QAAS,EAAW,QAAQ,EAAM,MAAM,KAAK,CAAC,CAErF,EAAkB,EAAM,qBAAqB,EAAM,MAAM,QAAQ,CACjE,EAAU,EAAM,aAAa,EAAM,MAAM,QAAQ,CACjD,EAAY,EAAM,eAAe,EAAM,MAAM,QAAQ,CACrD,EAAgB,CAAC,CAAC,EAAM,MAAM,QAC9B,EAAe,EAAM,MAAM,QAAQ,SAAW,EAAqB,WACnE,EAAY,EAAM,eAAe,EAAM,MAAM,QAAQ,CACrD,EAAc,EAAM,kBAAkB,CACtC,EAAc,EAAM,cAAc,EAAM,MAAM,QAAQ,CAEtD,EAAqC,CACzC,WAAY,EAAW,MACvB,OAAQ,EAAW,aACnB,SAAU,EAAM,QAAU,EAAgB,cAAgB,EAAgB,YAC3E,CACK,EAAgB,CACpB,QAAS,EAAM,MAAM,QAAQ,GAC7B,QAAS,EAAM,MAAM,eACrB,eAAgB,EAAM,eACtB,KAAM,EAAW,OAAO,IAAI,KAAK,EAAM,MAAM,UAAU,CAAE,aAAa,CACtE,OAAQ,EAAM,MAAM,QAAQ,OAC7B,CAED,OACE,EAAA,EAAA,MAAC,MAAD,CAAA,SAAA,CACG,IACC,EAAA,EAAA,KAAC,KAAD,CAAA,SAAK,EAAe,CAAA,EAGtB,EAAA,EAAA,MAAC,MAAD,CAAK,YAAe,CACd,GACF,EAAgB,cAAc,EAAe,EAAiB,WAFlE,EAIE,EAAA,EAAA,KAAC,EAAD,CACE,QAAS,CAAC,GAAgB,EAC1B,UAAW,GAAI,EAAkC,GAAnB,iBAAsB,4BACpD,QAAS,EAAM,QACG,mBACH,0BAEf,EAAA,EAAA,MAAC,MAAD,CACE,UAAW,wDAAwD,EAAO,SAC1E,MAAO,CAAE,kBAAiB,gBAAiB,QAAQ,EAAU,IAAK,UAFpE,CAIG,IACC,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,qEAAuE,CAAA,EAExF,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,8EAAf,EACE,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,yCAAf,CACG,IACC,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,GAAG,EAAO,KAAK,8DAC7B,EAAA,EAAA,KAAC,EAAD,CAAW,KAAM,EAAW,CAAA,CACxB,CAAA,EAER,EAAA,EAAA,MAAC,MAAD,CAAA,SAAA,CACG,IAAgB,EAAA,EAAA,KAAC,EAAD,CAAe,UAAW,4DAA4D,EAAO,OAAS,CAAA,CAEtH,IACD,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,2DAAf,EACE,EAAA,EAAA,KAAC,EAAD,CAAc,IAAK,EAAoB,CAAA,EACvC,EAAA,EAAA,KAAC,IAAD,CAAG,UAAU,+BAAqB,EAAA,EAAA,KAAC,EAAD,CAAiB,YAAW,OAAO,YAAc,CAAA,CAAI,CAAA,CAAA,GAGxF,IACC,EAAA,EAAA,KAAC,IAAD,CAAG,UAAU,uCAA+B,EAAmB,eAAe,EAAM,MAAM,UAAW,EAAM,MAAM,QAAA,CAAa,CAAA,EAEhI,EAAA,EAAA,KAAC,KAAD,CAAI,UAAW,6BAA6B,EAAM,MAAM,YAAc,UAAY,YAAa,MAAO,EAAM,MAAM,cAAO,EAAM,MAAM,KAAU,CAAA,CAE3I,CAAA,CAAA,CAAA,IAGR,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,+CACZ,CAAC,IACA,EAAA,EAAA,KAAC,EAAD,CAAc,UAAW,OAAO,EAAc,mBAAqB,WAAW,uBAC3E,EACY,CAAA,CAEb,CAAA,CAAA,MAGF,CAAA,EACV,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,2BAA2B,wBAAyB,CAAE,OAAQ,EAAc,YAAY,EAAM,MAAM,aAAe,EAAM,MAAM,QAAQ,YAAY,CAAA,CAAK,CAAA,CACrK,EAAa,EAAM,MAAM,QAAQ,GACjC,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,uBAAf,EACE,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,6EACZ,EAAe,oCACd,EAAM,MAAM,QAAQ,UACrB,EAAE,KACC,CAAA,EACN,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,2EACZ,GAAG,EAAW,YAAY,EAAM,MAAM,QAAQ,YAAa,EAAM,MAAM,QAAQ,cAAe,UAAU,CAAC,GACtG,CAAA,CAAA,MAIR,CAAA,CAAA,CC1IV,SAAgB,GAAoB,CAClC,OACE,EAAA,EAAA,MAAC,MAAD,CAAA,SAAA,EACE,EAAA,EAAA,KAAC,EAAD,CAAc,IAAK,EAAY,CAAA,EAC/B,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,gBAAQ,EAAa,EAAS,KAAK,KAAY,CAAA,CAC3D,CAAA,CAAA,CCNV,IAAa,EAAgB,CAC3B,aAAa,EAAgC,CAC3C,OAAO,EAAW,OAChB,EAAe,yBAAyB,EAAW,cAAc,CACjE,SACD,EAEH,WAAW,EAAqC,EAAwB,CAGtE,OAFI,IAAU,EAAU,GAEjB,EAAW,OAChB,EAAO,GAAO,QAAQ,cACtB,EAAO,EAAQ,GAAG,QAAQ,cAC3B,EAEH,YAAY,EAAiC,CAC3C,OAAO,EAAW,SAAS,EAAW,YAAa,IAAI,KAAO,EAEjE,CCbD,SAAgB,GAA0C,CACxD,MAAO,CACL,WAAY,EAAU,YAAY,SAAS,UAC3C,WAAY,EAAU,YAAY,SAAS,aAC5C,CAGH,SAAgB,GAAwC,CACtD,MAAO,CACL,cAAiB,CAAE,YAAa,EAAY,SAAU,OAAQ,EAAQ,SAAS,SAAU,EACzF,MAAQ,IAAmB,CACzB,YAAa,EAAY,SACzB,OAAQ,EAAQ,SAAS,eACzB,KAAM,CAAC,EAAM,CACd,EACD,OAAQ,EAAwB,KAAkB,CAChD,YAAa,EAAY,YACzB,OAAQ,EAAQ,YAAY,WAC5B,KAAM,CAAE,EAAW,GAAI,EAAM,CAC9B,EACD,WAAY,EAAwB,EAAmB,KAA4B,CACjF,YAAa,EAAY,SACzB,OAAQ,EAAQ,SAAS,mBACzB,OAAQ,CACN,GAAG,EACH,KAAM,EAAK,UAAU,CACL,iBACjB,CACF,EACF"}
1
+ {"version":3,"file":"CKdklY2o2.chunk.js","names":[],"sources":["../../../../libs/shared/src/apps/calendar/components/special-event-list-item/special-event-list-item.module.scss","../../../../libs/shared/src/apps/calendar/components/special-event-list-item/SpecialEventListItem.tsx","../../../../libs/shared/src/apps/streamable-learning/components/timezone-indicator/TimezoneIndicator.tsx","../../src/apps/calendar/utils/CalendarUtils.ts","../../src/apps/calendar/views/calendar-view/CalendarViewUtils.ts"],"sourcesContent":[":local {\n .modalWidth {\n width: 40rem;\n max-width: 40rem;\n }\n\n .banner {\n background-position: center;\n background-size: cover; \n height: 6.25rem;\n }\n\n .pill {\n width:fit-content\n }\n\n .logo {\n height: 3.75rem;\n width: 3.75rem;\n }\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\nimport { LinkifyHelper } from 'libs/common/react/utils/LinkifyHelper';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AnalyticsOptions, EntityType, LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { ComingSoonTag } from 'libs/shared/apps/calendar/components/coming-soon-tag/ComingSoonTag';\nimport { SpecialEventHelper } from 'libs/shared/apps/calendar/utils/SpecialEventHelper';\nimport { ActionButton } from 'libs/shared/components/actions/ActionButton';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { BaseImage } from 'libs/shared/components/image/BaseImage';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { ClassificationStatus } from 'libs/shared/enums/ClassificationStatus';\nimport { CalendarCheckSvg } from 'libs/shared/images/svg/objects/CalendarCheckSvg';\nimport { CalendarEvent, CalendarEventContent, Livestream, PresentationAudience } from 'libs/shared/interfaces';\nimport { AudienceHelper } from 'libs/shared/utils/audience-helper/AudienceHelper';\n\nimport styles from './special-event-list-item.module.scss';\n\nconst namespace = 'shared.specialEventListItem';\n\nfunction isLiveStream(obj: CalendarEventContent): obj is Livestream {\n return 'audiences' in obj &&\n 'endDateTime' in obj &&\n 'startDateTime' in obj;\n}\n\ninterface SpecialEventListItemProps {\n getAppLink: (content: CalendarEventContent, name: string) => Core.AppLink;\n event: CalendarEvent<CalendarEventContent>;\n onClick?: () => void;\n inPopup?: boolean;\n presentationId: string;\n headingClassName?: string;\n getIconUrl?: (content: CalendarEventContent) => string;\n getBackgroundColor?: (content: CalendarEventContent) => string;\n getBannerUrl?: (content: CalendarEventContent) => string;\n getActionLabel?: () => string;\n getStartTime?: (content: CalendarEventContent) => string;\n isPastEvent?: (content: CalendarEventContent) => boolean;\n}\n\nexport function SpecialEventListItem(props: SpecialEventListItemProps): JSX.Element {\n const appLink = props.getAppLink(props.event.content, TextHelper.slugify(props.event.name));\n\n const backgroundColor = props.getBackgroundColor?.(props.event.content);\n const iconUrl = props.getIconUrl?.(props.event.content);\n const bannerUrl = props.getBannerUrl?.(props.event.content);\n const multiDayEvent = !!props.event.endDate;\n const isComingSoon = props.event.content.status === ClassificationStatus.ComingSoon;\n const startTime = props.getStartTime?.(props.event.content);\n const actionLabel = props.getActionLabel?.();\n const isPastEvent = props.isPastEvent?.(props.event.content);\n\n const analyticsOptions: AnalyticsOptions = {\n actionType: UserAction.Click,\n entity: EntityType.SpecialEvent,\n location: props.inPopup ? LocationContext.CalendarPopup : LocationContext.CalendarDay\n };\n const analyticsData = {\n topicId: props.event.content.id,\n eventId: props.event.specialEventId,\n presentationId: props.presentationId,\n date: DateHelper.format(new Date(props.event.startDate), 'YYYY-MM-DD'),\n status: props.event.content.status\n };\n\n return (\n <div>\n {startTime && (\n <h6>{startTime}</h6>\n )}\n\n <div onClick={() => {\n if (isComingSoon)\n AnalyticsHelper.logUserAction(analyticsData, analyticsOptions);\n }}>\n <AppLink\n appLink={!isComingSoon && appLink}\n className={`${!isComingSoon ? 'cursor-pointer' : ''} text-decoration-none mb-2`}\n onClick={props.onClick}\n analyticsOptions={analyticsOptions}\n analyticsData={analyticsData}\n >\n <div\n className={`banner rounded-3 position-relative position-relative ${styles.banner}`}\n style={{ backgroundColor, backgroundImage: `url('${bannerUrl}')` }}\n >\n {isPastEvent && (\n <div className='bg-white w-100 h-100 opacity-50 position-absolute top-0 left-0 z-0' />\n )}\n <div className='d-flex justify-content-between align-items-center w-100 h-100 px-3'>\n <div className='d-flex align-items-center z-1'>\n {iconUrl && (\n <div className={`${styles.logo} rounded-circle flex-shrink-0 overflow-hidden me-2`}>\n <BaseImage data={iconUrl} />\n </div>\n )}\n <div>\n {isComingSoon && <ComingSoonTag className={`pe-2 fw-semibold mb-1 rounded-pill justify-content-start ${styles.pill}`}/>}\n\n {isPastEvent &&\n <div className='d-inline-block rounded-pill bg-light-green mb-1'>\n <SvgContainer svg={CalendarCheckSvg} />\n <p className='d-inline ms-1 mb-0'><Text namespace={namespace} phrase='pastEvent' /></p>\n </div>}\n \n {multiDayEvent && (\n <p className='text-white text-shadow mb-1'>{SpecialEventHelper.getDisplayDate(props.event.startDate, props.event.endDate)}</p>\n )}\n <h2 className={`h4 text-white text-shadow ${props.event.description ? 'clamp-2' : 'clamp-1'}`} title={props.event.name}>{props.event.name}</h2>\n \n </div>\n </div>\n\n <div className='d-none d-sm-block flex-shrink-0 z-1'>\n {!isComingSoon && (\n <ActionButton className={`btn ${isPastEvent ? 'btn-outline-dark' : 'btn-dark'} fw-semibold`}>\n {actionLabel}\n </ActionButton>\n )}\n </div>\n </div>\n </div>\n </AppLink>\n <div className='pre-wrap text-break mb-3' dangerouslySetInnerHTML={{ __html: LinkifyHelper.linkifyText(props.event.description || props.event.content.description) }}/>\n {(isLiveStream(props.event.content) &&\n <div className='d-flex mb-3'>\n <div className='rounded-pill border border-dark px-2 bg-white d-inline-block me-2'>\n {AudienceHelper.getMergedPresentationAudienceString(\n props.event.content.audiences as PresentationAudience[]\n )?.name}\n </div>\n <div className='rounded-pill fw-semibold bg-dark text-white d-inline-block px-2'>\n {`${DateHelper.diffBetween(props.event.content.endDateTime, props.event.content.startDateTime, 'minutes')}m`}\n </div>\n </div>\n )}\n </div>\n </div>\n );\n}\n","import React from 'react';\n\nimport { Timezone, TIMEZONES_US } from 'libs/shared/apps/streamable-learning/constants/Timezones';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { GlobeSvg } from 'libs/shared/images/svg/objects/GlobeSvg';\n\nexport function TimezoneIndicator() {\n return (\n <div>\n <SvgContainer svg={GlobeSvg} />\n <span className='ms-1'>{TIMEZONES_US[Timezone.ET]?.name}</span>\n </div>\n );\n}\n","import { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { TimezoneHelper } from 'libs/shared/apps/streamable-learning/utils/TimezoneHelper';\nimport { CalendarEvent, Livestream } from 'libs/shared/interfaces';\n\nexport const CalendarUtils = {\n getStartTime(livestream: Livestream): string {\n return DateHelper.format(\n TimezoneHelper.convertUTCToTimezoneDate(livestream.startDateTime),\n 'h:mm a'\n );\n },\n isSameTime(events: CalendarEvent<Livestream>[], index: number): boolean {\n if (index === 0) return false;\n \n return DateHelper.isSame(\n events[index].content.startDateTime,\n events[index - 1].content.startDateTime\n );\n },\n isPastEvent(livestream: Livestream): boolean {\n return DateHelper.isBefore(livestream.endDateTime, new Date());\n }\n};\n","import { CalendarAppLinks } from 'libs/shared/apps/calendar/interfaces/CalendarAppLinks';\nimport { CalendarImageUrls } from 'libs/shared/apps/calendar/interfaces/CalendarImageUrls';\nimport { MonthQuery } from 'libs/shared/apps/calendar/interfaces/MonthQuery';\nimport { PatchedDate } from 'libs/shared/apps/calendar/utils/CalendarHelper';\nimport { Livestream } from 'libs/shared/interfaces';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { Actions } from 'shared/constants/StreamableActions';\nimport { AppChannels } from 'shared/constants/StreamableRadioChannels';\n\nexport function getCalendarImageUrls(): CalendarImageUrls {\n return {\n emptyState: ImageUrls.EmptyStates.CALENDAR.NO_EVENTS,\n errorState: ImageUrls.EmptyStates.CALENDAR.INVALID_DATE\n };\n}\n\nexport function getCalendarAppLinks(): CalendarAppLinks {\n return {\n calendar: () => ({ application: AppChannels.CALENDAR, action: Actions.Calendar.CALENDAR }),\n month: (month: string) => ({\n application: AppChannels.CALENDAR,\n action: Actions.Calendar.CALENDAR_MONTH,\n args: [month]\n }),\n event: (livestream: Livestream, slug: string) => ({\n application: AppChannels.LIVESTREAMS,\n action: Actions.Livestreams.LIVESTREAM,\n args: [ livestream.id, slug ]\n }),\n eventList: (monthQuery: MonthQuery, date: PatchedDate, presentationId: string) => ({\n application: AppChannels.CALENDAR,\n action: Actions.Calendar.SPECIAL_EVENT_LIST,\n params: {\n ...monthQuery,\n date: date.toString(),\n presentationId: presentationId\n }\n })\n };\n}\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import"./Dp9qJj1C.chunk.js";import{t as e}from"./ImQRQGZr.chunk.js";import{dt as t,lt as n,ut as r}from"./Dun43GrB.chunk.js";import{t as i}from"./B-OL6Vs7.chunk.js";import{l as a,u as o}from"./BQ5XMoHG.chunk.js";import{t as s}from"./DeldjYRc.chunk.js";import{t as c}from"./H6wjCesG.chunk.js";import{t as l}from"./Ca1QPe-q2.chunk.js";import{n as u}from"./D7d5XFW82.chunk.js";import{n as d,t as f}from"./DjIdG9LL2.chunk.js";import{r as p,t as m}from"./D2om474U2.chunk.js";import{I as h,q as g}from"./app-B1XBsz23.js";import{n as _,r as v}from"./NV4_mMU8.chunk.js";import{t as y}from"./BlBCp_pE.chunk.js";import{r as b,t as x}from"./BBWlVBxr.chunk.js";import{n as S,t as C}from"./ClGIvvk6.chunk.js";import{t as w}from"./BjxC-sgo.chunk.js";import{t as T}from"./BA8QDRzp.chunk.js";import{t as E}from"./DmfbtOlu.chunk.js";import{t as D}from"./Blj1z_g2.chunk.js";r();var O={logoContainer:`_logoContainer_x28hp_1`},k=n();function A(){return(0,k.jsx)(k.Fragment,{children:[...Array(24)].map((e,t)=>(0,k.jsx)(`div`,{className:`col-12 col-md-6 col-xl-4`,children:(0,k.jsxs)(`div`,{className:`d-flex align-items-center border w-100 h-100 rounded-3 overflow-hidden`,children:[(0,k.jsx)(`div`,{className:`${O.logoContainer} flex-shrink-0 partial-loading-background`}),(0,k.jsx)(`p`,{className:`partial-loading-background fw-semibold mx-3 mb-0 w-50`,children:`\xA0`})]})},`partial-loading-${t}`))})}var j=`dashboard.contentPartners`,M=e.encloseNamespace(j),N=50;function P(){let n=c(),r=o(),P=a(g.streamablePresentation());f(d.getDefaultMetadata({title:M(`pageTitle`),description:M(`pageDescription`),canonicalLink:y.getCanonicalLink(),allowIndexing:!0,product:h.PRODUCT_NAME}));function F(e){if(P.data)return w.companies({presentation:P.data?.id.toString()},e,N)}function I(e){r(F(e))}function L(t,r){if(t===1)return E(r);n.error(e.getPhrase(j,`error`))}let R=D(F,I,L,e=>e.results);return(0,k.jsxs)(`div`,{className:`px-4`,children:[(0,k.jsx)(v,{active:`partners`,appLinks:_()}),(0,k.jsx)(`h1`,{className:`h2 mb-3`,children:(0,k.jsx)(u,{namespace:j,phrase:`heading`})}),(0,k.jsxs)(`div`,{className:`row g-3`,children:[R.items?.length?(0,k.jsx)(k.Fragment,{children:R.items?.map(e=>{let n=x(e.name,b);return(0,k.jsx)(l,{appLink:{application:i.DASHBOARD,action:s.Dashboard.COMPANY_DASHBOARD,args:[e.id,t.slugify(e.name)]},className:`col-12 col-md-6 col-xl-4`,children:(0,k.jsxs)(`div`,{className:`d-flex align-items-center border w-100 h-100 rounded-3 overflow-hidden`,children:[(0,k.jsx)(`div`,{className:`${O.logoContainer} flex-shrink-0 position-relative`,children:e.logo?(0,k.jsx)(`img`,{className:`w-100 ${!e.metadata?.colour&&n}`,src:m.createUrl(e.logo.url,{size:p.Medium}),alt:e.name,style:{backgroundColor:e.metadata?.colour}}):(0,k.jsx)(C,{type:S.Subject,extraClasses:`w-100`})}),(0,k.jsx)(`p`,{className:`fw-semibold mx-3 mb-0`,children:e.name})]})},e.id)})}):(0,k.jsx)(A,{}),(R.hasMore||R.isFetching)&&(0,k.jsx)(T,{isFetching:R.isFetching,fetchNext:I,nextCursor:R.nextCursor,fetchOnScroll:!0})]})]})}export{P as ContentPartnersView};
2
- //# sourceMappingURL=CeWjJPIz.chunk.js.map
1
+ import"./Dp9qJj1C.chunk.js";import{t as e}from"./ImQRQGZr.chunk.js";import{dt as t,lt as n,ut as r}from"./Dun43GrB.chunk.js";import{t as i}from"./B-OL6Vs7.chunk.js";import{l as a,u as o}from"./BQ5XMoHG.chunk.js";import{t as s}from"./DeldjYRc.chunk.js";import{t as c}from"./H6wjCesG.chunk.js";import{t as l}from"./Ca1QPe-q2.chunk.js";import{n as u}from"./D7d5XFW82.chunk.js";import{n as d,t as f}from"./DjIdG9LL2.chunk.js";import{r as p,t as m}from"./D2om474U2.chunk.js";import{I as h,q as g}from"./app-BIigh9wv.js";import{n as _,r as v}from"./Ces-KTwe.chunk.js";import{t as y}from"./BlBCp_pE.chunk.js";import{r as b,t as x}from"./BBWlVBxr.chunk.js";import{n as S,t as C}from"./ClGIvvk6.chunk.js";import{t as w}from"./BjxC-sgo.chunk.js";import{t as T}from"./BA8QDRzp.chunk.js";import{t as E}from"./jWpq99N3.chunk.js";import{t as D}from"./Blj1z_g2.chunk.js";r();var O={logoContainer:`_logoContainer_x28hp_1`},k=n();function A(){return(0,k.jsx)(k.Fragment,{children:[...Array(24)].map((e,t)=>(0,k.jsx)(`div`,{className:`col-12 col-md-6 col-xl-4`,children:(0,k.jsxs)(`div`,{className:`d-flex align-items-center border w-100 h-100 rounded-3 overflow-hidden`,children:[(0,k.jsx)(`div`,{className:`${O.logoContainer} flex-shrink-0 partial-loading-background`}),(0,k.jsx)(`p`,{className:`partial-loading-background fw-semibold mx-3 mb-0 w-50`,children:`\xA0`})]})},`partial-loading-${t}`))})}var j=`dashboard.contentPartners`,M=e.encloseNamespace(j),N=50;function P(){let n=c(),r=o(),P=a(g.streamablePresentation());f(d.getDefaultMetadata({title:M(`pageTitle`),description:M(`pageDescription`),canonicalLink:y.getCanonicalLink(),allowIndexing:!0,product:h.PRODUCT_NAME}));function F(e){if(P.data)return w.companies({presentation:P.data?.id.toString()},e,N)}function I(e){r(F(e))}function L(t,r){if(t===1)return E(r);n.error(e.getPhrase(j,`error`))}let R=D(F,I,L,e=>e.results);return(0,k.jsxs)(`div`,{className:`px-4`,children:[(0,k.jsx)(v,{active:`partners`,appLinks:_()}),(0,k.jsx)(`h1`,{className:`h2 mb-3`,children:(0,k.jsx)(u,{namespace:j,phrase:`heading`})}),(0,k.jsxs)(`div`,{className:`row g-3`,children:[R.items?.length?(0,k.jsx)(k.Fragment,{children:R.items?.map(e=>{let n=x(e.name,b);return(0,k.jsx)(l,{appLink:{application:i.DASHBOARD,action:s.Dashboard.COMPANY_DASHBOARD,args:[e.id,t.slugify(e.name)]},className:`col-12 col-md-6 col-xl-4`,children:(0,k.jsxs)(`div`,{className:`d-flex align-items-center border w-100 h-100 rounded-3 overflow-hidden`,children:[(0,k.jsx)(`div`,{className:`${O.logoContainer} flex-shrink-0 position-relative`,children:e.logo?(0,k.jsx)(`img`,{className:`w-100 ${!e.metadata?.colour&&n}`,src:m.createUrl(e.logo.url,{size:p.Medium}),alt:e.name,style:{backgroundColor:e.metadata?.colour}}):(0,k.jsx)(C,{type:S.Subject,extraClasses:`w-100`})}),(0,k.jsx)(`p`,{className:`fw-semibold mx-3 mb-0`,children:e.name})]})},e.id)})}):(0,k.jsx)(A,{}),(R.hasMore||R.isFetching)&&(0,k.jsx)(T,{isFetching:R.isFetching,fetchNext:I,nextCursor:R.nextCursor,fetchOnScroll:!0})]})]})}export{P as ContentPartnersView};
2
+ //# sourceMappingURL=CN8PeBwg.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CeWjJPIz.chunk.js","names":[],"sources":["../../src/apps/dashboard/views/content-partners/content-partners.module.scss","../../src/apps/dashboard/views/content-partners/partial-loading/ContentPartnersPartialLoading.tsx","../../src/apps/dashboard/views/content-partners/ContentPartnersView.tsx"],"sourcesContent":[":local {\n .logoContainer {\n width: 8rem;\n height: 8rem;\n }\n}","import React from 'react';\n\nimport styles from '../content-partners.module.scss';\n\nexport function ContentPartnersPartialLoading() {\n return (\n <>\n {[...Array(24)].map((_, index) => (\n <div key={`partial-loading-${index}`} className='col-12 col-md-6 col-xl-4'>\n <div className='d-flex align-items-center border w-100 h-100 rounded-3 overflow-hidden'>\n <div className={`${styles.logoContainer} flex-shrink-0 partial-loading-background`}></div>\n <p className='partial-loading-background fw-semibold mx-3 mb-0 w-50'>&nbsp;</p>\n </div>\n </div>\n ))}\n </>\n );\n}\n","import React from 'react';\n\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/react/index';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { SearchResults, SearchResultsObject } from 'libs/shared/apps/search/interfaces';\nimport { StreamableHeader } from 'libs/shared/apps/streamable-learning/components/header/StreamableHeader';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { ImageFallback, ImageFallbackType } from 'libs/shared/components/image/ImageFallback';\nimport { InfiniteScrollFooter } from 'libs/shared/components/infinite-scroll-footer/InfiniteScrollFooter';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { BG_COLOUR_CLASS_NAMES } from 'libs/shared/constants/ColourClassNames';\nimport { ImageSize } from 'libs/shared/enums/Images';\nimport { handleHttpError } from 'libs/shared/errors/handlers/HttpErrorHandlers';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { useInfiniteList } from 'libs/shared/hooks/UseInfiniteList';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { Company, Presentation } from 'libs/shared/interfaces';\nimport { getBgColorClass } from 'libs/shared/utils/getBgColorClass';\nimport { ImageHelper } from 'libs/shared/utils/ImageHelper';\nimport { PageMetadataHelper } from 'libs/shared/utils/PageMetadataHelper';\n\nimport { Actions } from 'shared/constants/StreamableActions';\nimport { StreamableConstants } from 'shared/constants/StreamableConstants';\nimport { AppChannels } from 'shared/constants/StreamableRadioChannels';\nimport { CompanyRequests } from 'shared/flight-requests/CompanyRequests';\nimport { PresentationRequests } from 'shared/flight-requests/PresentationRequests';\nimport { SeoHelper } from 'shared/utils/StreamableSeoHelper';\n\nimport { ContentPartnersPartialLoading } from 'apps/dashboard/views/content-partners/partial-loading/ContentPartnersPartialLoading';\nimport { getStreamableHeaderAppLinks } from 'apps/dashboard/views/dashboard/DiscoverViewUtils';\n\nimport styles from './content-partners.module.scss';\n\nconst namespace = 'dashboard.contentPartners';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst SEARCH_RESULTS_LIMIT = 50;\n\ntype CompanySearchResults = SearchResults<SearchResultsObject<Company>>;\n\nexport function ContentPartnersView() {\n const alerts = useAlerts();\n const fetch = Flight.useGetFetch();\n\n const streamablePresentation = Flight.useBasicFetch<Presentation>(\n PresentationRequests.streamablePresentation()\n );\n\n useSetPageMetadata(PageMetadataHelper.getDefaultMetadata({\n title: getPhrase('pageTitle'),\n description: getPhrase('pageDescription'),\n canonicalLink: SeoHelper.getCanonicalLink(),\n allowIndexing: true,\n product: StreamableConstants.PRODUCT_NAME\n }));\n\n function getSearchRequest(cursor?: string) {\n if (!streamablePresentation.data) return;\n\n return CompanyRequests.companies(\n { presentation: streamablePresentation.data?.id.toString() },\n cursor,\n SEARCH_RESULTS_LIMIT\n );\n }\n\n function fetchNext(cursor?: string) {\n fetch(getSearchRequest(cursor));\n }\n\n function onError(pageNumber: number, httpStatus: HttpStatus): void {\n if (pageNumber === 1)\n return handleHttpError(httpStatus);\n\n alerts.error(LanguageService.getPhrase(namespace, 'error'));\n }\n\n const searchResults = useInfiniteList<SearchResultsObject<Company>, SearchResults>(\n getSearchRequest,\n fetchNext,\n onError,\n (data: CompanySearchResults) => data.results\n );\n\n return (\n <div className='px-4'>\n <StreamableHeader active='partners' appLinks={getStreamableHeaderAppLinks()} />\n\n <h1 className='h2 mb-3'><Text namespace={namespace} phrase='heading' /></h1>\n\n <div className='row g-3'>\n {searchResults.items?.length ? (\n <>\n {searchResults.items?.map((company: Company) => {\n const logoFallbackBgClassName = getBgColorClass(company.name, BG_COLOUR_CLASS_NAMES);\n return (\n <AppLink\n appLink={{\n application: AppChannels.DASHBOARD,\n action: Actions.Dashboard.COMPANY_DASHBOARD,\n args: [ company.id, TextHelper.slugify(company.name) ]\n }}\n className='col-12 col-md-6 col-xl-4'\n key={company.id}\n >\n <div className='d-flex align-items-center border w-100 h-100 rounded-3 overflow-hidden'>\n <div className={`${styles.logoContainer} flex-shrink-0 position-relative`}>\n {company.logo ? (\n <img\n className={`w-100 ${!company.metadata?.colour && logoFallbackBgClassName}`}\n src={ImageHelper.createUrl(company.logo.url, { size: ImageSize.Medium })}\n alt={company.name}\n style={{\n backgroundColor: company.metadata?.colour\n }}\n />\n ) :\n <ImageFallback\n type={ImageFallbackType.Subject}\n extraClasses='w-100'\n />\n }\n </div>\n <p className='fw-semibold mx-3 mb-0'>{company.name}</p>\n </div>\n </AppLink>\n );\n })}\n </>\n ) : <ContentPartnersPartialLoading />}\n {(searchResults.hasMore || searchResults.isFetching) && (\n <InfiniteScrollFooter\n isFetching={searchResults.isFetching}\n fetchNext={fetchNext}\n nextCursor={searchResults.nextCursor}\n fetchOnScroll\n />\n )}\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"CN8PeBwg.chunk.js","names":[],"sources":["../../src/apps/dashboard/views/content-partners/content-partners.module.scss","../../src/apps/dashboard/views/content-partners/partial-loading/ContentPartnersPartialLoading.tsx","../../src/apps/dashboard/views/content-partners/ContentPartnersView.tsx"],"sourcesContent":[":local {\n .logoContainer {\n width: 8rem;\n height: 8rem;\n }\n}","import React from 'react';\n\nimport styles from '../content-partners.module.scss';\n\nexport function ContentPartnersPartialLoading() {\n return (\n <>\n {[...Array(24)].map((_, index) => (\n <div key={`partial-loading-${index}`} className='col-12 col-md-6 col-xl-4'>\n <div className='d-flex align-items-center border w-100 h-100 rounded-3 overflow-hidden'>\n <div className={`${styles.logoContainer} flex-shrink-0 partial-loading-background`}></div>\n <p className='partial-loading-background fw-semibold mx-3 mb-0 w-50'>&nbsp;</p>\n </div>\n </div>\n ))}\n </>\n );\n}\n","import React from 'react';\n\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/react/index';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { SearchResults, SearchResultsObject } from 'libs/shared/apps/search/interfaces';\nimport { StreamableHeader } from 'libs/shared/apps/streamable-learning/components/header/StreamableHeader';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { ImageFallback, ImageFallbackType } from 'libs/shared/components/image/ImageFallback';\nimport { InfiniteScrollFooter } from 'libs/shared/components/infinite-scroll-footer/InfiniteScrollFooter';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { BG_COLOUR_CLASS_NAMES } from 'libs/shared/constants/ColourClassNames';\nimport { ImageSize } from 'libs/shared/enums/Images';\nimport { handleHttpError } from 'libs/shared/errors/handlers/HttpErrorHandlers';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { useInfiniteList } from 'libs/shared/hooks/UseInfiniteList';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { Company, Presentation } from 'libs/shared/interfaces';\nimport { getBgColorClass } from 'libs/shared/utils/getBgColorClass';\nimport { ImageHelper } from 'libs/shared/utils/ImageHelper';\nimport { PageMetadataHelper } from 'libs/shared/utils/PageMetadataHelper';\n\nimport { Actions } from 'shared/constants/StreamableActions';\nimport { StreamableConstants } from 'shared/constants/StreamableConstants';\nimport { AppChannels } from 'shared/constants/StreamableRadioChannels';\nimport { CompanyRequests } from 'shared/flight-requests/CompanyRequests';\nimport { PresentationRequests } from 'shared/flight-requests/PresentationRequests';\nimport { SeoHelper } from 'shared/utils/StreamableSeoHelper';\n\nimport { ContentPartnersPartialLoading } from 'apps/dashboard/views/content-partners/partial-loading/ContentPartnersPartialLoading';\nimport { getStreamableHeaderAppLinks } from 'apps/dashboard/views/dashboard/DiscoverViewUtils';\n\nimport styles from './content-partners.module.scss';\n\nconst namespace = 'dashboard.contentPartners';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst SEARCH_RESULTS_LIMIT = 50;\n\ntype CompanySearchResults = SearchResults<SearchResultsObject<Company>>;\n\nexport function ContentPartnersView() {\n const alerts = useAlerts();\n const fetch = Flight.useGetFetch();\n\n const streamablePresentation = Flight.useBasicFetch<Presentation>(\n PresentationRequests.streamablePresentation()\n );\n\n useSetPageMetadata(PageMetadataHelper.getDefaultMetadata({\n title: getPhrase('pageTitle'),\n description: getPhrase('pageDescription'),\n canonicalLink: SeoHelper.getCanonicalLink(),\n allowIndexing: true,\n product: StreamableConstants.PRODUCT_NAME\n }));\n\n function getSearchRequest(cursor?: string) {\n if (!streamablePresentation.data) return;\n\n return CompanyRequests.companies(\n { presentation: streamablePresentation.data?.id.toString() },\n cursor,\n SEARCH_RESULTS_LIMIT\n );\n }\n\n function fetchNext(cursor?: string) {\n fetch(getSearchRequest(cursor));\n }\n\n function onError(pageNumber: number, httpStatus: HttpStatus): void {\n if (pageNumber === 1)\n return handleHttpError(httpStatus);\n\n alerts.error(LanguageService.getPhrase(namespace, 'error'));\n }\n\n const searchResults = useInfiniteList<SearchResultsObject<Company>, SearchResults>(\n getSearchRequest,\n fetchNext,\n onError,\n (data: CompanySearchResults) => data.results\n );\n\n return (\n <div className='px-4'>\n <StreamableHeader active='partners' appLinks={getStreamableHeaderAppLinks()} />\n\n <h1 className='h2 mb-3'><Text namespace={namespace} phrase='heading' /></h1>\n\n <div className='row g-3'>\n {searchResults.items?.length ? (\n <>\n {searchResults.items?.map((company: Company) => {\n const logoFallbackBgClassName = getBgColorClass(company.name, BG_COLOUR_CLASS_NAMES);\n return (\n <AppLink\n appLink={{\n application: AppChannels.DASHBOARD,\n action: Actions.Dashboard.COMPANY_DASHBOARD,\n args: [ company.id, TextHelper.slugify(company.name) ]\n }}\n className='col-12 col-md-6 col-xl-4'\n key={company.id}\n >\n <div className='d-flex align-items-center border w-100 h-100 rounded-3 overflow-hidden'>\n <div className={`${styles.logoContainer} flex-shrink-0 position-relative`}>\n {company.logo ? (\n <img\n className={`w-100 ${!company.metadata?.colour && logoFallbackBgClassName}`}\n src={ImageHelper.createUrl(company.logo.url, { size: ImageSize.Medium })}\n alt={company.name}\n style={{\n backgroundColor: company.metadata?.colour\n }}\n />\n ) :\n <ImageFallback\n type={ImageFallbackType.Subject}\n extraClasses='w-100'\n />\n }\n </div>\n <p className='fw-semibold mx-3 mb-0'>{company.name}</p>\n </div>\n </AppLink>\n );\n })}\n </>\n ) : <ContentPartnersPartialLoading />}\n {(searchResults.hasMore || searchResults.isFetching) && (\n <InfiniteScrollFooter\n isFetching={searchResults.isFetching}\n fetchNext={fetchNext}\n nextCursor={searchResults.nextCursor}\n fetchOnScroll\n />\n )}\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{b as e,gt as t}from"./Dp9qJj1C.chunk.js";import{t as n}from"./ImQRQGZr.chunk.js";import{C as r,E as i,M as a,l as o,lt as s,m as c,n as l,ut as u}from"./Dun43GrB.chunk.js";import{l as d,m as f,r as p,y as m}from"./BQ5XMoHG.chunk.js";import{t as h}from"./B7tm2CBz.chunk.js";import{t as ee}from"./ibuOpDkQ.chunk.js";import{t as te}from"./H6wjCesG.chunk.js";import{c as g,n as _,t as v}from"./8W5MLvcf.chunk.js";import{c as y,i as b}from"./ClfNVaoj2.chunk.js";import{n as x,t as S}from"./D7d5XFW82.chunk.js";import{t as C}from"./DjIdG9LL2.chunk.js";import{t as w}from"./B13dpWxS2.chunk.js";import{n as T}from"./B4z8dIrI2.chunk.js";import{n as E,t as D}from"./B9ir5kiH2.chunk.js";import{w as O}from"./app-B1XBsz23.js";import{i as k,r as ne,t as A}from"./BCdnm1Nn.chunk.js";import{t as j}from"./-l0at5Ll.chunk.js";import{t as M}from"./BTWCXqXm.chunk.js";import{n as N,t as P}from"./D8_5yfHY2.chunk.js";var F=t(u(),1),I=function(e){return e.Ok=`Ok`,e.UsernameRequired=`UsernameRequired`,e.EmailRequired=`EmailRequired`,e.FirstnameRequired=`FirstnameRequired`,e.SurnameRequired=`SurnameRequired`,e.YearGroupRequired=`YearGroupRequired`,e.EmailAlreadyExisted=`EmailAlreadyExisted`,e.UsernameAlreadyExisted=`UsernameAlreadyExisted`,e.UserTypeRequired=`UserTypeRequired`,e.MasterYearGroupRequired=`MasterYearGroupRequired`,e.EmptyUserEntity=`EmptyUserEntity`,e.CustomerIdRequired=`CustomerIdRequired`,e.CustomerNotFoundInOnline=`CustomerNotFoundInOnline`,e.EmailTooLong=`EmailTooLong`,e.UsernameTooLong=`UsernameTooLong`,e.FirstnameTooLong=`FirstnameTooLong`,e.SurnameTooLong=`SurnameTooLong`,e.EmailInvalid=`EmailInvalid`,e.EmailInUse=`EmailInUse`,e.UsernameInvalid=`UsernameInvalid`,e.PasswordTooShort=`PasswordTooShort`,e.EmailDuplicated=`EmailDuplicated`,e.UsernameDuplicated=`UsernameDuplicated`,e.DisplayNameTooLong=`DisplayNameTooLong`,e.DisplayNameTooShort=`DisplayNameTooShort`,e.UsernameTooShort=`UsernameTooShort`,e.FirstnameInvalid=`FirstnameInvalid`,e.SurnameInvalid=`SurnameInvalid`,e.UserTypeMismatch=`UserTypeMismatch`,e.UserCanBeAddedInCustomer=`UserCanBeAddedInCustomer`,e.UserCanBeCreated=`UserCanBeCreated`,e.CustomerFoundInOnline=`CustomerFoundInOnline`,e.UserInCustomerWithOnline=`UserInCustomerWithOnline`,e.InvalidUserStatus=`InvalidUserStatus`,e.UserAlreadyExistsInCustomer=`UserAlreadyExistsInCustomer`,e.Rostered=`UserRostered`,e.InvalidYearGroup=`InvalidYearGroup`,e}({}),L=8,R=`userManager.utils`,z={active:T.Active.toLowerCase(),deactivated:T.Disabled.toLowerCase(),pending:T.Inactive.toLowerCase()},B={filterIdenticalEntries(e){let t=e=>[e.firstName?.trim()??``,e.surname?.trim()??``,e.masterYearGroup?.id??``,e.username?.toLowerCase()?.trim()??``,e.email?.toLowerCase()?.trim()??``].join(`:`);return e.filter((e,n,r)=>n===r.findIndex(n=>t(n)===t(e)))},getNewDuplicates(e){if(!e)return null;let t=[],n=[],r={};e.forEach(e=>{if(!e.username){n.push(e);return}if(!r[e.username]){r[e.username]=[e];return}r[e.username].push(e)}),Object.keys(r).map(e=>{if(r[e].length===1){n.push(r[e][0]);return}t.push({errorCodes:[I.UsernameAlreadyExisted],users:r[e]})});let i={};return e.forEach(e=>{if(e.email){if(!i[e.email]){i[e.email]=[e];return}i[e.email].push(e)}}),Object.keys(i).map(e=>{if(i[e].length===1)return;let{username:n}=h.first(i[e]);!n||r[n].length===1?t.push({errorCodes:[I.EmailAlreadyExisted],users:i[e]}):t[t.findIndex(e=>h.first(e.users).username===n)].errorCodes.push(I.EmailAlreadyExisted)}),t},formatCreateOrValidateUserRequest(e,t,n){return{users:e.map(e=>{let r={firstName:e.firstName,email:e.email,surname:e.surname,username:e.username,userType:t,customerId:n,masterRole:e.masterRole||D.User,requirePasswordChange:!1,generatePassword:!!e.generatePassword,password:e.password,displayName:e.displayName||null};return t===E.Learner&&(r.yearGroupId=e.masterYearGroup?.id),r.username||delete r.username,r.password||delete r.password,r.password&&r.generatePassword&&(r.generatePassword=!1),e.userId&&(r.userId=e.userId),r})}},formatEditUserRequest(e){return e.displayName||=null,e},formatDeleteRequest(t,n,r){let i={customerId:t};if(!n.length){let t=e.DeserializeQueryParams(e.GetCurrentQueryString().substring(1));t.query&&(i.searchQuery=t.query);let n=t.status&&(Array.isArray(t.status)?t.status:[t.status]);n?.length&&(i.userStatuses=[],n.forEach(e=>{e===`active`&&i.userStatuses.push(T.Active),e===`deactivated`&&i.userStatuses.push(T.Disabled),e===`pending`&&i.userStatuses.push(T.Inactive)})),t.yearGroup&&(i.yearGroupValues=Array.isArray(t.yearGroup)?t.yearGroup:[t.yearGroup])}return Object.keys(i).length===1?i.userIds=n.map(e=>e.id):i.userType=r,i},formatToggleStatusRequest(e,t,n){return{customerId:t,users:[{userId:e.id,status:n}]}},getErrorMessages(e,t,r,i){let a={},o=n.encloseNamespace(`userManager.utils`),s={[I.Ok]:``,[I.UsernameRequired]:``,[I.EmailRequired]:o(`emailRequired`),[I.FirstnameRequired]:o(`nameRequired`),[I.SurnameRequired]:o(`surnameRequired`),[I.YearGroupRequired]:o(`yearGroupRequired`),[I.EmailAlreadyExisted]:o(r?`emailExistsShort`:`emailExistsLong`),[I.UsernameAlreadyExisted]:o(r?`usernameExistsShort`:`usernameExistsLong`),[I.UserTypeRequired]:``,[I.MasterYearGroupRequired]:o(`yearGroupRequired`),[I.EmptyUserEntity]:``,[I.CustomerIdRequired]:``,[I.CustomerNotFoundInOnline]:``,[I.EmailTooLong]:o(`emailExceeds`),[I.UsernameTooLong]:o(`usernameExceeds`),[I.FirstnameTooLong]:o(`nameExceeds`),[I.SurnameTooLong]:o(`surnameExceeds`),[I.EmailInvalid]:o(r?`emailInvalidShort`:`emailInvalidLong`),[I.EmailInUse]:o(r?`emailExistsShort`:`emailExistsLong`),[I.UsernameInvalid]:o(r?`usernameInvalidShort`:`usernameInvalidLong`),[I.PasswordTooShort]:o(r?`passwordTooShortShort`:`passwordTooShortLong`,{minLength:t}),[I.EmailDuplicated]:``,[I.UsernameDuplicated]:``,[I.DisplayNameTooLong]:o(`displayNameExceeds`),[I.DisplayNameTooShort]:o(`displayNameTooShort`),[I.UsernameTooShort]:o(`usernameTooShort`),[I.FirstnameInvalid]:o(`firstNameInvalid`),[I.SurnameInvalid]:o(`surnameInvalid`),[I.CustomerFoundInOnline]:o(`support`),[I.UserInCustomerWithOnline]:o(`support`),[I.InvalidUserStatus]:o(`support`),[I.UserTypeMismatch]:``,[I.UserCanBeAddedInCustomer]:``,[I.UserCanBeCreated]:``,[I.UserAlreadyExistsInCustomer]:``,[I.Rostered]:``,[I.InvalidYearGroup]:o(`invalidYearGroupError`)},c={[I.Ok]:``,[I.UsernameRequired]:``,[I.EmailRequired]:`email`,[I.FirstnameRequired]:`firstName`,[I.SurnameRequired]:`surname`,[I.YearGroupRequired]:`masterYearGroup`,[I.EmailAlreadyExisted]:`email`,[I.UsernameAlreadyExisted]:`username`,[I.UserTypeRequired]:``,[I.MasterYearGroupRequired]:`masterYearGroup`,[I.EmptyUserEntity]:``,[I.CustomerIdRequired]:``,[I.CustomerNotFoundInOnline]:``,[I.EmailTooLong]:`email`,[I.UsernameTooLong]:`username`,[I.FirstnameTooLong]:`firstName`,[I.SurnameTooLong]:`surname`,[I.EmailInvalid]:`email`,[I.EmailInUse]:`email`,[I.UsernameInvalid]:`username`,[I.PasswordTooShort]:`password`,[I.EmailDuplicated]:``,[I.UsernameDuplicated]:``,[I.DisplayNameTooLong]:`displayName`,[I.DisplayNameTooShort]:`displayName`,[I.UsernameTooShort]:`username`,[I.FirstnameInvalid]:`firstName`,[I.SurnameInvalid]:`surname`,[I.UserTypeMismatch]:`email`,[I.UserCanBeAddedInCustomer]:`email`,[I.UserCanBeCreated]:`email`,[I.CustomerFoundInOnline]:`email`,[I.UserInCustomerWithOnline]:`email`,[I.InvalidUserStatus]:`email`,[I.UserAlreadyExistsInCustomer]:`email`,[I.Rostered]:`email`,[I.InvalidYearGroup]:`masterYearGroup`};return e.forEach(e=>{let t=i?.[e]??s[e]??``;if(!t)return;let n=c[e];n&&(a[n]=i?.[e]?.[n]??t)}),a},showEmptyState(e,t){if(!e.data)return!1;let n=Object.keys(t).length;return`results`in e.data||n?!1:!e.data.data?.length},getFilters(e,t,n,r){let i=[_.SortBy(v.getNameSortOptions())];return t===E.Learner&&n?.length>1&&i.push(_.YearGroup(v.getYearGroupOptions(n))),i.push(_.Status()),t===E.Staff&&i.push(_.IsAdmin(e,r)),i},getMinimumPasswordLength(e,t,n){if(!e)return L;let r=e.securitySettings?.find(e=>e.userRole===n&&e.userType===t);return r?r.minPasswordLength:n===D.Admin||n===D.SuperAdmin?e.defaultAdminMinPasswordLength:e.defaultMinPasswordLength},mapStatusParamsToValue(e){if(!e)return;let t=e=>{switch(e){case`active`:return T.Active;case`deactivated`:return T.Disabled;case`pending`:return T.Inactive}};return Array.isArray(e)?e.map(t):[t(e)]},buildSearchData({customerId:e,userId:t,userType:n,queryParams:r={}}){let i=B.buildSearchFiltersData(e,n,r),a=B.buildSearchSortData(e,r);return{query:r.query,indices:[`user`],searchType:`user`,customerIdOverride:e,userId:t,customerId:e,filters:i,sorts:a}},buildSearchDataAndKey({customerId:e,userId:t,userType:n,queryParams:r,cursor:i}){let o=B.buildSearchData({customerId:e,userId:t||``,userType:n,queryParams:r||{}});i&&(o.cursor=i);let s=`search:users:${i||``}`;return s+=a.flattenObjectToString(o),{key:s,data:o}},buildSearchParams(e,t,n={}){let r=B.buildSearchFiltersObject(e,t,n);return r=Object.keys(r).reduce((e,t)=>(e[`${g.FILTER_PARAM_PREFIX}${t}`]=r[t],e),{}),{query:n.query,index:`user`,customerIdOverride:e,...r}},buildSearchSortData(e,t={}){let n={};if(t.sort)switch(t.sort){case`first-name-atoz`:n.firstName=`asc`;break;case`first-name-ztoa`:n.firstName=`desc`;break;case`surname-atoz`:n.surname=`asc`;break;case`surname-ztoa`:n.surname=`desc`;break;case`newest`:n.userProfile={customerId:e,fieldOrders:{dateCreated:`desc`}};break;case`oldest`:n.userProfile={customerId:e,fieldOrders:{dateCreated:`asc`}};break;default:break}else n.userProfile={customerId:e,fieldOrders:{dateCreated:`desc`}};return n},buildSearchFiltersData(e,t,n={}){let r={userType:t.toLowerCase()};return r.userProfile={customerId:e},n.isAdmin===`true`&&(r.userProfile.role=[D.Admin.toLowerCase(),D.SuperAdmin.toLowerCase()]),n.yearGroup&&(r.yearGroup={customerId:e},Array.isArray(n.yearGroup)?r.yearGroup.value=n.yearGroup:r.yearGroup.value=[n.yearGroup]),n.status&&(Array.isArray(n.status)?r.userProfile.status=n.status.map(e=>z[e]):r.userProfile.status=[z[n.status]]),r},buildSearchFiltersObject(e,t,n={}){let r={userType:t.toLowerCase(),customerId:e.toString()};return n.isAdmin===`true`&&(r.userRole=D.Admin.toLowerCase()),n.yearGroup&&(Array.isArray(n.yearGroup)?r.yearGroup=`${n.yearGroup.join(`,`)}`:r.yearGroup=n.yearGroup),n.status&&(Array.isArray(n.status)?r.userProfileStatus=n.status.map(e=>z[e]).join(`,`):r.userProfileStatus=z[n.status]),r},buildGetUsersQuery(e,t={}){let{yearGroup:n=``,status:r=``,isAdmin:i=``,sort:a=`newest`}=t,o=[`usertype:${e}`];if(n&&(Array.isArray(n)?o.push(`yeargroups.value:[${n.join(`,`)}]`):o.push(`yeargroups.value:${n}`)),i===`true`&&o.push(`userprofiles.role:${D.Admin}`),r&&(Array.isArray(r)?o.push(`status:[${r.map(e=>z[e]).join(`,`)}]`):o.push(`status:${z[r]}`)),a)switch(a){case`first-name-atoz`:o.push(`orderby:name`);break;case`first-name-ztoa`:o.push(`orderbydesc:name`);break;case`surname-atoz`:o.push(`orderby:surname`);break;case`surname-ztoa`:o.push(`orderbydesc:surname`);break;case`newest`:o.push(`orderbydesc:timestamp`);break;case`oldest`:o.push(`orderby:timestamp`);break;default:break}return`{${o.join(`,`)}}avatar`},shouldDisplayAuthenticationMethods(e){return!e?.length||!h.first(e).authenticationMethods?.length?!1:!!e.find(e=>!!e.authenticationMethods?.find(e=>!e.local))},handleAsyncErrors(e,t,r,i){let a=e?.[0]?.errorCodes;if(!a?.length)return!0;let o={};return(a.includes(I.EmailAlreadyExisted)||a.includes(I.EmailInUse))&&(!r||r.email!==t.email)&&(o.email=n.getPhrase(R,`emailExistsLong`)),a.includes(I.UsernameAlreadyExisted)&&(!r||r.username!==t.username)&&(o.username=n.getPhrase(R,`usernameExistsLong`)),Object.keys(o).length?(i({errors:o}),!1):!0},getInitialErrorsForInvalidYearGroups(e){return!e||e.value===0?{masterYearGroup:n.getPhrase(R,`yearGroupRequired`)}:{}}},V=t(ne(),1),H=`settings.emailSettings`,U=(0,V.object)().shape({email:(0,V.string)().required(()=>n.getPhrase(H,`emailRequired`)).email(()=>n.getPhrase(H,`emailInvalid`)).trim().default(``)}),W=s();function re(){return(0,W.jsx)(j,{children:(0,W.jsx)(`svg`,{viewBox:`0 0 24 24`,children:(0,W.jsx)(`path`,{d:`M10.407 12.368l-1.22-1.22a.49.49 0 0 0-.698.004l-.583.583a.494.494 0 0 0-.004.697l2.135 2.135c.107.108.25.154.388.142a.488.488 0 0 0 .352-.143l4.362-4.362a.494.494 0 0 0-.004-.698l-.582-.582a.495.495 0 0 0-.698-.004l-3.448 3.448zm7.922-.37l1.437 1.406c.208.194.277.437.208.728a.716.716 0 0 1-.541.531l-1.957.5.551 1.936a.671.671 0 0 1-.197.729.671.671 0 0 1-.73.198l-1.935-.552-.5 1.957a.716.716 0 0 1-.53.541 1.28 1.28 0 0 1-.199.021.686.686 0 0 1-.53-.229L12 18.328l-1.405 1.436c-.195.208-.437.278-.729.208a.696.696 0 0 1-.53-.541l-.5-1.957-1.937.552a.671.671 0 0 1-.728-.198.671.671 0 0 1-.198-.729l.551-1.936-1.957-.5a.716.716 0 0 1-.54-.53c-.07-.292 0-.535.207-.73l1.437-1.405-1.437-1.405c-.208-.194-.277-.437-.208-.729a.716.716 0 0 1 .541-.53l1.957-.5-.551-1.936a.671.671 0 0 1 .198-.73.671.671 0 0 1 .728-.197l1.936.552.5-1.957a.675.675 0 0 1 .531-.531.671.671 0 0 1 .729.198L12 5.68l1.405-1.447a.697.697 0 0 1 .73-.198c.284.07.46.246.53.53l.5 1.958L17.1 5.97a.671.671 0 0 1 .729.198.671.671 0 0 1 .197.729l-.551 1.936 1.957.5a.715.715 0 0 1 .541.53c.07.292 0 .535-.208.73l-1.437 1.404z`})})})}var G=`settings.emailSettings`,K=n.encloseNamespace(G);function ie(e){let t=w(O.MDDown),[n,r]=F.useState(!t),i=e.currentUser.emailVerified;return F.useEffect(()=>{!t&&!n&&r(!0)},[t,n]),(0,W.jsxs)(S.Provider,{value:G,children:[(0,W.jsxs)(`h2`,{className:`h4 d-flex align-items-center`,children:[(0,W.jsx)(x,{phrase:`heading`}),i&&(0,W.jsxs)(`span`,{className:`font-size-normal fw-semibold text-primary d-flex align-items-center mb-0 ms-2`,children:[(0,W.jsx)(x,{phrase:`verified`}),(0,W.jsx)(re,{})]})]}),i&&(0,W.jsx)(`p`,{children:(0,W.jsx)(x,{phrase:`info`,options:{email:e.currentUser.email}})}),n?(0,W.jsx)(k,{initialValues:{email:e.currentUser.email||``},onSubmit:e.onChangeEmail,validationSchema:U,children:(0,W.jsxs)(b,{children:[(0,W.jsx)(A,{className:`w-75`,name:`email`,placeholder:K(`emailPlaceholder`),autoComplete:`email`}),(0,W.jsxs)(`div`,{className:`d-flex justify-content-end w-75 ${t?`ms-n2`:``}`,children:[t&&(0,W.jsx)(`button`,{type:`button`,className:`btn btn-link me-2`,onClick:()=>r(!1),children:(0,W.jsx)(x,{phrase:`cancel`})}),(0,W.jsx)(M,{isNew:!1,submitText:K(i?`updateEmail`:`verifyEmail`),variant:i?`outline-dark`:`dark`})]})]})}):(0,W.jsx)(W.Fragment,{children:(0,W.jsx)(`div`,{className:`d-flex`,children:(0,W.jsx)(`button`,{className:`btn btn-outline-dark me-2`,onClick:()=>r(!0),children:(0,W.jsx)(x,{phrase:`change`})})})})]})}var q={partialLabel:`_partialLabel_1h6pk_1`,partialInfo:`_partialInfo_1h6pk_5`,partialInput:`_partialInput_1h6pk_10`,partialSubmit:`_partialSubmit_1h6pk_14`,partialNote:`_partialNote_1h6pk_18`};function ae(){return(0,W.jsxs)(`div`,{className:`w-50`,children:[(0,W.jsx)(`div`,{className:`partial-loading-background mb-2 ${q.partialLabel}`}),(0,W.jsx)(`div`,{className:`partial-loading-background ${q.partialInfo}`}),(0,W.jsx)(`div`,{className:`form-group`,children:(0,W.jsx)(`div`,{className:`partial-loading-background ${q.partialInput}`})}),(0,W.jsx)(`div`,{className:`partial-loading-background ${q.partialSubmit}`}),(0,W.jsx)(`div`,{className:`partial-loading-background mt-2 ${q.partialNote}`})]})}var J=`shared.changePasswordForm`,Y=n.encloseNamespace(J);X.defaultProps={submitVariant:`outline-dark`,buttonContainerClass:`btn-container d-flex justify-content-end align-items-center`,inputWidthClass:`w-100`};function X(e){let t=y();return(0,W.jsxs)(b,{children:[!e.hideCurrentPassword&&(0,W.jsx)(A,{className:e.inputWidthClass,name:`currentPassword`,label:Y(`currentPassword`),placeholder:Y(`currentPasswordPlaceholder`),type:`password`,autoComplete:`current-password`,showRequiredStar:!0}),(0,W.jsx)(A,{className:e.inputWidthClass,name:`newPassword`,label:Y(`newPassword`),placeholder:Y(`newPasswordPlaceholder`),type:`password`,autoComplete:`new-password`,showRequiredStar:!0}),(0,W.jsx)(A,{className:e.inputWidthClass,name:`confirmPassword`,label:Y(`confirmPassword`),placeholder:Y(`confirmPasswordPlaceholder`),type:`password`,autoComplete:`off`,showRequiredStar:!0}),e.showChangeOnNextLogin&&(0,W.jsx)(A,{id:`changeOnNextLogin`,name:`changeOnNextLogin`,label:Y(`changeOnNextLogin`),type:`checkbox`,checked:t.values.changeOnNextLogin,checkboxLabelFontWeight:`normal`}),!e.hideButtons&&(0,W.jsxs)(`div`,{className:e.buttonContainerClass,children:[!e.hideCancelButton&&!!e.onClickCancel&&(0,W.jsx)(`button`,{type:`button`,className:`btn btn-link me-2 ${e.buttonSize===`lg`?`btn-lg`:``}`,onClick:e.onClickCancel,children:(0,W.jsx)(x,{namespace:J,phrase:`cancel`})}),(0,W.jsx)(M,{isNew:!1,submitText:e.submitText||Y(`save`),variant:e.submitVariant,size:e.buttonSize})]})]})}var Z=n.encloseNamespace(`settings.passwordSettings`),oe=e=>(0,V.object)().shape({currentPassword:(0,V.string)().required(()=>Z(`currentPasswordRequired`)).trim().default(``),newPassword:(0,V.string)().required(()=>Z(`newPasswordRequired`)).min(e,()=>Z(`newPasswordMinLength`,{minLen:e})).trim().default(``),confirmPassword:(0,V.string)().required(()=>Z(`confirmPasswordRequired`)).oneOf([(0,V.ref)(`newPassword`),null],()=>Z(`passwordsDontMatch`)).trim().default(``)}),Q=`settings.passwordSettings`,se={currentPassword:``,newPassword:``,confirmPassword:``};function ce(e){let t=w(O.MDDown),[r,i]=F.useState(!t);F.useEffect(()=>{!t&&!r&&i(!0)},[t,r]);function a(t,n){e.onChangePassword(t,n,()=>n({reset:!0}))}return(0,W.jsxs)(S.Provider,{value:Q,children:[(0,W.jsx)(`h2`,{className:`h4`,children:(0,W.jsx)(x,{phrase:`heading`})}),r?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`p`,{children:(0,W.jsx)(x,{phrase:`info`})}),(0,W.jsx)(k,{initialValues:se,onSubmit:a,validationSchema:oe(e.minPasswordLength),children:(0,W.jsx)(X,{onClickCancel:()=>i(!1),hideCancelButton:!t,submitText:n.getPhrase(Q,`savePassword`),buttonContainerClass:t?`d-flex justify-content-end ms-n2 w-75`:`d-flex justify-content-end w-75`,inputWidthClass:`w-75`})})]}):(0,W.jsx)(`button`,{className:`btn btn-outline-dark `,onClick:()=>i(!0),children:(0,W.jsx)(x,{phrase:`change`})})]})}var le={getCustomerSecuritySettings(e,t,n){return{url:`{gateway}/v1/customers/${e}/settings/security`,key:`customers:security:settings`,normalize:!1,success:t,error:n}},setCustomerSecuritySettings(e,t,n,r){return{url:`{gateway}/v1/customers/${e}/settings/security`,key:`update:security:settings`,invalidationKeys:`customers:security:settings`,type:m.PUT,normalize:!1,data:t,success:n,error:r}}},$=n.encloseNamespace(`settings.accountSettings`);function ue(){let e=f(),t=te(),n=w(O.MDDown),a=d(ee.currentUser()),s=d(a.data&&P.getUser(a.data.id)),u=d(a.data&&le.getCustomerSecuritySettings(a.data.customerId));C({title:$(`heading`)});function m(n,s){p(e,P.changeEmail(n.email,()=>{l.logUserAction({id:a.data.id,oldEmail:a.data.email,newEmail:n.email},{actionType:r.VerifyEmail,entity:o.User,location:c.Settings,workflowPhase:i.Start}),t.success($(`changeEmailRequestSuccess`,{email:n.email,escapeText:!0}))},()=>{t.error($(`changeEmailRequestError`))},s))}function h(n,s,u){p(e,P.changePassword(n,()=>{l.logUserAction({id:a.data.id,oldPassword:n.currentPassword,newPassword:n.newPassword},{actionType:r.ChangePassword,entity:o.User,location:c.Settings,workflowPhase:i.Complete}),t.success($(`changePasswordSuccess`)),u()},({responseJSON:e})=>{e.errorCode===`user.password-too-short`?t.error($(`changePasswordRequirementsError`)):e.errorCode===`user.invalid-password`?t.error($(`changePasswordInvalid`)):e.errorCode===`user.same-password`?t.error($(`changePasswordSame`)):e.errorCode===`user.locked-out`?t.error($(`changePasswordLockedOut`)):t.error($(`changePasswordError`))},s))}let g=B.getMinimumPasswordLength(u.data,s.data?.userType,a.data.role);return(0,W.jsxs)(N,{heading:$(`heading`),breadcrumbs:[$(`breadcrumb`)],children:[(0,W.jsx)(`div`,{className:n?`w-100`:`w-50`,children:a.data?(0,W.jsx)(ie,{currentUser:a.data,onChangeEmail:m}):(0,W.jsx)(ae,{})}),(0,W.jsx)(`hr`,{}),(0,W.jsx)(`div`,{className:n?`w-100`:`w-50`,children:u.data&&(0,W.jsx)(ce,{onChangePassword:h,minPasswordLength:g})})]})}export{ue as AccountSettingsView};
2
- //# sourceMappingURL=B1jitqYS2.chunk.js.map
1
+ import{b as e,gt as t}from"./Dp9qJj1C.chunk.js";import{t as n}from"./ImQRQGZr.chunk.js";import{C as r,E as i,M as a,l as o,lt as s,m as c,n as l,ut as u}from"./Dun43GrB.chunk.js";import{l as d,m as f,r as p,y as m}from"./BQ5XMoHG.chunk.js";import{t as h}from"./B7tm2CBz.chunk.js";import{t as ee}from"./ibuOpDkQ.chunk.js";import{t as te}from"./H6wjCesG.chunk.js";import{c as g,n as _,t as v}from"./8W5MLvcf.chunk.js";import{c as y,i as b}from"./ClfNVaoj2.chunk.js";import{n as x,t as S}from"./D7d5XFW82.chunk.js";import{t as C}from"./DjIdG9LL2.chunk.js";import{t as w}from"./B13dpWxS2.chunk.js";import{n as T}from"./B4z8dIrI2.chunk.js";import{n as E,t as D}from"./B9ir5kiH2.chunk.js";import{w as O}from"./app-BIigh9wv.js";import{i as k,r as ne,t as A}from"./DKnZ8BaN.chunk.js";import{t as j}from"./-l0at5Ll.chunk.js";import{t as M}from"./BTWCXqXm.chunk.js";import{n as N,t as P}from"./tYi-sUb22.chunk.js";var F=t(u(),1),I=function(e){return e.Ok=`Ok`,e.UsernameRequired=`UsernameRequired`,e.EmailRequired=`EmailRequired`,e.FirstnameRequired=`FirstnameRequired`,e.SurnameRequired=`SurnameRequired`,e.YearGroupRequired=`YearGroupRequired`,e.EmailAlreadyExisted=`EmailAlreadyExisted`,e.UsernameAlreadyExisted=`UsernameAlreadyExisted`,e.UserTypeRequired=`UserTypeRequired`,e.MasterYearGroupRequired=`MasterYearGroupRequired`,e.EmptyUserEntity=`EmptyUserEntity`,e.CustomerIdRequired=`CustomerIdRequired`,e.CustomerNotFoundInOnline=`CustomerNotFoundInOnline`,e.EmailTooLong=`EmailTooLong`,e.UsernameTooLong=`UsernameTooLong`,e.FirstnameTooLong=`FirstnameTooLong`,e.SurnameTooLong=`SurnameTooLong`,e.EmailInvalid=`EmailInvalid`,e.EmailInUse=`EmailInUse`,e.UsernameInvalid=`UsernameInvalid`,e.PasswordTooShort=`PasswordTooShort`,e.EmailDuplicated=`EmailDuplicated`,e.UsernameDuplicated=`UsernameDuplicated`,e.DisplayNameTooLong=`DisplayNameTooLong`,e.DisplayNameTooShort=`DisplayNameTooShort`,e.UsernameTooShort=`UsernameTooShort`,e.FirstnameInvalid=`FirstnameInvalid`,e.SurnameInvalid=`SurnameInvalid`,e.UserTypeMismatch=`UserTypeMismatch`,e.UserCanBeAddedInCustomer=`UserCanBeAddedInCustomer`,e.UserCanBeCreated=`UserCanBeCreated`,e.CustomerFoundInOnline=`CustomerFoundInOnline`,e.UserInCustomerWithOnline=`UserInCustomerWithOnline`,e.InvalidUserStatus=`InvalidUserStatus`,e.UserAlreadyExistsInCustomer=`UserAlreadyExistsInCustomer`,e.Rostered=`UserRostered`,e.InvalidYearGroup=`InvalidYearGroup`,e}({}),L=8,R=`userManager.utils`,z={active:T.Active.toLowerCase(),deactivated:T.Disabled.toLowerCase(),pending:T.Inactive.toLowerCase()},B={filterIdenticalEntries(e){let t=e=>[e.firstName?.trim()??``,e.surname?.trim()??``,e.masterYearGroup?.id??``,e.username?.toLowerCase()?.trim()??``,e.email?.toLowerCase()?.trim()??``].join(`:`);return e.filter((e,n,r)=>n===r.findIndex(n=>t(n)===t(e)))},getNewDuplicates(e){if(!e)return null;let t=[],n=[],r={};e.forEach(e=>{if(!e.username){n.push(e);return}if(!r[e.username]){r[e.username]=[e];return}r[e.username].push(e)}),Object.keys(r).map(e=>{if(r[e].length===1){n.push(r[e][0]);return}t.push({errorCodes:[I.UsernameAlreadyExisted],users:r[e]})});let i={};return e.forEach(e=>{if(e.email){if(!i[e.email]){i[e.email]=[e];return}i[e.email].push(e)}}),Object.keys(i).map(e=>{if(i[e].length===1)return;let{username:n}=h.first(i[e]);!n||r[n].length===1?t.push({errorCodes:[I.EmailAlreadyExisted],users:i[e]}):t[t.findIndex(e=>h.first(e.users).username===n)].errorCodes.push(I.EmailAlreadyExisted)}),t},formatCreateOrValidateUserRequest(e,t,n){return{users:e.map(e=>{let r={firstName:e.firstName,email:e.email,surname:e.surname,username:e.username,userType:t,customerId:n,masterRole:e.masterRole||D.User,requirePasswordChange:!1,generatePassword:!!e.generatePassword,password:e.password,displayName:e.displayName||null};return t===E.Learner&&(r.yearGroupId=e.masterYearGroup?.id),r.username||delete r.username,r.password||delete r.password,r.password&&r.generatePassword&&(r.generatePassword=!1),e.userId&&(r.userId=e.userId),r})}},formatEditUserRequest(e){return e.displayName||=null,e},formatDeleteRequest(t,n,r){let i={customerId:t};if(!n.length){let t=e.DeserializeQueryParams(e.GetCurrentQueryString().substring(1));t.query&&(i.searchQuery=t.query);let n=t.status&&(Array.isArray(t.status)?t.status:[t.status]);n?.length&&(i.userStatuses=[],n.forEach(e=>{e===`active`&&i.userStatuses.push(T.Active),e===`deactivated`&&i.userStatuses.push(T.Disabled),e===`pending`&&i.userStatuses.push(T.Inactive)})),t.yearGroup&&(i.yearGroupValues=Array.isArray(t.yearGroup)?t.yearGroup:[t.yearGroup])}return Object.keys(i).length===1?i.userIds=n.map(e=>e.id):i.userType=r,i},formatToggleStatusRequest(e,t,n){return{customerId:t,users:[{userId:e.id,status:n}]}},getErrorMessages(e,t,r,i){let a={},o=n.encloseNamespace(`userManager.utils`),s={[I.Ok]:``,[I.UsernameRequired]:``,[I.EmailRequired]:o(`emailRequired`),[I.FirstnameRequired]:o(`nameRequired`),[I.SurnameRequired]:o(`surnameRequired`),[I.YearGroupRequired]:o(`yearGroupRequired`),[I.EmailAlreadyExisted]:o(r?`emailExistsShort`:`emailExistsLong`),[I.UsernameAlreadyExisted]:o(r?`usernameExistsShort`:`usernameExistsLong`),[I.UserTypeRequired]:``,[I.MasterYearGroupRequired]:o(`yearGroupRequired`),[I.EmptyUserEntity]:``,[I.CustomerIdRequired]:``,[I.CustomerNotFoundInOnline]:``,[I.EmailTooLong]:o(`emailExceeds`),[I.UsernameTooLong]:o(`usernameExceeds`),[I.FirstnameTooLong]:o(`nameExceeds`),[I.SurnameTooLong]:o(`surnameExceeds`),[I.EmailInvalid]:o(r?`emailInvalidShort`:`emailInvalidLong`),[I.EmailInUse]:o(r?`emailExistsShort`:`emailExistsLong`),[I.UsernameInvalid]:o(r?`usernameInvalidShort`:`usernameInvalidLong`),[I.PasswordTooShort]:o(r?`passwordTooShortShort`:`passwordTooShortLong`,{minLength:t}),[I.EmailDuplicated]:``,[I.UsernameDuplicated]:``,[I.DisplayNameTooLong]:o(`displayNameExceeds`),[I.DisplayNameTooShort]:o(`displayNameTooShort`),[I.UsernameTooShort]:o(`usernameTooShort`),[I.FirstnameInvalid]:o(`firstNameInvalid`),[I.SurnameInvalid]:o(`surnameInvalid`),[I.CustomerFoundInOnline]:o(`support`),[I.UserInCustomerWithOnline]:o(`support`),[I.InvalidUserStatus]:o(`support`),[I.UserTypeMismatch]:``,[I.UserCanBeAddedInCustomer]:``,[I.UserCanBeCreated]:``,[I.UserAlreadyExistsInCustomer]:``,[I.Rostered]:``,[I.InvalidYearGroup]:o(`invalidYearGroupError`)},c={[I.Ok]:``,[I.UsernameRequired]:``,[I.EmailRequired]:`email`,[I.FirstnameRequired]:`firstName`,[I.SurnameRequired]:`surname`,[I.YearGroupRequired]:`masterYearGroup`,[I.EmailAlreadyExisted]:`email`,[I.UsernameAlreadyExisted]:`username`,[I.UserTypeRequired]:``,[I.MasterYearGroupRequired]:`masterYearGroup`,[I.EmptyUserEntity]:``,[I.CustomerIdRequired]:``,[I.CustomerNotFoundInOnline]:``,[I.EmailTooLong]:`email`,[I.UsernameTooLong]:`username`,[I.FirstnameTooLong]:`firstName`,[I.SurnameTooLong]:`surname`,[I.EmailInvalid]:`email`,[I.EmailInUse]:`email`,[I.UsernameInvalid]:`username`,[I.PasswordTooShort]:`password`,[I.EmailDuplicated]:``,[I.UsernameDuplicated]:``,[I.DisplayNameTooLong]:`displayName`,[I.DisplayNameTooShort]:`displayName`,[I.UsernameTooShort]:`username`,[I.FirstnameInvalid]:`firstName`,[I.SurnameInvalid]:`surname`,[I.UserTypeMismatch]:`email`,[I.UserCanBeAddedInCustomer]:`email`,[I.UserCanBeCreated]:`email`,[I.CustomerFoundInOnline]:`email`,[I.UserInCustomerWithOnline]:`email`,[I.InvalidUserStatus]:`email`,[I.UserAlreadyExistsInCustomer]:`email`,[I.Rostered]:`email`,[I.InvalidYearGroup]:`masterYearGroup`};return e.forEach(e=>{let t=i?.[e]??s[e]??``;if(!t)return;let n=c[e];n&&(a[n]=i?.[e]?.[n]??t)}),a},showEmptyState(e,t){if(!e.data)return!1;let n=Object.keys(t).length;return`results`in e.data||n?!1:!e.data.data?.length},getFilters(e,t,n,r){let i=[_.SortBy(v.getNameSortOptions())];return t===E.Learner&&n?.length>1&&i.push(_.YearGroup(v.getYearGroupOptions(n))),i.push(_.Status()),t===E.Staff&&i.push(_.IsAdmin(e,r)),i},getMinimumPasswordLength(e,t,n){if(!e)return L;let r=e.securitySettings?.find(e=>e.userRole===n&&e.userType===t);return r?r.minPasswordLength:n===D.Admin||n===D.SuperAdmin?e.defaultAdminMinPasswordLength:e.defaultMinPasswordLength},mapStatusParamsToValue(e){if(!e)return;let t=e=>{switch(e){case`active`:return T.Active;case`deactivated`:return T.Disabled;case`pending`:return T.Inactive}};return Array.isArray(e)?e.map(t):[t(e)]},buildSearchData({customerId:e,userId:t,userType:n,queryParams:r={}}){let i=B.buildSearchFiltersData(e,n,r),a=B.buildSearchSortData(e,r);return{query:r.query,indices:[`user`],searchType:`user`,customerIdOverride:e,userId:t,customerId:e,filters:i,sorts:a}},buildSearchDataAndKey({customerId:e,userId:t,userType:n,queryParams:r,cursor:i}){let o=B.buildSearchData({customerId:e,userId:t||``,userType:n,queryParams:r||{}});i&&(o.cursor=i);let s=`search:users:${i||``}`;return s+=a.flattenObjectToString(o),{key:s,data:o}},buildSearchParams(e,t,n={}){let r=B.buildSearchFiltersObject(e,t,n);return r=Object.keys(r).reduce((e,t)=>(e[`${g.FILTER_PARAM_PREFIX}${t}`]=r[t],e),{}),{query:n.query,index:`user`,customerIdOverride:e,...r}},buildSearchSortData(e,t={}){let n={};if(t.sort)switch(t.sort){case`first-name-atoz`:n.firstName=`asc`;break;case`first-name-ztoa`:n.firstName=`desc`;break;case`surname-atoz`:n.surname=`asc`;break;case`surname-ztoa`:n.surname=`desc`;break;case`newest`:n.userProfile={customerId:e,fieldOrders:{dateCreated:`desc`}};break;case`oldest`:n.userProfile={customerId:e,fieldOrders:{dateCreated:`asc`}};break;default:break}else n.userProfile={customerId:e,fieldOrders:{dateCreated:`desc`}};return n},buildSearchFiltersData(e,t,n={}){let r={userType:t.toLowerCase()};return r.userProfile={customerId:e},n.isAdmin===`true`&&(r.userProfile.role=[D.Admin.toLowerCase(),D.SuperAdmin.toLowerCase()]),n.yearGroup&&(r.yearGroup={customerId:e},Array.isArray(n.yearGroup)?r.yearGroup.value=n.yearGroup:r.yearGroup.value=[n.yearGroup]),n.status&&(Array.isArray(n.status)?r.userProfile.status=n.status.map(e=>z[e]):r.userProfile.status=[z[n.status]]),r},buildSearchFiltersObject(e,t,n={}){let r={userType:t.toLowerCase(),customerId:e.toString()};return n.isAdmin===`true`&&(r.userRole=D.Admin.toLowerCase()),n.yearGroup&&(Array.isArray(n.yearGroup)?r.yearGroup=`${n.yearGroup.join(`,`)}`:r.yearGroup=n.yearGroup),n.status&&(Array.isArray(n.status)?r.userProfileStatus=n.status.map(e=>z[e]).join(`,`):r.userProfileStatus=z[n.status]),r},buildGetUsersQuery(e,t={}){let{yearGroup:n=``,status:r=``,isAdmin:i=``,sort:a=`newest`}=t,o=[`usertype:${e}`];if(n&&(Array.isArray(n)?o.push(`yeargroups.value:[${n.join(`,`)}]`):o.push(`yeargroups.value:${n}`)),i===`true`&&o.push(`userprofiles.role:${D.Admin}`),r&&(Array.isArray(r)?o.push(`status:[${r.map(e=>z[e]).join(`,`)}]`):o.push(`status:${z[r]}`)),a)switch(a){case`first-name-atoz`:o.push(`orderby:name`);break;case`first-name-ztoa`:o.push(`orderbydesc:name`);break;case`surname-atoz`:o.push(`orderby:surname`);break;case`surname-ztoa`:o.push(`orderbydesc:surname`);break;case`newest`:o.push(`orderbydesc:timestamp`);break;case`oldest`:o.push(`orderby:timestamp`);break;default:break}return`{${o.join(`,`)}}avatar`},shouldDisplayAuthenticationMethods(e){return!e?.length||!h.first(e).authenticationMethods?.length?!1:!!e.find(e=>!!e.authenticationMethods?.find(e=>!e.local))},handleAsyncErrors(e,t,r,i){let a=e?.[0]?.errorCodes;if(!a?.length)return!0;let o={};return(a.includes(I.EmailAlreadyExisted)||a.includes(I.EmailInUse))&&(!r||r.email!==t.email)&&(o.email=n.getPhrase(R,`emailExistsLong`)),a.includes(I.UsernameAlreadyExisted)&&(!r||r.username!==t.username)&&(o.username=n.getPhrase(R,`usernameExistsLong`)),Object.keys(o).length?(i({errors:o}),!1):!0},getInitialErrorsForInvalidYearGroups(e){return!e||e.value===0?{masterYearGroup:n.getPhrase(R,`yearGroupRequired`)}:{}}},V=t(ne(),1),H=`settings.emailSettings`,U=(0,V.object)().shape({email:(0,V.string)().required(()=>n.getPhrase(H,`emailRequired`)).email(()=>n.getPhrase(H,`emailInvalid`)).trim().default(``)}),W=s();function re(){return(0,W.jsx)(j,{children:(0,W.jsx)(`svg`,{viewBox:`0 0 24 24`,children:(0,W.jsx)(`path`,{d:`M10.407 12.368l-1.22-1.22a.49.49 0 0 0-.698.004l-.583.583a.494.494 0 0 0-.004.697l2.135 2.135c.107.108.25.154.388.142a.488.488 0 0 0 .352-.143l4.362-4.362a.494.494 0 0 0-.004-.698l-.582-.582a.495.495 0 0 0-.698-.004l-3.448 3.448zm7.922-.37l1.437 1.406c.208.194.277.437.208.728a.716.716 0 0 1-.541.531l-1.957.5.551 1.936a.671.671 0 0 1-.197.729.671.671 0 0 1-.73.198l-1.935-.552-.5 1.957a.716.716 0 0 1-.53.541 1.28 1.28 0 0 1-.199.021.686.686 0 0 1-.53-.229L12 18.328l-1.405 1.436c-.195.208-.437.278-.729.208a.696.696 0 0 1-.53-.541l-.5-1.957-1.937.552a.671.671 0 0 1-.728-.198.671.671 0 0 1-.198-.729l.551-1.936-1.957-.5a.716.716 0 0 1-.54-.53c-.07-.292 0-.535.207-.73l1.437-1.405-1.437-1.405c-.208-.194-.277-.437-.208-.729a.716.716 0 0 1 .541-.53l1.957-.5-.551-1.936a.671.671 0 0 1 .198-.73.671.671 0 0 1 .728-.197l1.936.552.5-1.957a.675.675 0 0 1 .531-.531.671.671 0 0 1 .729.198L12 5.68l1.405-1.447a.697.697 0 0 1 .73-.198c.284.07.46.246.53.53l.5 1.958L17.1 5.97a.671.671 0 0 1 .729.198.671.671 0 0 1 .197.729l-.551 1.936 1.957.5a.715.715 0 0 1 .541.53c.07.292 0 .535-.208.73l-1.437 1.404z`})})})}var G=`settings.emailSettings`,K=n.encloseNamespace(G);function ie(e){let t=w(O.MDDown),[n,r]=F.useState(!t),i=e.currentUser.emailVerified;return F.useEffect(()=>{!t&&!n&&r(!0)},[t,n]),(0,W.jsxs)(S.Provider,{value:G,children:[(0,W.jsxs)(`h2`,{className:`h4 d-flex align-items-center`,children:[(0,W.jsx)(x,{phrase:`heading`}),i&&(0,W.jsxs)(`span`,{className:`font-size-normal fw-semibold text-primary d-flex align-items-center mb-0 ms-2`,children:[(0,W.jsx)(x,{phrase:`verified`}),(0,W.jsx)(re,{})]})]}),i&&(0,W.jsx)(`p`,{children:(0,W.jsx)(x,{phrase:`info`,options:{email:e.currentUser.email}})}),n?(0,W.jsx)(k,{initialValues:{email:e.currentUser.email||``},onSubmit:e.onChangeEmail,validationSchema:U,children:(0,W.jsxs)(b,{children:[(0,W.jsx)(A,{className:`w-75`,name:`email`,placeholder:K(`emailPlaceholder`),autoComplete:`email`}),(0,W.jsxs)(`div`,{className:`d-flex justify-content-end w-75 ${t?`ms-n2`:``}`,children:[t&&(0,W.jsx)(`button`,{type:`button`,className:`btn btn-link me-2`,onClick:()=>r(!1),children:(0,W.jsx)(x,{phrase:`cancel`})}),(0,W.jsx)(M,{isNew:!1,submitText:K(i?`updateEmail`:`verifyEmail`),variant:i?`outline-dark`:`dark`})]})]})}):(0,W.jsx)(W.Fragment,{children:(0,W.jsx)(`div`,{className:`d-flex`,children:(0,W.jsx)(`button`,{className:`btn btn-outline-dark me-2`,onClick:()=>r(!0),children:(0,W.jsx)(x,{phrase:`change`})})})})]})}var q={partialLabel:`_partialLabel_1h6pk_1`,partialInfo:`_partialInfo_1h6pk_5`,partialInput:`_partialInput_1h6pk_10`,partialSubmit:`_partialSubmit_1h6pk_14`,partialNote:`_partialNote_1h6pk_18`};function ae(){return(0,W.jsxs)(`div`,{className:`w-50`,children:[(0,W.jsx)(`div`,{className:`partial-loading-background mb-2 ${q.partialLabel}`}),(0,W.jsx)(`div`,{className:`partial-loading-background ${q.partialInfo}`}),(0,W.jsx)(`div`,{className:`form-group`,children:(0,W.jsx)(`div`,{className:`partial-loading-background ${q.partialInput}`})}),(0,W.jsx)(`div`,{className:`partial-loading-background ${q.partialSubmit}`}),(0,W.jsx)(`div`,{className:`partial-loading-background mt-2 ${q.partialNote}`})]})}var J=`shared.changePasswordForm`,Y=n.encloseNamespace(J);X.defaultProps={submitVariant:`outline-dark`,buttonContainerClass:`btn-container d-flex justify-content-end align-items-center`,inputWidthClass:`w-100`};function X(e){let t=y();return(0,W.jsxs)(b,{children:[!e.hideCurrentPassword&&(0,W.jsx)(A,{className:e.inputWidthClass,name:`currentPassword`,label:Y(`currentPassword`),placeholder:Y(`currentPasswordPlaceholder`),type:`password`,autoComplete:`current-password`,showRequiredStar:!0}),(0,W.jsx)(A,{className:e.inputWidthClass,name:`newPassword`,label:Y(`newPassword`),placeholder:Y(`newPasswordPlaceholder`),type:`password`,autoComplete:`new-password`,showRequiredStar:!0}),(0,W.jsx)(A,{className:e.inputWidthClass,name:`confirmPassword`,label:Y(`confirmPassword`),placeholder:Y(`confirmPasswordPlaceholder`),type:`password`,autoComplete:`off`,showRequiredStar:!0}),e.showChangeOnNextLogin&&(0,W.jsx)(A,{id:`changeOnNextLogin`,name:`changeOnNextLogin`,label:Y(`changeOnNextLogin`),type:`checkbox`,checked:t.values.changeOnNextLogin,checkboxLabelFontWeight:`normal`}),!e.hideButtons&&(0,W.jsxs)(`div`,{className:e.buttonContainerClass,children:[!e.hideCancelButton&&!!e.onClickCancel&&(0,W.jsx)(`button`,{type:`button`,className:`btn btn-link me-2 ${e.buttonSize===`lg`?`btn-lg`:``}`,onClick:e.onClickCancel,children:(0,W.jsx)(x,{namespace:J,phrase:`cancel`})}),(0,W.jsx)(M,{isNew:!1,submitText:e.submitText||Y(`save`),variant:e.submitVariant,size:e.buttonSize})]})]})}var Z=n.encloseNamespace(`settings.passwordSettings`),oe=e=>(0,V.object)().shape({currentPassword:(0,V.string)().required(()=>Z(`currentPasswordRequired`)).trim().default(``),newPassword:(0,V.string)().required(()=>Z(`newPasswordRequired`)).min(e,()=>Z(`newPasswordMinLength`,{minLen:e})).trim().default(``),confirmPassword:(0,V.string)().required(()=>Z(`confirmPasswordRequired`)).oneOf([(0,V.ref)(`newPassword`),null],()=>Z(`passwordsDontMatch`)).trim().default(``)}),Q=`settings.passwordSettings`,se={currentPassword:``,newPassword:``,confirmPassword:``};function ce(e){let t=w(O.MDDown),[r,i]=F.useState(!t);F.useEffect(()=>{!t&&!r&&i(!0)},[t,r]);function a(t,n){e.onChangePassword(t,n,()=>n({reset:!0}))}return(0,W.jsxs)(S.Provider,{value:Q,children:[(0,W.jsx)(`h2`,{className:`h4`,children:(0,W.jsx)(x,{phrase:`heading`})}),r?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`p`,{children:(0,W.jsx)(x,{phrase:`info`})}),(0,W.jsx)(k,{initialValues:se,onSubmit:a,validationSchema:oe(e.minPasswordLength),children:(0,W.jsx)(X,{onClickCancel:()=>i(!1),hideCancelButton:!t,submitText:n.getPhrase(Q,`savePassword`),buttonContainerClass:t?`d-flex justify-content-end ms-n2 w-75`:`d-flex justify-content-end w-75`,inputWidthClass:`w-75`})})]}):(0,W.jsx)(`button`,{className:`btn btn-outline-dark `,onClick:()=>i(!0),children:(0,W.jsx)(x,{phrase:`change`})})]})}var le={getCustomerSecuritySettings(e,t,n){return{url:`{gateway}/v1/customers/${e}/settings/security`,key:`customers:security:settings`,normalize:!1,success:t,error:n}},setCustomerSecuritySettings(e,t,n,r){return{url:`{gateway}/v1/customers/${e}/settings/security`,key:`update:security:settings`,invalidationKeys:`customers:security:settings`,type:m.PUT,normalize:!1,data:t,success:n,error:r}}},$=n.encloseNamespace(`settings.accountSettings`);function ue(){let e=f(),t=te(),n=w(O.MDDown),a=d(ee.currentUser()),s=d(a.data&&P.getUser(a.data.id)),u=d(a.data&&le.getCustomerSecuritySettings(a.data.customerId));C({title:$(`heading`)});function m(n,s){p(e,P.changeEmail(n.email,()=>{l.logUserAction({id:a.data.id,oldEmail:a.data.email,newEmail:n.email},{actionType:r.VerifyEmail,entity:o.User,location:c.Settings,workflowPhase:i.Start}),t.success($(`changeEmailRequestSuccess`,{email:n.email,escapeText:!0}))},()=>{t.error($(`changeEmailRequestError`))},s))}function h(n,s,u){p(e,P.changePassword(n,()=>{l.logUserAction({id:a.data.id,oldPassword:n.currentPassword,newPassword:n.newPassword},{actionType:r.ChangePassword,entity:o.User,location:c.Settings,workflowPhase:i.Complete}),t.success($(`changePasswordSuccess`)),u()},({responseJSON:e})=>{e.errorCode===`user.password-too-short`?t.error($(`changePasswordRequirementsError`)):e.errorCode===`user.invalid-password`?t.error($(`changePasswordInvalid`)):e.errorCode===`user.same-password`?t.error($(`changePasswordSame`)):e.errorCode===`user.locked-out`?t.error($(`changePasswordLockedOut`)):t.error($(`changePasswordError`))},s))}let g=B.getMinimumPasswordLength(u.data,s.data?.userType,a.data.role);return(0,W.jsxs)(N,{heading:$(`heading`),breadcrumbs:[$(`breadcrumb`)],children:[(0,W.jsx)(`div`,{className:n?`w-100`:`w-50`,children:a.data?(0,W.jsx)(ie,{currentUser:a.data,onChangeEmail:m}):(0,W.jsx)(ae,{})}),(0,W.jsx)(`hr`,{}),(0,W.jsx)(`div`,{className:n?`w-100`:`w-50`,children:u.data&&(0,W.jsx)(ce,{onChangePassword:h,minPasswordLength:g})})]})}export{ue as AccountSettingsView};
2
+ //# sourceMappingURL=CNJrD44-2.chunk.js.map