@clickview/lite 0.73.1 → 0.74.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (164) hide show
  1. package/dist/bundles.json +2 -2
  2. package/dist/css/{7122-lite-a094f8fe17.chunk.css → 7122-lite-e0652641e4.chunk.css} +1 -1
  3. package/dist/css/{4499-lite-c43d17524f.chunk.css → 7150-lite-60d455ba66.chunk.css} +1 -1
  4. package/dist/css/{lite-app-10d57977f3.css → lite-app-98b3200025.css} +1 -1
  5. package/dist/languages/en.json +1 -1
  6. package/dist/scripts/{1362-061cd588c0-lite.chunk.js → 1362-56810ef4c8-lite.chunk.js} +3 -3
  7. package/dist/scripts/1362-56810ef4c8-lite.chunk.js.map +1 -0
  8. package/dist/scripts/{1367-12750422b0-lite.chunk.js → 1367-e0481edee3-lite.chunk.js} +2 -2
  9. package/dist/scripts/1367-e0481edee3-lite.chunk.js.map +1 -0
  10. package/dist/scripts/{1735-c0f3f1238a-lite.chunk.js → 1735-e4cdbc46ed-lite.chunk.js} +3 -3
  11. package/dist/scripts/1735-e4cdbc46ed-lite.chunk.js.map +1 -0
  12. package/dist/scripts/{324-6d6ee95d5d-lite.chunk.js → 324-e7a99b7d52-lite.chunk.js} +2 -2
  13. package/dist/scripts/{324-6d6ee95d5d-lite.chunk.js.map → 324-e7a99b7d52-lite.chunk.js.map} +1 -1
  14. package/dist/scripts/{3252-22fac3da15-lite.chunk.js → 3252-50b5c19f19-lite.chunk.js} +1 -1
  15. package/dist/scripts/{3252-22fac3da15-lite.chunk.js.map → 3252-50b5c19f19-lite.chunk.js.map} +1 -1
  16. package/dist/scripts/3677-4904f30c6a-lite.chunk.js +2 -0
  17. package/dist/scripts/3677-4904f30c6a-lite.chunk.js.map +1 -0
  18. package/dist/scripts/{3781-7a9ddc7736-lite.chunk.js → 3781-e092f92668-lite.chunk.js} +2 -2
  19. package/dist/scripts/{3781-7a9ddc7736-lite.chunk.js.map → 3781-e092f92668-lite.chunk.js.map} +1 -1
  20. package/dist/scripts/{3823-e38a508a3c-lite.chunk.js → 3823-0dc1972eb2-lite.chunk.js} +2 -2
  21. package/dist/scripts/3823-0dc1972eb2-lite.chunk.js.map +1 -0
  22. package/dist/scripts/3915-abd9a65a08-lite.chunk.js +2 -0
  23. package/dist/scripts/3915-abd9a65a08-lite.chunk.js.map +1 -0
  24. package/dist/scripts/{3978-09fb1f250e-lite.chunk.js → 3978-a551dd2648-lite.chunk.js} +2 -2
  25. package/dist/scripts/3978-a551dd2648-lite.chunk.js.map +1 -0
  26. package/dist/scripts/{4013-d31272b42a-lite.chunk.js → 4013-6f68d7031e-lite.chunk.js} +1 -1
  27. package/dist/scripts/{4013-d31272b42a-lite.chunk.js.map → 4013-6f68d7031e-lite.chunk.js.map} +1 -1
  28. package/dist/scripts/{4014-4225ce1eb6-lite.chunk.js → 4014-3eccce2f89-lite.chunk.js} +3 -3
  29. package/dist/scripts/4014-3eccce2f89-lite.chunk.js.map +1 -0
  30. package/dist/scripts/{4050-cf35c4ec45-lite.chunk.js → 4050-ffe5b6ae6d-lite.chunk.js} +2 -2
  31. package/dist/scripts/{4050-cf35c4ec45-lite.chunk.js.map → 4050-ffe5b6ae6d-lite.chunk.js.map} +1 -1
  32. package/dist/scripts/{4061-525ef00f69-lite.chunk.js → 4061-100002abf6-lite.chunk.js} +2 -2
  33. package/dist/scripts/4061-100002abf6-lite.chunk.js.map +1 -0
  34. package/dist/scripts/4191-9a08c4b205-lite.chunk.js +2 -0
  35. package/dist/scripts/4191-9a08c4b205-lite.chunk.js.map +1 -0
  36. package/dist/scripts/{4358-b21c24f96a-lite.chunk.js → 4358-a1bbca8249-lite.chunk.js} +1 -1
  37. package/dist/scripts/{4358-b21c24f96a-lite.chunk.js.map → 4358-a1bbca8249-lite.chunk.js.map} +1 -1
  38. package/dist/scripts/{4400-8c36fb4ab5-lite.chunk.js → 4400-755a158a52-lite.chunk.js} +2 -2
  39. package/dist/scripts/4400-755a158a52-lite.chunk.js.map +1 -0
  40. package/dist/scripts/4806-13c9302b2c-lite.chunk.js +2 -0
  41. package/dist/scripts/4806-13c9302b2c-lite.chunk.js.map +1 -0
  42. package/dist/scripts/{5135-864055ab0b-lite.chunk.js → 5135-166ec46620-lite.chunk.js} +2 -2
  43. package/dist/scripts/5135-166ec46620-lite.chunk.js.map +1 -0
  44. package/dist/scripts/{5143-286c66de2b-lite.chunk.js → 5143-d6c4a357ea-lite.chunk.js} +2 -2
  45. package/dist/scripts/5143-d6c4a357ea-lite.chunk.js.map +1 -0
  46. package/dist/scripts/{5743-a764171a6d-lite.chunk.js → 5743-14700e4f76-lite.chunk.js} +2 -2
  47. package/dist/scripts/5743-14700e4f76-lite.chunk.js.map +1 -0
  48. package/dist/scripts/{6030-5db8cc1bc4-lite.chunk.js → 6030-c2e07df714-lite.chunk.js} +2 -2
  49. package/dist/scripts/6030-c2e07df714-lite.chunk.js.map +1 -0
  50. package/dist/scripts/{618-4334f9451b-lite.chunk.js → 618-996d8b560b-lite.chunk.js} +2 -2
  51. package/dist/scripts/618-996d8b560b-lite.chunk.js.map +1 -0
  52. package/dist/scripts/{6207-f444184025-lite.chunk.js → 6207-be843186e0-lite.chunk.js} +1 -1
  53. package/dist/scripts/{6207-f444184025-lite.chunk.js.map → 6207-be843186e0-lite.chunk.js.map} +1 -1
  54. package/dist/scripts/{6413-c4333e80d4-lite.chunk.js → 6413-caaae6a383-lite.chunk.js} +3 -3
  55. package/dist/scripts/{6413-c4333e80d4-lite.chunk.js.map → 6413-caaae6a383-lite.chunk.js.map} +1 -1
  56. package/dist/scripts/{6646-24a34f7d99-lite.chunk.js → 6646-c5775f6553-lite.chunk.js} +3 -3
  57. package/dist/scripts/6646-c5775f6553-lite.chunk.js.map +1 -0
  58. package/dist/scripts/{6909-8a45942b63-lite.chunk.js → 6909-6805b6a0d9-lite.chunk.js} +2 -2
  59. package/dist/scripts/6909-6805b6a0d9-lite.chunk.js.map +1 -0
  60. package/dist/scripts/7064-b3bafc599f-lite.chunk.js +2 -0
  61. package/dist/scripts/7064-b3bafc599f-lite.chunk.js.map +1 -0
  62. package/dist/scripts/7122-dbf374af58-lite.chunk.js +2 -0
  63. package/dist/scripts/7122-dbf374af58-lite.chunk.js.map +1 -0
  64. package/dist/scripts/7150-93a205975c-lite.chunk.js +2 -0
  65. package/dist/scripts/7150-93a205975c-lite.chunk.js.map +1 -0
  66. package/dist/scripts/{7234-85d4acaa33-lite.chunk.js → 7234-bcddfe2112-lite.chunk.js} +2 -2
  67. package/dist/scripts/7234-bcddfe2112-lite.chunk.js.map +1 -0
  68. package/dist/scripts/{7383-690bc234f1-lite.chunk.js → 7383-02d4956304-lite.chunk.js} +2 -2
  69. package/dist/scripts/7383-02d4956304-lite.chunk.js.map +1 -0
  70. package/dist/scripts/{7873-2e64f4eb37-lite.chunk.js → 7873-0ce0523a28-lite.chunk.js} +2 -2
  71. package/dist/scripts/{7873-2e64f4eb37-lite.chunk.js.map → 7873-0ce0523a28-lite.chunk.js.map} +1 -1
  72. package/dist/scripts/{8248-050265ed2d-lite.chunk.js → 8248-41dad9bf71-lite.chunk.js} +3 -3
  73. package/dist/scripts/8248-41dad9bf71-lite.chunk.js.map +1 -0
  74. package/dist/scripts/8385-6ef08fa319-lite.chunk.js +2 -0
  75. package/dist/scripts/8385-6ef08fa319-lite.chunk.js.map +1 -0
  76. package/dist/scripts/{8451-1cb649a3f3-lite.chunk.js → 8451-0103210a8f-lite.chunk.js} +2 -2
  77. package/dist/scripts/8451-0103210a8f-lite.chunk.js.map +1 -0
  78. package/dist/scripts/8630-80f676dcda-lite.chunk.js +2 -0
  79. package/dist/scripts/8630-80f676dcda-lite.chunk.js.map +1 -0
  80. package/dist/scripts/8891-5118c47b59-lite.chunk.js +2 -0
  81. package/dist/scripts/8891-5118c47b59-lite.chunk.js.map +1 -0
  82. package/dist/scripts/8982-b9e53e43ec-lite.chunk.js +2 -0
  83. package/dist/scripts/8982-b9e53e43ec-lite.chunk.js.map +1 -0
  84. package/dist/scripts/{9186-daf77d7174-lite.chunk.js → 9186-c1d2615458-lite.chunk.js} +2 -2
  85. package/dist/scripts/9186-c1d2615458-lite.chunk.js.map +1 -0
  86. package/dist/scripts/{9241-dbac9cb9f9-lite.chunk.js → 9241-2386134dd3-lite.chunk.js} +2 -2
  87. package/dist/scripts/9241-2386134dd3-lite.chunk.js.map +1 -0
  88. package/dist/scripts/{9345-30ccf524c5-lite.chunk.js → 9345-0a7f58bb53-lite.chunk.js} +3 -3
  89. package/dist/scripts/9345-0a7f58bb53-lite.chunk.js.map +1 -0
  90. package/dist/scripts/9352-d4b2dc16a8-lite.chunk.js +2 -0
  91. package/dist/scripts/9352-d4b2dc16a8-lite.chunk.js.map +1 -0
  92. package/dist/scripts/{9503-275c13891d-lite.chunk.js → 9503-715c46ecc1-lite.chunk.js} +2 -2
  93. package/dist/scripts/9503-715c46ecc1-lite.chunk.js.map +1 -0
  94. package/dist/scripts/9630-ca2a850260-lite.chunk.js +2 -0
  95. package/dist/scripts/9630-ca2a850260-lite.chunk.js.map +1 -0
  96. package/dist/scripts/{9767-d69fdc31b0-lite.chunk.js → 9767-1b583ceb6c-lite.chunk.js} +2 -2
  97. package/dist/scripts/9767-1b583ceb6c-lite.chunk.js.map +1 -0
  98. package/dist/scripts/9894-7c119a8fe3-lite.chunk.js +2 -0
  99. package/dist/scripts/9894-7c119a8fe3-lite.chunk.js.map +1 -0
  100. package/dist/scripts/bundle-5b65703152.min.js +3 -0
  101. package/dist/scripts/{bundle-0075afb6af.min.js.map → bundle-5b65703152.min.js.map} +1 -1
  102. package/package.json +1 -1
  103. package/dist/scripts/1362-061cd588c0-lite.chunk.js.map +0 -1
  104. package/dist/scripts/1367-12750422b0-lite.chunk.js.map +0 -1
  105. package/dist/scripts/1735-c0f3f1238a-lite.chunk.js.map +0 -1
  106. package/dist/scripts/3677-20958f59d3-lite.chunk.js +0 -2
  107. package/dist/scripts/3677-20958f59d3-lite.chunk.js.map +0 -1
  108. package/dist/scripts/3823-e38a508a3c-lite.chunk.js.map +0 -1
  109. package/dist/scripts/3915-a1f15d687a-lite.chunk.js +0 -2
  110. package/dist/scripts/3915-a1f15d687a-lite.chunk.js.map +0 -1
  111. package/dist/scripts/3978-09fb1f250e-lite.chunk.js.map +0 -1
  112. package/dist/scripts/4014-4225ce1eb6-lite.chunk.js.map +0 -1
  113. package/dist/scripts/4061-525ef00f69-lite.chunk.js.map +0 -1
  114. package/dist/scripts/4191-7612e1713c-lite.chunk.js +0 -2
  115. package/dist/scripts/4191-7612e1713c-lite.chunk.js.map +0 -1
  116. package/dist/scripts/4400-8c36fb4ab5-lite.chunk.js.map +0 -1
  117. package/dist/scripts/4499-1365934bf2-lite.chunk.js +0 -2
  118. package/dist/scripts/4499-1365934bf2-lite.chunk.js.map +0 -1
  119. package/dist/scripts/4806-384760d9c9-lite.chunk.js +0 -2
  120. package/dist/scripts/4806-384760d9c9-lite.chunk.js.map +0 -1
  121. package/dist/scripts/5135-864055ab0b-lite.chunk.js.map +0 -1
  122. package/dist/scripts/5143-286c66de2b-lite.chunk.js.map +0 -1
  123. package/dist/scripts/5743-a764171a6d-lite.chunk.js.map +0 -1
  124. package/dist/scripts/6030-5db8cc1bc4-lite.chunk.js.map +0 -1
  125. package/dist/scripts/618-4334f9451b-lite.chunk.js.map +0 -1
  126. package/dist/scripts/6646-24a34f7d99-lite.chunk.js.map +0 -1
  127. package/dist/scripts/6909-8a45942b63-lite.chunk.js.map +0 -1
  128. package/dist/scripts/7064-3ccf1b82d1-lite.chunk.js +0 -2
  129. package/dist/scripts/7064-3ccf1b82d1-lite.chunk.js.map +0 -1
  130. package/dist/scripts/7122-352fdd3516-lite.chunk.js +0 -2
  131. package/dist/scripts/7122-352fdd3516-lite.chunk.js.map +0 -1
  132. package/dist/scripts/7234-85d4acaa33-lite.chunk.js.map +0 -1
  133. package/dist/scripts/7383-690bc234f1-lite.chunk.js.map +0 -1
  134. package/dist/scripts/8248-050265ed2d-lite.chunk.js.map +0 -1
  135. package/dist/scripts/8385-083e882d77-lite.chunk.js +0 -2
  136. package/dist/scripts/8385-083e882d77-lite.chunk.js.map +0 -1
  137. package/dist/scripts/8451-1cb649a3f3-lite.chunk.js.map +0 -1
  138. package/dist/scripts/8630-0945271ea2-lite.chunk.js +0 -2
  139. package/dist/scripts/8630-0945271ea2-lite.chunk.js.map +0 -1
  140. package/dist/scripts/8891-393bb5bdaf-lite.chunk.js +0 -2
  141. package/dist/scripts/8891-393bb5bdaf-lite.chunk.js.map +0 -1
  142. package/dist/scripts/8982-8c21fab48a-lite.chunk.js +0 -2
  143. package/dist/scripts/8982-8c21fab48a-lite.chunk.js.map +0 -1
  144. package/dist/scripts/9186-daf77d7174-lite.chunk.js.map +0 -1
  145. package/dist/scripts/9241-dbac9cb9f9-lite.chunk.js.map +0 -1
  146. package/dist/scripts/9345-30ccf524c5-lite.chunk.js.map +0 -1
  147. package/dist/scripts/9352-04db4c533d-lite.chunk.js +0 -2
  148. package/dist/scripts/9352-04db4c533d-lite.chunk.js.map +0 -1
  149. package/dist/scripts/9503-275c13891d-lite.chunk.js.map +0 -1
  150. package/dist/scripts/9630-285237c980-lite.chunk.js +0 -2
  151. package/dist/scripts/9630-285237c980-lite.chunk.js.map +0 -1
  152. package/dist/scripts/9767-d69fdc31b0-lite.chunk.js.map +0 -1
  153. package/dist/scripts/9894-10943e41f7-lite.chunk.js +0 -2
  154. package/dist/scripts/9894-10943e41f7-lite.chunk.js.map +0 -1
  155. package/dist/scripts/bundle-0075afb6af.min.js +0 -3
  156. /package/dist/scripts/{1362-061cd588c0-lite.chunk.js.LICENSE.txt → 1362-56810ef4c8-lite.chunk.js.LICENSE.txt} +0 -0
  157. /package/dist/scripts/{1735-c0f3f1238a-lite.chunk.js.LICENSE.txt → 1735-e4cdbc46ed-lite.chunk.js.LICENSE.txt} +0 -0
  158. /package/dist/scripts/{4014-4225ce1eb6-lite.chunk.js.LICENSE.txt → 4014-3eccce2f89-lite.chunk.js.LICENSE.txt} +0 -0
  159. /package/dist/scripts/{4050-cf35c4ec45-lite.chunk.js.LICENSE.txt → 4050-ffe5b6ae6d-lite.chunk.js.LICENSE.txt} +0 -0
  160. /package/dist/scripts/{6413-c4333e80d4-lite.chunk.js.LICENSE.txt → 6413-caaae6a383-lite.chunk.js.LICENSE.txt} +0 -0
  161. /package/dist/scripts/{6646-24a34f7d99-lite.chunk.js.LICENSE.txt → 6646-c5775f6553-lite.chunk.js.LICENSE.txt} +0 -0
  162. /package/dist/scripts/{8248-050265ed2d-lite.chunk.js.LICENSE.txt → 8248-41dad9bf71-lite.chunk.js.LICENSE.txt} +0 -0
  163. /package/dist/scripts/{9345-30ccf524c5-lite.chunk.js.LICENSE.txt → 9345-0a7f58bb53-lite.chunk.js.LICENSE.txt} +0 -0
  164. /package/dist/scripts/{bundle-0075afb6af.min.js.LICENSE.txt → bundle-5b65703152.min.js.LICENSE.txt} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scripts/8891-5118c47b59-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/errors/handlers/HttpErrorHandlers.ts","file:///app/packages/libs/shared/src/hooks/UseInfiniteScroll.ts","file:///app/packages/libs/shared/src/hooks/UseInfiniteList.ts","file:///app/packages/projects/lite/src/shared/hooks/useCommonVideoProps.ts","file:///app/packages/projects/lite/src/shared/hooks/usePresentationAudiences.ts","file:///app/packages/projects/lite/src/shared/hooks/useVideoFeatureAccess.ts","file:///app/packages/projects/lite/src/shared/views/video-media/ClipInteractivesView.tsx","file:///app/packages/projects/lite/src/shared/views/video-media/VideoMediaAppLinks.ts","file:///app/packages/projects/lite/src/shared/views/video-media/partial-loading/partial-video-media-view.scss","file:///app/packages/projects/lite/src/shared/views/video-media/partial-loading/PartialVideoMediaView.tsx"],"sourcesContent":["import { BaseError } from 'libs/common/backbone/core/BaseError';\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { Xhr } from 'libs/common/backbone/interfaces';\nimport { Core } from 'libs/common/core';\n\nimport { NotFoundError } from 'libs/shared/errors/general/not-found/NotFoundError';\nimport { PrivateResourceError } from 'libs/shared/errors/general/private-resource/PrivateResourceError';\nimport { RegionLockedResourceError } from 'libs/shared/errors/general/region-locked-resource/RegionLockedResourceError';\nimport { UnspecifiedError } from 'libs/shared/errors/general/unspecified-error/UnspecifiedError';\nimport { VideoTypes } from 'libs/shared/interfaces';\n\nexport interface HttpErrorMap {\n notFound?: new () => BaseError;\n forbidden?: {\n rating?: new (description: string) => BaseError;\n yearLevel?: new (description: string) => BaseError;\n region?: new () => BaseError;\n privacy?: new (video?: VideoTypes) => BaseError;\n };\n badRequest?: new () => BaseError;\n internalServerError?: new () => BaseError;\n}\n\nexport type IgnoreHttpErrorMap = {\n [key in keyof HttpErrorMap]: boolean;\n};\n\nconst defaultErrors: HttpErrorMap = {\n notFound: NotFoundError,\n forbidden: {\n rating: PrivateResourceError,\n yearLevel: PrivateResourceError,\n region: RegionLockedResourceError,\n privacy: PrivateResourceError\n },\n badRequest: UnspecifiedError,\n internalServerError: UnspecifiedError\n};\n\nexport function handleHttpError(\n info: HttpStatus | Xhr,\n customErrorMap: HttpErrorMap = {},\n /**\n * Prevent certain errors in the errorMap from being thrown\n * so that you may implement your own handler\n */\n ignoreMap: IgnoreHttpErrorMap = {}\n): void {\n if (!info)\n return;\n\n let statusCode: HttpStatus;\n\n if (typeof(info) === 'number') {\n statusCode = info;\n } else {\n statusCode = info.status;\n }\n\n const errorMap = {\n ...defaultErrors,\n ...customErrorMap\n };\n\n if (!statusCode)\n return;\n\n if (!Core.ErrorHelper.isStatusCodeError(statusCode))\n return;\n\n if (statusCode === HttpStatus.InternalServer) {\n if (!ignoreMap.internalServerError)\n Core.ErrorHelper.throw(new UnspecifiedError());\n return;\n }\n\n if (statusCode === HttpStatus.NotFound) {\n if (!ignoreMap.notFound)\n Core.ErrorHelper.throw(new errorMap.notFound());\n return;\n }\n\n if (statusCode === HttpStatus.Forbidden) {\n /**\n * TODO: Work out how to go about handling all forbidden errors, such as region locking, year levels,\n * ratings, and privacy.\n */\n if (!ignoreMap.forbidden)\n Core.ErrorHelper.throw(new errorMap.forbidden.privacy());\n return;\n }\n\n if (!ignoreMap.badRequest)\n Core.ErrorHelper.throw(new errorMap.badRequest());\n}\n\nexport function handleXhrError(xhr: Xhr, customErrorMap?: HttpErrorMap): void {\n handleHttpError(xhr.status, customErrorMap);\n}","import { useEffect } from 'react';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\n\nconst SCROLL_TOLERANCE = 400; // value in px\n\ninterface UseInfiniteScrollOptions {\n fetchNextPage: () => void;\n hasMore: boolean;\n isFetching: boolean;\n scrollContainer?: HTMLElement;\n}\n\nexport function useInfiniteScroll(options: UseInfiniteScrollOptions): void {\n const handleScroll = (): void => {\n if (options.isFetching)\n return;\n\n if (!options.scrollContainer) {\n const currentScrollHeight = window.innerHeight + document.documentElement.scrollTop;\n \n const totalHeight = document.documentElement.scrollHeight - SCROLL_TOLERANCE;\n \n if (currentScrollHeight < totalHeight)\n return;\n } else {\n const { scrollContainer } = options;\n const currentScrollHeight = scrollContainer.getBoundingClientRect().height + scrollContainer.scrollTop;\n \n const totalHeight = scrollContainer.scrollHeight - SCROLL_TOLERANCE;\n \n if (currentScrollHeight < totalHeight)\n return;\n }\n\n options.fetchNextPage();\n };\n\n useEffect(() => {\n const onScroll = FunctionHelper.throttle(handleScroll, 200);\n\n const scrollContainer = options.scrollContainer || window;\n\n if (options.hasMore)\n scrollContainer.addEventListener('scroll', onScroll);\n\n return () => scrollContainer.removeEventListener('scroll', onScroll);\n }, [ options.hasMore, options.fetchNextPage, options.scrollContainer ]);\n}","import { useEffect, useState } from 'react';\n\nimport { HttpStatus, HttpStatusClass } from 'libs/common/backbone/enums/HttpStatus';\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { Flight } from 'libs/common/flight';\n\nimport { BaseObject, BasePaginatedCollection } from 'libs/shared/interfaces';\n\nimport { useInfiniteScroll } from './UseInfiniteScroll';\nimport { useSelectAllPages } from './UseSelectAllPages';\n\nexport interface UseInfiniteListResult<T extends BaseObject> {\n items: T[];\n hasMore: boolean;\n isFetching: boolean;\n nextCursor: string;\n totalItems?: number;\n hasFirstPageCompleted: boolean;\n}\n\n/**\n * Hook to extract an infinite list from the application state,\n * save it locally in state and only update when new data\n * is fetched.\n * \n * @param getRequest - callback function to get the request for each page.\n * Can be false if the request requires data that hasn't yet been fetched - e.g. user id.\n * \n * @param fetchNext - callback function to fetch a page.\n * Can be false if the request requires data that hasn't yet been fetched - e.g. user id.\n */\nexport function useInfiniteList<TObject = BaseObject, TResponse = BasePaginatedCollection<TObject>>(\n getRequest: ((cursor?: string) => Flight.Request) | false,\n fetchNext: ((cursor?: string) => void) | false,\n onError?: (pageNumber: number, statusCode: HttpStatus) => void,\n getItems?: (responseData: TResponse) => TObject[],\n getCursor?: (responseData: TResponse) => string,\n scrollContainer?: HTMLElement\n): UseInfiniteListResult<TObject> {\n const [ pagesFetched, setPagesFetched ] = useState(0);\n\n const fetchNextFn = fetchNext as (cursor?: string) => void;\n\n function getKey(cursor?: string): string {\n if (!getRequest)\n return null;\n\n const request = getRequest(cursor);\n\n if (!request)\n return null;\n\n return request.key;\n }\n\n const response = useSelectAllPages<TObject, TResponse>(\n getKey,\n getItems,\n getCursor\n );\n\n function fetchNextPage(): void {\n if (!fetchNext || !getRequest || !response)\n return;\n\n setPagesFetched(currentVal => currentVal + 1);\n return fetchNextFn(response.nextCursor);\n }\n\n useInfiniteScroll({\n fetchNextPage,\n hasMore: !!response?.nextCursor,\n isFetching: response?.isFetching,\n scrollContainer\n });\n\n useEffect(() => {\n if (!response)\n return;\n\n if (response.shouldInitialFetch && fetchNext) {\n fetchNextFn();\n setPagesFetched(currentVal => currentVal + 1);\n }\n }, [ response?.shouldInitialFetch, fetchNext ]);\n\n useEffect(() => {\n if (!response?.statusCode || !FunctionHelper.isFunction(onError))\n return;\n\n const httpStatusClass: HttpStatusClass = +(response.statusCode?.toString()?.substr(0, 1));\n\n if (httpStatusClass !== HttpStatusClass.ClientError && httpStatusClass !== HttpStatusClass.ServerError)\n return;\n\n onError(pagesFetched, response.statusCode);\n }, [response?.statusCode]);\n\n return {\n items: response?.items,\n hasMore: !!response?.nextCursor,\n nextCursor: response?.nextCursor,\n isFetching: response?.isFetching,\n totalItems: response?.totalItems,\n hasFirstPageCompleted: response?.hasFirstPageCompleted\n };\n}","import { Core } from 'libs/common/backbone/index';\nimport { Flight } from 'libs/common/react/index';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { Config, CurrentUser, VideoTypes, YearGroup } from 'libs/shared/interfaces';\nimport { CommonVideoProps } from 'libs/shared/interfaces/CommonVideoProps';\n\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\n\nimport { SeriesAppLinkHelper } from 'apps/series/SeriesAppLinkHelper';\n\nimport { usePluginHelper } from './use-plugin-helper/usePluginHelper';\nimport { useLiteFavourites } from './useLiteFavourites';\n\ninterface UseCommonVideoPropsResult {\n hasCommonVideoPropsCompleted: boolean;\n commonVideoProps: CommonVideoProps;\n}\n\ninterface UseCommonVideoPropsOptions {\n locationContext: LocationContext,\n mtv?: boolean;\n flightNamespace?: string;\n sharedPlaylist?: boolean;\n}\n\nexport function useCommonVideoProps(options: UseCommonVideoPropsOptions): UseCommonVideoPropsResult {\n const { locationContext, mtv, flightNamespace, sharedPlaylist } = options || {};\n\n const { isPlugin, params } = usePluginHelper();\n const { setFavourite, canFavourite } = useLiteFavourites(locationContext, flightNamespace);\n const { hasTopicDirectories, isLoadingSettings } = useSettings(null);\n const { hasPermissions, isLoaded: hasLoadedPermissions } = usePermissions();\n const hasStudentExperience = hasPermissions(PermissionName.StudentExperience);\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const yearGroups = Flight.useBasicFetch<YearGroup[]>(\n currentUser.data?.isAuthenticated && CustomerRequests.yearGroups(currentUser.data.customerId)\n );\n\n function getSubTextAppLink(video: VideoTypes): Core.AppLink {\n if (!('series' in video))\n return null;\n\n /**\n * We do not allow navigating to series on shared playlists when the user is not signed in\n * because most series are customer created and will be empty for public users\n * \n * We do not have to do this for shared series, because all the series links are self referencing\n * - Sha\n */\n if (sharedPlaylist && !currentUser.data?.isAuthenticated)\n return null;\n \n return SeriesAppLinkHelper.getSeriesAppLink(video.series, { mtv });\n }\n\n const hasCommonVideoPropsCompleted = (\n !isLoadingSettings &&\n hasLoadedPermissions &&\n config.hasCompleted &&\n currentUser.hasCompleted &&\n (!currentUser.data?.isAuthenticated || yearGroups.hasCompleted)\n );\n\n return {\n hasCommonVideoPropsCompleted,\n commonVideoProps: {\n subTextType: 'series',\n getSubTextAppLink,\n isPlugin,\n isPluginPopup: !!params?.popup,\n canFavourite,\n setFavourite,\n imageCdnUrl: config.data?.imageCdnUrl,\n yearGroups: yearGroups.data,\n getClassroomGuideAppLink: VideoAppLinkHelper.getClassroomGuideAppLink,\n getInteractiveGuidanceAppLink: VideoAppLinkHelper.getInteractiveGuidanceAppLink,\n getResourceGuidanceAppLink: VideoAppLinkHelper.getResourceGuidanceAppLink,\n showNewVideoIndicator: hasTopicDirectories,\n companyLogoFallbackUrl: null,\n hasStudentExperience\n }\n };\n}","import { Flight } from 'libs/common/react/index';\n\nimport { AudienceRequests } from 'libs/shared/flight-requests/AudienceRequests';\nimport { PresentationAudience } from 'libs/shared/interfaces';\n\nimport { usePresentation } from 'shared/hooks/usePresentation';\n\nexport const usePresentationAudiences = () => {\n const { activePresentation, getFallbackPresentation } = usePresentation({ redirectOnError: true });\n\n const presentation = activePresentation || getFallbackPresentation();\n\n const audiences = Flight.useBasicFetch<PresentationAudience[]>(\n !!presentation &&\n AudienceRequests.presentationAudiences(presentation.id)\n );\n\n return audiences;\n};","import { Flight } from 'libs/common/react/index';\n\nimport { HardCoded } from 'libs/shared/constants/HardCoded';\nimport { LocalPermissionName, PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ProductId } from 'libs/shared/enums/ProductId';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useProducts } from 'libs/shared/hooks/UseProducts';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { CurrentUser } from 'libs/shared/interfaces';\n\nimport { LiteRouteHelper } from 'shared/utils/LiteRouteHelper';\n\nexport interface VideoFeaturesHash {\n canViewGlance: boolean;\n canViewResources: boolean;\n canViewInteractives: boolean;\n canViewClips: boolean;\n canUseActions: boolean;\n canViewPublicLayout: boolean;\n canNavigate: boolean;\n canViewCurriculumLinks: boolean;\n canViewResourceItems: boolean;\n canViewTranscript: boolean;\n}\n\nexport function useVideoFeatureAccess(videoId?: string) {\n const { hasPermissions, hasLocalPermissions } = usePermissions();\n const { hasProduct } = useProducts();\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const { hasPlayPageTranscript } = useSettings(null);\n\n const hasNP = hasProduct(ProductId.Primary);\n\n function showPublicLayout(): boolean {\n /**\n * Authenticated users should never see the placeholder\n */\n if (hasLocalPermissions(LocalPermissionName.WatchVideos))\n return false;\n\n /**\n * Accessing a play page unathenticated will have different contextual behabviours:\n * - For a share page, the user should see the video and never the placeholder\n * - For a public browsing page (ie. using a route-prefix) they should see the placeholder\n */\n return LiteRouteHelper.hasRegionPrefix();\n }\n\n function shouldShowTranscript(videoId: string): boolean {\n if (currentUser.data?.isAuthenticated)\n return hasPlayPageTranscript;\n\n if (!videoId)\n return false;\n\n return HardCoded.PublicTranscriptVideoIds.includes(videoId);\n }\n\n return {\n canViewGlance: hasPermissions(PermissionName.ViewVideoGlance),\n canViewResources: true,\n canViewInteractives: hasNP && hasPermissions(PermissionName.ViewVideoInteractives),\n canViewClips: hasNP && hasPermissions(PermissionName.ViewVideoClips),\n canViewCurriculumLinks: hasPermissions(PermissionName.ViewCurriculums),\n canUseActions: hasLocalPermissions(LocalPermissionName.UseVideoActions),\n canViewPublicLayout: showPublicLayout(),\n canViewResourceItems: hasLocalPermissions(LocalPermissionName.ViewVideoResourceItems),\n canNavigate: hasNP,\n canViewTranscript: shouldShowTranscript(videoId)\n };\n}","import React from 'react';\n\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { Breadcrumb, Breadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { InfiniteScrollFooter } from 'libs/shared/components/infinite-scroll-footer/InfiniteScrollFooter';\nimport { VideoList } from 'libs/shared/components/video-list/VideoList';\nimport { VideoActionsContext } from 'libs/shared/context/VideoActionsContext';\nimport { RelatedVideosContext } from 'libs/shared/enums/RelatedVideosContext';\nimport { handleHttpError } from 'libs/shared/errors/handlers/HttpErrorHandlers';\nimport { ClipRequests } from 'libs/shared/flight-requests/ClipRequests';\nimport { InteractiveRequests } from 'libs/shared/flight-requests/InteractiveRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { useInfiniteList } from 'libs/shared/hooks/UseInfiniteList';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { Clip, CurrentUser, InteractiveMetadata } from 'libs/shared/interfaces';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { useVideoActions, VideoActionsLocation } from 'shared/hooks/use-video-actions/useVideoActions';\nimport { useCommonVideoProps } from 'shared/hooks/useCommonVideoProps';\nimport { usePresentationAudiences } from 'shared/hooks/usePresentationAudiences';\nimport { useVideoFeatureAccess } from 'shared/hooks/useVideoFeatureAccess';\nimport { InteractiveHelpers } from 'shared/utils/InteractiveHelper';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\nimport { VideoMediaAppLinks } from 'shared/views/video-media/VideoMediaAppLinks';\n\nimport { PartialVideoMediaView } from './partial-loading/PartialVideoMediaView';\n\nconst namespace = 'shared.videoMedia';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface ClipInteractivesViewProps {\n clipId: string;\n}\n\nexport function ClipInteractivesView(props: ClipInteractivesViewProps): JSX.Element {\n const { clipId } = props;\n const fetch = Flight.useGetFetch();\n const alerts = useAlerts();\n\n const {\n commonVideoProps,\n hasCommonVideoPropsCompleted\n } = useCommonVideoProps({ locationContext: LocationContext.VideoThumbnail });\n \n const videoActions = useVideoActions({ location: VideoActionsLocation.VideoItem });\n const featureAccess = useVideoFeatureAccess();\n const audiences = usePresentationAudiences();\n const { hasPermissions } = usePermissions();\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n\n const clip = Flight.useBasicFetch<Clip>(featureAccess.canViewClips && ClipRequests.clip(clipId));\n\n useSetPageMetadata({\n title: clip.data ? getPhrase('clipInteractiveViewPageTitle', { video: clip.data?.name }) : ''\n });\n \n function getInteractivesRequest(cursor?: string) {\n return InteractiveRequests.videoInteractives(clipId, null, cursor);\n }\n\n function fetchNext(cursor?: string) {\n return fetch(getInteractivesRequest(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, 'errorInteractives'));\n }\n\n const { items: interactives, hasMore, isFetching } = useInfiniteList<InteractiveMetadata>(\n featureAccess.canViewInteractives ? getInteractivesRequest : false,\n fetchNext,\n onError\n );\n\n const title = getPhrase('interactivesHeading');\n\n const breadcrumbs: Breadcrumb[] = [{\n name: clip.data?.name,\n appLink: {\n ...VideoMediaAppLinks.playClip,\n args: [ clipId, TextHelper.slugify(clip.data?.name) ]\n }\n }, {\n name: title,\n appLink: {\n application: AppChannels.CLIPS,\n action: Actions.Clips.CLIP_INTERACTIVES,\n args: [ clipId, TextHelper.slugify(clip.data?.name) ]\n },\n active: true\n }];\n\n function redirectToPlaypage(): void {\n Core.AppLinkHelper.trigger({\n ...VideoMediaAppLinks.playClip,\n args: [ clipId, TextHelper.slugify(clip.data?.name) ]\n }, { replace: true });\n }\n\n React.useEffect(() => {\n if (!featureAccess.canViewInteractives) {\n redirectToPlaypage();\n }\n }, [featureAccess.canViewInteractives]);\n\n if (!clip.data || !interactives?.length || !hasCommonVideoPropsCompleted)\n return <PartialVideoMediaView />;\n\n return (\n <VideoActionsContext.Provider value={videoActions}>\n <div className='px-3'>\n <h1 className='h2 mb-2'>{title}</h1>\n \n <div className='mb-2'>\n <Breadcrumbs breadcrumbs={breadcrumbs}/>\n </div>\n\n <VideoList\n videos={interactives}\n getVideoAppLink={(video, opts) => VideoAppLinkHelper.getAppLink(video, {\n ...opts,\n context: RelatedVideosContext.Widget,\n contextId: props.clipId,\n includeContext: currentUser.data?.isAuthenticated\n })}\n hasPermissions={hasPermissions}\n presentationAudiences={audiences.data}\n getPreviewQuestionsAppLink={interactive => InteractiveHelpers.getPreviewQuestionsAppLink(interactive)}\n showOwner\n commonVideoProps={commonVideoProps}\n />\n {(hasMore || isFetching) && (\n <InfiniteScrollFooter isFetching={isFetching} fetchNext={fetchNext} />\n )}\n </div>\n </VideoActionsContext.Provider>\n );\n}","\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nexport const VideoMediaAppLinks = {\n playVideo: {\n application: AppChannels.VIDEOS,\n action: Actions.Videos.PLAY_VIDEO\n },\n playClip: {\n application: AppChannels.CLIPS,\n action: Actions.Clips.PLAY_CLIP\n }\n};","// extracted by mini-css-extract-plugin\nexport default {\"partialHeading\":\"okxfx\"};","import React from 'react';\n\nimport { PartialBreadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { PartialVideoList } from 'libs/shared/components/video-list/partial-loading/PartialVideoList';\n\nimport styles from './partial-video-media-view.scss';\n\n// eslint-disable-next-line rulesdir/require-view-title\nexport function PartialVideoMediaView(): JSX.Element {\n return (\n <div className='px-3'>\n <div className={`partial-loading-background mb-2 ${styles.partialHeading}`} />\n <div className='mb-2'>\n <PartialBreadcrumbs/>\n </div>\n <PartialVideoList />\n </div>\n );\n}"],"names":["defaultErrors","notFound","forbidden","rating","yearLevel","region","privacy","badRequest","internalServerError","handleHttpError","info","customErrorMap","ignoreMap","statusCode","status","errorMap","SCROLL_TOLERANCE","useInfiniteList","getRequest","fetchNext","onError","getItems","getCursor","scrollContainer","options","handleScroll","useState","pagesFetched","setPagesFetched","fetchNextFn","response","cursor","request","key","fetchNextPage","currentVal","nextCursor","hasMore","isFetching","getBoundingClientRect","height","scrollTop","scrollHeight","window","innerHeight","document","documentElement","useEffect","onScroll","FunctionHelper","addEventListener","removeEventListener","shouldInitialFetch","httpStatusClass","toString","substr","HttpStatus","items","totalItems","hasFirstPageCompleted","useCommonVideoProps","locationContext","mtv","flightNamespace","sharedPlaylist","isPlugin","params","u","setFavourite","canFavourite","hasTopicDirectories","isLoadingSettings","hasPermissions","hasLoadedPermissions","isLoaded","hasStudentExperience","config","currentUser","yearGroups","data","isAuthenticated","customerId","hasCommonVideoPropsCompleted","hasCompleted","commonVideoProps","subTextType","getSubTextAppLink","video","series","isPluginPopup","popup","imageCdnUrl","getClassroomGuideAppLink","getInteractiveGuidanceAppLink","getResourceGuidanceAppLink","showNewVideoIndicator","companyLogoFallbackUrl","usePresentationAudiences","redirectOnError","activePresentation","getFallbackPresentation","presentation","id","useVideoFeatureAccess","videoId","hasLocalPermissions","hasProduct","hasPlayPageTranscript","hasNP","canViewGlance","canViewResources","canViewInteractives","canViewClips","canViewCurriculumLinks","canUseActions","canViewPublicLayout","canViewResourceItems","canNavigate","canViewTranscript","shouldShowTranscript","namespace","getPhrase","ClipInteractivesView","props","clipId","fetch","alerts","videoActions","location","featureAccess","audiences","clip","getInteractivesRequest","title","name","pageNumber","httpStatus","error","interactives","breadcrumbs","appLink","args","application","action","active","replace","redirectToPlaypage","length","value","className","videos","getVideoAppLink","opts","context","contextId","includeContext","presentationAudiences","getPreviewQuestionsAppLink","interactive","showOwner","VideoMediaAppLinks","playVideo","playClip","PartialVideoMediaView","PartialVideoList"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[8982],{81803:(e,t,n)=>{n.d(t,{d:()=>g});var a=n(32735),r=n(81886),i=n(23481),c=n(49935),s=n(22902),l=n(14070),o=n(97291),u=n(96368);function m(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var d="settings.settingsLayout",p=function(e){var t=(0,s.T)().hasPermissions,n=(0,u.e)();if(e)return t(e);var a=r.Q.C$.getCurrentAppLink();return a.application!==o.O.SETTINGS||n.some((function(e){return e.modules.some((function(e){return"appLink"in e&&e.appLink.action===a.action}))}))};function g(e){var t,n=p(e.requiredPermissions);if(a.useEffect((function(){n||r.Q.C$.trigger({application:o.O.SETTINGS,action:l.e.Settings.HOME},{replace:!0})}),[n]),!n)return a.createElement(a.Fragment,null);var s,u=e.breadcrumbs.map((function(t,n){return{name:t,appLink:{application:o.O.SETTINGS,action:l.e.Settings.HOME},active:n===e.breadcrumbs.length-1}}));return a.createElement("div",{className:"px-3"},a.createElement("div",{className:"d-flex align-items-center justify-content-between"},a.createElement("h1",{className:"h2"},e.heading),null===(t=e.headingButton)||void 0===t?void 0:t.call(e)),a.createElement("div",{className:"pb-3"},a.createElement(c.Oo,{breadcrumbs:[{name:i.T.getPhrase(d,"settingsBreadcrumb"),appLink:{application:o.O.SETTINGS,action:l.e.Settings.HOME}}].concat((s=u,function(e){if(Array.isArray(e))return m(e)}(s)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(s)||function(e,t){if(e){if("string"==typeof e)return m(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?m(e,t):void 0}}(s)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()))})),e.description&&a.createElement(a.Fragment,null,a.createElement("p",null,e.description),a.createElement("hr",null)),e.children)}},58982:(e,t,n)=>{n.r(t),n.d(t,{SearchSettingsView:()=>v});var a=n(32735),r=n(23481),i=n(20354),c=n(65858),s=n(83345),l=n(83523),o=n(77963),u=n(65728),m=n(39151),d=n(31949),p=n(69883),g=n(79612),f=n(37802),h=n(81803),E="settings.searchSettings",b=r.T.encloseNamespace(E);function v(){(0,g.M)({title:b("pageTitle")});var e=i.a.useBasicFetch(m.L.config()),t=i.a.useBasicFetch(d.N.currentUser()),n=(0,f.r)(c.LZ.Settings),r=n.showExchangeSearchResults,v=n.isLoadingSettings,S=n.updateSetting,y=(0,p.Z)();return t.data&&e.data&&!v?a.createElement(h.d,{heading:b("heading"),breadcrumbs:[b("heading")]},a.createElement("div",{className:"w-50"},a.createElement("div",{className:"d-flex justify-content-between"},a.createElement("p",{className:"fw-semibold mb-1"},a.createElement(s.x,{namespace:E,phrase:"label"})),a.createElement(l.Z,{onClick:function(){var e={name:u.E.ShowExchangeSearchResultsUser,value:!r,kind:o.g.FeatureFlag};S(t.data.id,e,(function(){y.success(b("success"))}),(function(){y.error(b("error"))}))},on:r})),a.createElement("p",{className:"mb-2"},a.createElement(s.x,{namespace:E,phrase:"description"})))):a.createElement(a.Fragment,null)}}}]);
2
+ //# sourceMappingURL=8982-b9e53e43ec-lite.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scripts/8982-b9e53e43ec-lite.chunk.js","mappings":"sUAcA,IAAMA,EAAY,0BAKLC,EAAuB,SAACC,GACnC,IAAQC,GAAmB,SAAnBA,eACFC,GAAiB,SAOvB,GAAIF,EACF,OAAOC,EAAeD,GAExB,IAAMG,EAAe,2BAOrB,OAAIA,EAAaC,cAAgB,cAG1BF,EAAeG,MAAK,SAAAC,GACzB,OAAOA,EAAMC,QAAQF,MAAK,SAAAG,GACxB,MAAI,YAAaA,GACRA,EAAeC,QAAQC,SAAWP,EAAaO,MAI1D,GACF,GACF,EAUM,SAAUC,EAAeC,G,MACvBC,EAAYd,EAAqBa,EAAMZ,qBAW7C,GATA,aAAgB,WACTa,GACH,eAA2B,CACzBT,YAAa,aACbM,OAAQ,mBACP,CAAEI,SAAS,GAElB,GAAG,CAACD,KAECA,EACH,OAAO,iCAET,I,EAAME,EAAcH,EAAMG,YAAYC,KAAI,SAACC,EAAMC,GAAC,MAAM,CACtDD,KAAAA,EACAR,QAAS,CACPL,YAAa,aACbM,OAAQ,mBAEVS,OAAQD,IAAMN,EAAMG,YAAYK,OAAS,EAC1C,IAED,OACE,uBAAKC,UAAU,QACb,uBAAKA,UAAU,qDACb,sBAAIA,UAAU,MAAMT,EAAMU,SACN,QAAnB,EAAAV,EAAMW,qBAAa,wBAEtB,uBAAKF,UAAU,QACb,gBAAC,KAAW,CACVN,YAAW,CACT,CACEE,KAAM,cAA0BnB,EAAW,sBAC3CW,QAAS,CACPL,YAAa,aACbM,OAAQ,qBAEX,Q,EACEK,E,wmBAIRH,EAAMY,aACL,gCACE,yBAAIZ,EAAMY,aACV,4BAIHZ,EAAMa,SAGb,C,yNC9FM3B,EAAY,0BACZ4B,EAAY,qBAAiC5B,GAE7C,SAAU6B,KACd,OAAmB,CAAEC,MAAOF,EAAU,eAEtC,IAAMG,EAAS,kBAA6B,cACtCC,EAAc,kBAAkC,mBACtD,GAAwE,OAAY,eAA5EC,EAAyB,EAAzBA,0BAA2BC,EAAiB,EAAjBA,kBAAmBC,EAAa,EAAbA,cAEhDC,GAAS,SAqBf,OACGJ,EAAYK,MACZN,EAAOM,OACRH,EAKA,gBAAC,IAAc,CACbV,QAASI,EAAU,WACnBX,YAAa,CAACW,EAAU,aAExB,uBAAKL,UAAU,QACb,uBAAKA,UAAU,kCACb,qBAAGA,UAAU,oBAAmB,gBAAC,IAAI,CAACvB,UAAWA,EAAWsC,OAAO,WAEnE,gBAAC,IAAY,CACXC,QApCV,WACE,IAAMC,EAAa,CACjBrB,KAAM,kCACNsB,OAAQR,EACRS,KAAM,iBAGRP,EACEH,EAAYK,KAAKM,GACjBH,GACA,WACEJ,EAAOQ,QAAQhB,EAAU,WAC3B,IACA,WACEQ,EAAOS,MAAMjB,EAAU,SACzB,GAEJ,EAoBUkB,GAAIb,KAIR,qBAAGV,UAAU,QAAO,gBAAC,IAAI,CAACvB,UAAWA,EAAWsC,OAAO,mBAjBpD,gCAsBX,C","sources":["file:///app/packages/projects/lite/src/apps/settings/components/settings-layout/SettingsLayout.tsx","file:///app/packages/projects/lite/src/apps/settings/views/search-settings/SearchSettingsView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { Breadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { useGetSettingsGroups } from 'apps/settings/hooks/useGetSettingsGroups';\n\nconst namespace = 'settings.settingsLayout';\n\n/**\n * Checks if the current user has permission to access the settings module\n */\nexport const useCanAccessSettings = (requiredPermissions: PermissionName | PermissionName[]): boolean => {\n const { hasPermissions } = usePermissions();\n const settingsGroups = useGetSettingsGroups();\n\n /**\n * TODO: Update all settings pages to pasas required permissions, because checking the \n * `useGetSettingsGroups()` values clearly doesnt work for settings pages with multiple\n * applinks inside of them. - Sha\n */\n if (requiredPermissions)\n return hasPermissions(requiredPermissions);\n\n const currentRoute = Core.AppLinkHelper.getCurrentAppLink();\n\n /**\n * Allows us to have popups sitting in other locations be used\n * by our settings pages. For example the manage video access popup\n * in the \"videos with restricted access\" page - Sha\n */\n if (currentRoute.application !== AppChannels.SETTINGS)\n return true;\n\n return settingsGroups.some(group => {\n return group.modules.some(settingsModule => {\n if ('appLink' in settingsModule) {\n return settingsModule.appLink.action === currentRoute.action;\n }\n\n return false;\n });\n });\n};\n\ninterface SettingsLayoutProps {\n heading: string;\n breadcrumbs: string[];\n description?: string;\n requiredPermissions?: PermissionName | PermissionName[];\n headingButton?: () => JSX.Element;\n}\n\nexport function SettingsLayout(props: React.PropsWithChildren<SettingsLayoutProps>): JSX.Element {\n const canAccess = useCanAccessSettings(props.requiredPermissions);\n\n React.useEffect(() => {\n if (!canAccess) {\n Core.AppLinkHelper.trigger({\n application: AppChannels.SETTINGS,\n action: Actions.Settings.HOME\n }, { replace: true });\n }\n }, [canAccess]);\n\n if (!canAccess)\n return <></>;\n\n const breadcrumbs = props.breadcrumbs.map((name, i) => ({\n name,\n appLink: {\n application: AppChannels.SETTINGS,\n action: Actions.Settings.HOME\n },\n active: i === props.breadcrumbs.length - 1\n }));\n\n return (\n <div className='px-3'>\n <div className='d-flex align-items-center justify-content-between'>\n <h1 className='h2'>{props.heading}</h1>\n {props.headingButton?.()}\n </div>\n <div className='pb-3'>\n <Breadcrumbs\n breadcrumbs={[\n {\n name: LanguageService.getPhrase(namespace, 'settingsBreadcrumb'),\n appLink: {\n application: AppChannels.SETTINGS,\n action: Actions.Settings.HOME\n }\n },\n ...breadcrumbs\n ]}\n />\n </div>\n {props.description &&\n <>\n <p>{props.description}</p>\n <hr />\n </>\n }\n\n {props.children}\n </div>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { Text } from 'libs/shared/components/text/Text';\nimport { ToggleSwitch } from 'libs/shared/components/toggle-switch/ToggleSwitch';\nimport { SettingKind } from 'libs/shared/enums/SettingKind';\nimport { SettingName } from 'libs/shared/enums/SettingName';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { Config, CurrentUser } from 'libs/shared/interfaces';\n\nimport { SettingsLayout } from 'apps/settings/components/settings-layout/SettingsLayout';\n\nconst namespace = 'settings.searchSettings';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function SearchSettingsView(): React.ReactElement {\n useSetPageMetadata({ title: getPhrase('pageTitle') });\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const { showExchangeSearchResults, isLoadingSettings, updateSetting } = useSettings(LocationContext.Settings);\n\n const alerts = useAlerts();\n\n function onToggle() {\n const newSetting = {\n name: SettingName.ShowExchangeSearchResultsUser,\n value: !showExchangeSearchResults,\n kind: SettingKind.FeatureFlag\n };\n\n updateSetting(\n currentUser.data.id,\n newSetting,\n () => {\n alerts.success(getPhrase('success'));\n },\n () => {\n alerts.error(getPhrase('error'));\n }\n );\n }\n\n if (\n !currentUser.data ||\n !config.data ||\n isLoadingSettings\n )\n return <></>;\n\n return (\n <SettingsLayout\n heading={getPhrase('heading')}\n breadcrumbs={[getPhrase('heading')]}\n >\n <div className='w-50'>\n <div className='d-flex justify-content-between'>\n <p className='fw-semibold mb-1'><Text namespace={namespace} phrase='label' /></p>\n \n <ToggleSwitch\n onClick={onToggle}\n on={showExchangeSearchResults}\n />\n </div>\n\n <p className='mb-2'><Text namespace={namespace} phrase='description' /></p>\n </div>\n \n </SettingsLayout>\n );\n}"],"names":["namespace","useCanAccessSettings","requiredPermissions","hasPermissions","settingsGroups","currentRoute","application","some","group","modules","settingsModule","appLink","action","SettingsLayout","props","canAccess","replace","breadcrumbs","map","name","i","active","length","className","heading","headingButton","description","children","getPhrase","SearchSettingsView","title","config","currentUser","showExchangeSearchResults","isLoadingSettings","updateSetting","alerts","data","phrase","onClick","newSetting","value","kind","id","success","error","on"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
- "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[9186],{7730:(e,t,n)=>{n.d(t,{n:()=>v});var r=n(32735),a=n(38750),i=n(4234),c=n(97408),o=n(11607),l=n(83914),s=n(35223);const u={incorrect:"yodaE",answer:"KpbWq",avatarContainer:"uKRg2",avatarContainerImage:"_LpCq",image:"zWcu2",previewContainer:"CSRwX",imageContainer:"TeByp",svgFill:"xnG9h"};function m(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var d=["A","B","C","D"];function v(e){var t,n,v=(t=r.useState(null),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,c,o=[],l=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=i.call(n)).done)&&(o.push(r.value),o.length!==t);l=!0);}catch(e){s=!0,a=e}finally{try{if(!l&&null!=n.return&&(c=n.return(),Object(c)!==c))return}finally{if(s)throw a}}return o}}(t,n)||function(e,t){if(e){if("string"==typeof e)return m(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?m(e,t):void 0}}(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),f=v[0],g=v[1],w=!!e.interaction.actionableItems.find((function(e){var t;return!!(null===(t=e.data)||void 0===t?void 0:t.imageUrl)})),p=r.useRef(null),b="sm"===e.size||w&&e.interaction.actionableItems.length>2;return r.createElement("ul",{className:"".concat(w?"row ".concat(b&&!e.isDisplayOnly?"px-lg-5 p-0":""):""," list-unstyled")},e.interaction.actionableItems.map((function(t,n){var m,v,y=null===(m=e.getSelectedAnswer)||void 0===m?void 0:m.call(e,t.id),E=null===(v=t.data)||void 0===v?void 0:v.imageUrl,C=!!t.name;function N(){e.submitted||(e.onSelectAnswer&&e.onSelectAnswer(t,!y),g(y?null:t.id))}if(e.onlyShowSelectedAnswer&&!y)return r.createElement(r.Fragment,{key:n});var h=y?"bg-blue text-white":e.unCheckedBackground,k=function(){return r.createElement(r.Fragment,null,d[n])};e.showFeedback&&(e.showCorrectnessIcons||(h=t.isCorrect?"bg-success text-white":"bg-danger text-white ".concat(u.incorrect)),e.hideFeedbackIcons||(k=function(){return r.createElement(r.Fragment,null,t.isCorrect?r.createElement(l.x,{size:l.S.Small,svgName:s.vn.Check}):r.createElement(l.x,{size:l.S.Small,svgName:s.vn.Close}))}));var S=e.showFeedback?{}:{role:"button",tabIndex:0,onKeyDown:function(e){return"Enter"===e.key&&N()}},x="";w&&(x="col-6");var I=t.id.toString()===(null==f?void 0:f.toString())&&e.leftHandSidePortalNode&&E&&!e.submitted;return r.createElement(r.Fragment,{key:n},I&&r.createElement(a.Nq,{node:e.leftHandSidePortalNode},r.createElement(i.Z,{className:"h-100",ref:p},r.createElement("div",{className:"p-3 d-flex flex-column h-100"},r.createElement("div",{className:"flex-grow-1"},r.createElement("div",{className:"cv-image-container text-center"},r.createElement("img",{className:"img-fluid rounded",src:E,alt:t.name||d[n]})),r.createElement("div",{className:"".concat(u.answer," h6 text-center text-dark p-3")},r.createElement("span",{className:"d-inline-block ".concat(C?"me-3":""," cv-multiple-choice-bullet")},r.createElement(k,null)),C&&r.createElement("span",{className:"flex-grow-1 pe-4"},t.name))),r.createElement("div",{className:"text-end"},r.createElement(o.L,{className:"btn btn-link",onClick:function(){return g(null)}},"Close"))))),r.createElement("li",{className:"".concat(x," mb-3")},r.createElement("label",Object.assign({className:"\n d-block\n rounded-3\n shadow-sm\n position-relative\n ".concat(e.showFeedback?"":"cursor-pointer","\n ").concat(u.answer,"\n ").concat(h,"\n ").concat(w?"mb-0 h-100":"","\n "),key:n,onClick:N},S),w&&r.createElement("div",null,e.showCorrectnessIcons&&r.createElement("div",{className:"".concat(u.svgFill," position-absolute top-0 start-0 p-2 z-1")},t.isCorrect?r.createElement(l.x,{svgName:s.vn.CheckCircle,size:l.S.ExtraLarge,className:"svg-container text-success"}):r.createElement(l.x,{svgName:s.vn.CrossCircleFilled,size:l.S.Large,className:"svg-container text-red"})),r.createElement("span",{className:"d-block position-relative ".concat(u.imageContainer)},r.createElement("span",{className:"\n ".concat(u.image,"\n position-absolute\n start-0\n end-0\n top-0\n bottom-0\n rounded-top\n "),style:{backgroundImage:E?"url(".concat(E,")"):void 0},title:t.name||d[n]}))),r.createElement("span",{className:"d-flex ".concat(C||e.isDisplayOnly?"justify-content-between":"justify-content-center"," ").concat(b?"p-2":"p-3")},r.createElement("span",{className:"d-inline-block ".concat(C?"me-3":""," cv-multiple-choice-bullet")},r.createElement(k,null)),C&&r.createElement("span",{className:"flex-grow-1 pe-4"},t.name),e.userAvatar&&!e.onlyShowSelectedAnswer&&r.createElement("span",{className:"".concat(u.avatarContainer," ").concat(w?u.avatarContainerImage:"")},y&&r.createElement(c.q,{imageCdnUrl:e.imageApi,initials:e.userInitials,imageUrl:e.userAvatar,extraClasses:"border border-white"}))))))})))}v.defaultProps={size:"lg",unCheckedBackground:"bg-white"}},28097:(e,t,n)=>{n.d(t,{x:()=>l});var r=n(32735),a=n(97408),i=n(83914),c=n(35223);const o={feedback:"CBgCv",avatarContainer:"CVTEm",avatarContainerSmall:"tbPTs",avatarSmall:"GUAUz",incorrect:"ZCkyL",large:"TKjXy",small:"_2qC40"};function l(e){function t(t){e.onSelectAnswer&&e.onSelectAnswer(t)}return r.createElement("div",{className:"d-flex ".concat(e.className?e.className:""," ").concat("sm"===e.size?"mx-n1":"mx-n2")},e.interaction.actionableItems.map((function(n,l){var s=e.getSelectedAnswer(n.id),u=s?"bg-blue text-white":e.unCheckedBackground,m=function(){return r.createElement(r.Fragment,null)};e.showFeedback&&(u=n.isCorrect?"bg-success text-white":"bg-danger text-white ".concat(o.incorrect),e.hideFeedbackIcons||(m=function(){return r.createElement(r.Fragment,null,n.isCorrect?r.createElement(i.x,{size:i.S.Small,svgName:c.vn.Check}):r.createElement(i.x,{size:i.S.Small,svgName:c.vn.Close}))}));var d=e.showFeedback?{}:{role:"button",tabIndex:0,onKeyDown:function(e){return"Enter"===e.key&&t(n)}};return r.createElement("label",Object.assign({key:l,htmlFor:n.id,className:"\n rounded-3\n shadow-sm\n my-0\n position-relative\n overflow-hidden\n d-flex\n align-items-center\n justify-content-center\n ".concat("sm"===e.size?"".concat(o.small," mx-1 h5"):"".concat(o.large," mx-2 h4"),"\n ").concat(e.showFeedback?"":"cursor-pointer","\n ").concat(u)},d),r.createElement("input",{id:n.id,type:"radio",name:"multiple-choice",checked:!!s,onChange:function(){return t(n)},disabled:e.showFeedback,hidden:!0}),n.name,r.createElement("span",{className:"position-absolute p-2 ".concat(o.feedback)},r.createElement(m,null)),r.createElement("span",{className:"".concat(o.avatarContainer).concat("sm"===e.size?" ".concat(o.avatarContainerSmall):"")},s&&r.createElement(a.q,{imageCdnUrl:e.imageApi,initials:e.userInitials,imageUrl:e.userAvatar,extraClasses:"border border-white ".concat("sm"===e.size?o.avatarSmall:"")})))})))}l.defaultProps={size:"lg",unCheckedBackground:"bg-white"}},69186:(e,t,n)=>{n.d(t,{O:()=>k});var r=n(32735),a=n(97408),i=n(83140),c=n(80845),o=n(64818),l=n(69737),s=n(75896),u=n(38129),m=n(8246),d="cv-missing-word-",v=n(7730);const f="Y7ls8";var g=n(28097);function w(e){return w="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},w(e)}function p(e,t,n){return(t=function(e){var t=function(e){if("object"!=w(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=w(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==w(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var b=function(){return r.createElement(r.Fragment,null)},y=p(p(p(p(p(p(p({},u.Z9.Annotation,b),u.Z9.Image,b),u.Z9.MissingWord,(function(e){var t=e.interaction.data.sentence.replace(/{([^{}]*)}/g,(function(e,t){return"{".concat(d).concat(t,"}")})).split(/{([^{}]*)}/g),n="p-2";return e.reportsStyling||(n+=" border rounded"),r.createElement("div",{className:n},t.map((function(t,n){if(!t.startsWith(d))return t;var a=t.replace(d,""),i=e.interaction.actionableItems.find((function(e){return e.order.toString()===a}));if(i){var c=e.answers.find((function(e){return e.id==i.id}));if(c){if(!e.showFeedback)return r.createElement("strong",{key:n,className:"text-info"},c.text);var o=c.status===m.N.Correct;return r.createElement(r.Fragment,{key:n},!o&&r.createElement(r.Fragment,null,r.createElement("del",{className:"text-danger"},r.createElement("strong",null,c.text))," "),r.createElement("strong",{className:"text-success"},i.name))}}})))})),u.Z9.MultipleChoice,(function(e){var t,n,a,i,c="my-2";return e.reportsStyling&&(c+=" mx-2"),r.createElement("div",{className:c},r.createElement(v.n,{interaction:e.interaction,showFeedback:e.showFeedback,getSelectedAnswer:function(t){var n=e.answers.find((function(e){return e.id==t}));return null==n?void 0:n.id},imageApi:e.imageCdnUrl,userInitials:e.anonymisedUserName?o.l.getInitialsFromFullName(e.anonymisedUserName):o.l.getInitials(null===(t=e.user)||void 0===t?void 0:t.name,null===(n=e.user)||void 0===n?void 0:n.surname),userAvatar:e.anonymisedUserName?null:null===(i=null===(a=e.user)||void 0===a?void 0:a.avatar)||void 0===i?void 0:i.url,onlyShowSelectedAnswer:!e.showAvatar,size:"sm",unCheckedBackground:e.showFeedback?"":"".concat(f," text-white"),isDisplayOnly:!0}))})),u.Z9.TrueOrFalse,(function(e){var t,n,a,i,c="justify-content-start";return e.reportsStyling&&(c="justify-content-center"),r.createElement("div",{className:"my-2"},r.createElement(g.x,{className:c,interaction:e.interaction,showFeedback:e.showFeedback,hideFeedbackIcons:!e.showAvatar,getSelectedAnswer:function(t){var n=e.answers.find((function(e){return e.id==t}));return null==n?void 0:n.text},imageApi:e.imageCdnUrl,userInitials:e.anonymisedUserName?o.l.getInitialsFromFullName(e.anonymisedUserName):o.l.getInitials(null===(t=e.user)||void 0===t?void 0:t.name,null===(n=e.user)||void 0===n?void 0:n.surname),userAvatar:e.anonymisedUserName?null:null===(i=null===(a=e.user)||void 0===a?void 0:a.avatar)||void 0===i?void 0:i.url,size:"sm",unCheckedBackground:e.showFeedback?"":"".concat(f," text-white")}))})),u.Z9.ShortAnswer,(function(e){var t=s.m.first(e.answers);if(!t)return r.createElement(r.Fragment,null);var n="rounded p-2 mb-2";return e.reportsStyling||(n+=" bg-blue text-white"),r.createElement("div",{className:n},t.text)})),u.Z9.Illustration,(function(e){var t=s.m.first(e.answers);if(!t)return r.createElement(r.Fragment,null);var n="rounded p-2 mb-2 w-50";return e.reportsStyling||(n+=" text-white"),r.createElement("div",{className:n},r.createElement("img",{className:"img-fluid border rounded",src:t.text,alt:"Illustrated answer to the question: ".concat(e.interaction.name)}))})),E=n(44526),C=n(56151),N=n(3894);const h={avatarContainer:"FEdgT"};function k(e){var t,n,s,u,m,d=y[e.interaction.typeId];if(!d)return r.createElement(r.Fragment,null);var v=(0,c.j_)(e.studentResults),f=(0,c.f6)(e.interaction.id,v),g=i.A.isInteractionCorrect(e.interaction,v);return r.createElement("div",{className:"position-relative mt-2"},r.createElement("div",{className:"rounded ".concat(null!==(t=e.className)&&void 0!==t?t:"")},r.createElement("div",{className:"d-flex"},!!e.showStudentDetails&&r.createElement("div",{className:"me-2"},r.createElement("div",{className:h.avatarContainer},r.createElement(a.q,{imageCdnUrl:e.imageCdnUrl,initials:e.anonymisedUserName?o.l.getInitialsFromFullName(e.anonymisedUserName):o.l.getInitials(null===(n=e.studentResults.user)||void 0===n?void 0:n.name,null===(s=e.studentResults.user)||void 0===s?void 0:s.surname),imageUrl:e.anonymisedUserName?null:null===(m=null===(u=e.studentResults.user)||void 0===u?void 0:u.avatar)||void 0===m?void 0:m.url}))),r.createElement("div",{className:"flex-grow-1"},!!e.showStudentDetails&&r.createElement(C.U,{studentResults:e.studentResults,correctness:g,anonymisedUserName:e.anonymisedUserName}),r.createElement("div",{className:"d-flex justify-content-between"},r.createElement("div",{className:"flex-grow-1 ".concat(e.responseComponentClass?e.responseComponentClass:"")},f?r.createElement(d,{interaction:e.interaction,answers:f.answers,imageCdnUrl:e.imageCdnUrl,user:e.studentResults.user,showFeedback:e.showFeedback,showAvatar:e.showAvatar,reportsStyling:e.reportsStyling}):r.createElement(l.R,null)),!e.showStudentDetails&&r.createElement(E.Y,{correctness:g})))),r.createElement(N.Z,{studentAttempt:f,correctness:g,markInteraction:e.markInteraction,markedStatus:e.markedStatus})))}},44526:(e,t,n)=>{n.d(t,{Y:()=>o});var r=n(32735),a=n(83914),i=n(28972),c=n(35223);function o(e){return r.createElement(r.Fragment,null,e.correctness===i.w.Correct&&r.createElement("div",{className:"ms-2 text-success"},r.createElement(a.x,{svgName:c.vn.Tick})),e.correctness===i.w.Incorrect&&r.createElement("div",{className:"ms-2 text-danger"},r.createElement(a.x,{svgName:c.vn.Close})))}},56151:(e,t,n)=>{n.d(t,{U:()=>c});var r=n(32735),a=n(64818),i=n(44526);function c(e){return r.createElement("div",{className:"d-flex align-items-center justify-content-between mb-2"},r.createElement("p",{className:"fw-semibold mb-0"},e.anonymisedUserName||a.l.getFullName(e.studentResults.user)),r.createElement(i.Y,{correctness:e.correctness}))}},3894:(e,t,n)=>{n.d(t,{Z:()=>l});var r=n(32735),a=n(83914),i=n(28972),c=n(8246),o=n(35223);function l(e){return e.correctness!==i.w.AwaitingMarking?r.createElement(r.Fragment,null):r.createElement("div",{className:"d-flex justify-content-end gap-2 mt-2"},r.createElement("div",{className:"d-flex flex-column justify-content-end cursor-pointer\n ".concat(e.markedStatus===c.N.Correct?"text-success":"")},r.createElement(a.x,{svgName:e.markedStatus===c.N.Correct?o.vn.CheckCircle:o.vn.CheckCircleOutline,onClick:function(){return e.markInteraction(e.studentAttempt.answers,c.N.Correct)}})),r.createElement("div",{className:"d-flex flex-column justify-content-end cursor-pointer\n ".concat(e.markedStatus===c.N.Incorrect?" text-danger":"")},r.createElement(a.x,{svgName:e.markedStatus===c.N.Incorrect?o.vn.CrossCircleFilled:o.vn.CrossCircle,onClick:function(){return e.markInteraction(e.studentAttempt.answers,c.N.Incorrect)}})))}},69737:(e,t,n)=>{n.d(t,{R:()=>i});var r=n(32735),a=n(23481).T.encloseNamespace("interactives.responseTypes");function i(){return r.createElement("p",{className:"p-2"},r.createElement("em",null,a("noResponse")))}},28972:(e,t,n)=>{var r;n.d(t,{w:()=>r}),function(e){e[e.Correct=0]="Correct",e[e.Incorrect=1]="Incorrect",e[e.AwaitingMarking=2]="AwaitingMarking",e[e.Answered=3]="Answered",e[e.UnAnswered=4]="UnAnswered",e[e.NotApplicable=5]="NotApplicable"}(r||(r={}))},8246:(e,t,n)=>{var r;n.d(t,{N:()=>r}),function(e){e[e.Incorrect=0]="Incorrect",e[e.Correct=1]="Correct",e[e.PendingReview=2]="PendingReview"}(r||(r={}))},83140:(e,t,n)=>{n.d(t,{A:()=>g});var r=n(28972),a=n(8246),i=n(38129);function c(e){return c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},c(e)}function o(e,t,n){return(t=function(e){var t=function(e){if("object"!=c(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=c(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==c(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(){return r.w.NotApplicable}function s(e,t){var n=e.actionableItems.filter((function(e){return e.isCorrect}));return n.every((function(e){return!t(e.id)}))?r.w.UnAnswered:n.every((function(e){var n;return e.name.trim().toLowerCase()===(null===(n=t(e.id))||void 0===n?void 0:n.trim().toLowerCase())}))?r.w.Correct:r.w.Incorrect}function u(e,t){return e.actionableItems.every((function(e){return!t(e.id)}))?r.w.UnAnswered:e.actionableItems.filter((function(e){return e.isCorrect})).every((function(e){var n,r=t(e.id);return(null==r?void 0:r.toString())===(null===(n=e.id)||void 0===n?void 0:n.toString())||r===e.name}))?r.w.Correct:r.w.Incorrect}function m(e,t){return function(n){var r=t.attempts.find((function(t){return t.id===e.id}));return null==r?void 0:r.answers.find((function(e){return e.id===n}))}}function d(e,t){var n=m(e,t);return u(e,(function(e){var t=n(e);return null==t?void 0:t.text}))}function v(e,t){return function(e,t){var n;return e.actionableItems.forEach((function(e){var i=t(e.id);n=i?i.status!==a.N.Correct?i.status!==a.N.Incorrect?r.w.AwaitingMarking:r.w.Incorrect:r.w.Correct:r.w.UnAnswered})),n}(e,m(e,t))}var f=o(o(o(o(o(o(o({},i.Z9.Annotation,l),i.Z9.Image,l),i.Z9.MissingWord,(function(e,t){var n=m(e,t);return s(e,(function(e){var t=n(e);return null==t?void 0:t.text}))})),i.Z9.MultipleChoice,d),i.Z9.ShortAnswer,v),i.Z9.TrueOrFalse,d),i.Z9.Illustration,v),g={notApplicable:l,awaitingMarking:function(){return r.w.AwaitingMarking},isMissingWordCorrect:s,isMultipleChoiceCorrect:u,isInteractionCorrect:function(e,t){return(0,f[e.typeId])(e,t)}}},80845:(e,t,n)=>{n.d(t,{Q:()=>s,Wn:()=>c,f6:()=>l,j_:()=>o});var r=n(75896),a=n(38129);function i(e){return e.typeId!==a.Z9.Annotation&&e.typeId!==a.Z9.Image}function c(e){return r.m.flatten(e.timepoints.map((function(e){return e.interactions})))}function o(e){return r.m.last(e.results)}function l(e,t){return r.m.findWhere(null==t?void 0:t.attempts,{id:e})}function s(e){return c(e).filter(i)}}}]);
2
- //# sourceMappingURL=9186-daf77d7174-lite.chunk.js.map
1
+ "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[9186],{7730:(e,t,n)=>{n.d(t,{n:()=>v});var r=n(32735),a=n(38750),c=n(4234),i=n(97408),l=n(11607),o=n(83914),s=n(35223);const u={incorrect:"yodaE",answer:"KpbWq",avatarContainer:"uKRg2",avatarContainerImage:"_LpCq",image:"zWcu2",previewContainer:"CSRwX",imageContainer:"TeByp",svgFill:"xnG9h"};function m(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var d=["A","B","C","D"];function v(e){var t,n,v=(t=r.useState(null),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,c,i,l=[],o=!0,s=!1;try{if(c=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;o=!1}else for(;!(o=(r=c.call(n)).done)&&(l.push(r.value),l.length!==t);o=!0);}catch(e){s=!0,a=e}finally{try{if(!o&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(s)throw a}}return l}}(t,n)||function(e,t){if(e){if("string"==typeof e)return m(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?m(e,t):void 0}}(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),f=v[0],g=v[1],w=!!e.interaction.actionableItems.find((function(e){var t;return!!(null===(t=e.data)||void 0===t?void 0:t.imageUrl)})),b=r.useRef(null),p="sm"===e.size||w&&e.interaction.actionableItems.length>2;return r.createElement("ul",{className:"".concat(w?"row ".concat(p&&!e.isDisplayOnly?"px-lg-5 p-0":""):""," list-unstyled")},e.interaction.actionableItems.map((function(t,n){var m,v,y=null===(m=e.getSelectedAnswer)||void 0===m?void 0:m.call(e,t.id),E=null===(v=t.data)||void 0===v?void 0:v.imageUrl,C=!!t.name;function N(){e.submitted||(e.onSelectAnswer&&e.onSelectAnswer(t,!y),g(y?null:t.id))}if(e.onlyShowSelectedAnswer&&!y)return r.createElement(r.Fragment,{key:n});var h=y?"bg-blue text-white":e.unCheckedBackground,k=function(){return r.createElement(r.Fragment,null,d[n])};e.showFeedback&&(e.showCorrectnessIcons||(h=t.isCorrect?"bg-success text-white":"bg-danger text-white ".concat(u.incorrect)),e.hideFeedbackIcons||(k=function(){return r.createElement(r.Fragment,null,t.isCorrect?r.createElement(o.x,{size:o.S.Small,svgName:s.vn.Check}):r.createElement(o.x,{size:o.S.Small,svgName:s.vn.Close}))}));var S=e.showFeedback?{}:{role:"button",tabIndex:0,onKeyDown:function(e){return"Enter"===e.key&&N()}},x="";w&&(x="col-6");var A=t.id.toString()===(null==f?void 0:f.toString())&&e.leftHandSidePortalNode&&E&&!e.submitted;return r.createElement(r.Fragment,{key:n},A&&r.createElement(a.Nq,{node:e.leftHandSidePortalNode},r.createElement(c.Z,{className:"h-100",ref:b},r.createElement("div",{className:"p-3 d-flex flex-column h-100"},r.createElement("div",{className:"flex-grow-1"},r.createElement("div",{className:"cv-image-container text-center"},r.createElement("img",{className:"img-fluid rounded",src:E,alt:t.name||d[n]})),r.createElement("div",{className:"".concat(u.answer," h6 text-center text-dark p-3")},r.createElement("span",{className:"d-inline-block ".concat(C?"me-3":""," cv-multiple-choice-bullet")},r.createElement(k,null)),C&&r.createElement("span",{className:"flex-grow-1 pe-4"},t.name))),r.createElement("div",{className:"text-end"},r.createElement(l.L,{className:"btn btn-link",onClick:function(){return g(null)}},"Close"))))),r.createElement("li",{className:"".concat(x," mb-3")},r.createElement("label",Object.assign({className:"\n d-block\n rounded-3\n shadow-sm\n position-relative\n ".concat(e.showFeedback?"":"cursor-pointer","\n ").concat(u.answer,"\n ").concat(h,"\n ").concat(w?"mb-0 h-100":"","\n "),key:n,onClick:N},S),w&&r.createElement("div",null,e.showCorrectnessIcons&&r.createElement("div",{className:"".concat(u.svgFill," position-absolute top-0 start-0 p-2 z-1")},t.isCorrect?r.createElement(o.x,{svgName:s.vn.CheckCircle,size:o.S.ExtraLarge,className:"svg-container text-success"}):r.createElement(o.x,{svgName:s.vn.CrossCircleFilled,size:o.S.Large,className:"svg-container text-red"})),r.createElement("span",{className:"d-block position-relative ".concat(u.imageContainer)},r.createElement("span",{className:"\n ".concat(u.image,"\n position-absolute\n start-0\n end-0\n top-0\n bottom-0\n rounded-top\n "),style:{backgroundImage:E?"url(".concat(E,")"):void 0},title:t.name||d[n]}))),r.createElement("span",{className:"d-flex ".concat(C||e.isDisplayOnly?"justify-content-between":"justify-content-center"," ").concat(p?"p-2":"p-3")},r.createElement("span",{className:"d-inline-block ".concat(C?"me-3":""," cv-multiple-choice-bullet")},r.createElement(k,null)),C&&r.createElement("span",{className:"flex-grow-1 pe-4"},t.name),e.userAvatar&&!e.onlyShowSelectedAnswer&&r.createElement("span",{className:"".concat(u.avatarContainer," ").concat(w?u.avatarContainerImage:"")},y&&r.createElement(i.q,{imageCdnUrl:e.imageApi,initials:e.userInitials,imageUrl:e.userAvatar,extraClasses:"border border-white"}))))))})))}v.defaultProps={size:"lg",unCheckedBackground:"bg-white"}},28097:(e,t,n)=>{n.d(t,{x:()=>o});var r=n(32735),a=n(97408),c=n(83914),i=n(35223);const l={feedback:"CBgCv",avatarContainer:"CVTEm",avatarContainerSmall:"tbPTs",avatarSmall:"GUAUz",incorrect:"ZCkyL",large:"TKjXy",small:"_2qC40"};function o(e){function t(t){e.onSelectAnswer&&e.onSelectAnswer(t)}return r.createElement("div",{className:"d-flex ".concat(e.className?e.className:""," ").concat("sm"===e.size?"mx-n1":"mx-n2")},e.interaction.actionableItems.map((function(n,o){var s=e.getSelectedAnswer(n.id),u=s?"bg-blue text-white":e.unCheckedBackground,m=function(){return r.createElement(r.Fragment,null)};e.showFeedback&&(u=n.isCorrect?"bg-success text-white":"bg-danger text-white ".concat(l.incorrect),e.hideFeedbackIcons||(m=function(){return r.createElement(r.Fragment,null,n.isCorrect?r.createElement(c.x,{size:c.S.Small,svgName:i.vn.Check}):r.createElement(c.x,{size:c.S.Small,svgName:i.vn.Close}))}));var d=e.showFeedback?{}:{role:"button",tabIndex:0,onKeyDown:function(e){return"Enter"===e.key&&t(n)}};return r.createElement("label",Object.assign({key:o,htmlFor:n.id,className:"\n rounded-3\n shadow-sm\n my-0\n position-relative\n overflow-hidden\n d-flex\n align-items-center\n justify-content-center\n ".concat("sm"===e.size?"".concat(l.small," mx-1 h5"):"".concat(l.large," mx-2 h4"),"\n ").concat(e.showFeedback?"":"cursor-pointer","\n ").concat(u)},d),r.createElement("input",{id:n.id,type:"radio",name:"multiple-choice",checked:!!s,onChange:function(){return t(n)},disabled:e.showFeedback,hidden:!0}),n.name,r.createElement("span",{className:"position-absolute p-2 ".concat(l.feedback)},r.createElement(m,null)),r.createElement("span",{className:"".concat(l.avatarContainer).concat("sm"===e.size?" ".concat(l.avatarContainerSmall):"")},s&&r.createElement(a.q,{imageCdnUrl:e.imageApi,initials:e.userInitials,imageUrl:e.userAvatar,extraClasses:"border border-white ".concat("sm"===e.size?l.avatarSmall:"")})))})))}o.defaultProps={size:"lg",unCheckedBackground:"bg-white"}},69186:(e,t,n)=>{n.d(t,{O:()=>k});var r=n(32735),a=n(97408),c=n(83140),i=n(80845),l=n(64818),o=n(69737),s=n(75896),u=n(38129),m=n(8246),d="cv-missing-word-",v=n(7730);const f="Y7ls8";var g=n(28097);function w(e){return w="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},w(e)}function b(e,t,n){return(t=function(e){var t=function(e){if("object"!=w(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=w(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==w(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var p=function(){return r.createElement(r.Fragment,null)},y=b(b(b(b(b(b(b({},u.Z9.Annotation,p),u.Z9.Image,p),u.Z9.MissingWord,(function(e){var t=e.interaction.data.sentence.replace(/{([^{}]*)}/g,(function(e,t){return"{".concat(d).concat(t,"}")})).split(/{([^{}]*)}/g),n="p-2";return e.reportsStyling||(n+=" border rounded"),r.createElement("div",{className:n},t.map((function(t,n){if(!t.startsWith(d))return t;var a=t.replace(d,""),c=e.interaction.actionableItems.find((function(e){return e.order.toString()===a}));if(c){var i=e.answers.find((function(e){return e.id==c.id}));if(i){if(!e.showFeedback)return r.createElement("strong",{key:n,className:"text-info"},i.text);var l=i.status===m.N.Correct;return r.createElement(r.Fragment,{key:n},!l&&r.createElement(r.Fragment,null,r.createElement("del",{className:"text-danger"},r.createElement("strong",null,i.text))," "),r.createElement("strong",{className:"text-success"},c.name))}}})))})),u.Z9.MultipleChoice,(function(e){var t,n,a,c,i="my-2";return e.reportsStyling&&(i+=" mx-2"),r.createElement("div",{className:i},r.createElement(v.n,{interaction:e.interaction,showFeedback:e.showFeedback,getSelectedAnswer:function(t){var n=e.answers.find((function(e){return e.id==t}));return null==n?void 0:n.id},imageApi:e.imageCdnUrl,userInitials:e.anonymisedUserName?l.l.getInitialsFromFullName(e.anonymisedUserName):l.l.getInitials(null===(t=e.user)||void 0===t?void 0:t.name,null===(n=e.user)||void 0===n?void 0:n.surname),userAvatar:e.anonymisedUserName?null:null===(c=null===(a=e.user)||void 0===a?void 0:a.avatar)||void 0===c?void 0:c.url,onlyShowSelectedAnswer:!e.showAvatar,size:"sm",unCheckedBackground:e.showFeedback?"":"".concat(f," text-white"),isDisplayOnly:!0}))})),u.Z9.TrueOrFalse,(function(e){var t,n,a,c,i="justify-content-start";return e.reportsStyling&&(i="justify-content-center"),r.createElement("div",{className:"my-2"},r.createElement(g.x,{className:i,interaction:e.interaction,showFeedback:e.showFeedback,hideFeedbackIcons:!e.showAvatar,getSelectedAnswer:function(t){var n=e.answers.find((function(e){return e.id==t}));return null==n?void 0:n.text},imageApi:e.imageCdnUrl,userInitials:e.anonymisedUserName?l.l.getInitialsFromFullName(e.anonymisedUserName):l.l.getInitials(null===(t=e.user)||void 0===t?void 0:t.name,null===(n=e.user)||void 0===n?void 0:n.surname),userAvatar:e.anonymisedUserName?null:null===(c=null===(a=e.user)||void 0===a?void 0:a.avatar)||void 0===c?void 0:c.url,size:"sm",unCheckedBackground:e.showFeedback?"":"".concat(f," text-white")}))})),u.Z9.ShortAnswer,(function(e){var t=s.m.first(e.answers);if(!t)return r.createElement(r.Fragment,null);var n="rounded p-2 mb-2";return e.reportsStyling||(n+=" bg-blue text-white"),r.createElement("div",{className:n},t.text)})),u.Z9.Illustration,(function(e){var t=s.m.first(e.answers);if(!t)return r.createElement(r.Fragment,null);var n="rounded p-2 mb-2 w-50";return e.reportsStyling||(n+=" text-white"),r.createElement("div",{className:n},r.createElement("img",{className:"img-fluid border rounded",src:t.text,alt:"Illustrated answer to the question: ".concat(e.interaction.name)}))})),E=n(44526),C=n(56151),N=n(3894);const h={avatarContainer:"FEdgT"};function k(e){var t,n,s,u,m,d=y[e.interaction.typeId];if(!d)return r.createElement(r.Fragment,null);var v=(0,i.j_)(e.studentResults),f=(0,i.f6)(e.interaction.id,v),g=c.A.isInteractionCorrect(e.interaction,v);return r.createElement("div",{className:"position-relative mt-2"},r.createElement("div",{className:"rounded ".concat(null!==(t=e.className)&&void 0!==t?t:"")},r.createElement("div",{className:"d-flex"},!!e.showStudentDetails&&r.createElement("div",{className:"me-2"},r.createElement("div",{className:h.avatarContainer},r.createElement(a.q,{imageCdnUrl:e.imageCdnUrl,initials:e.anonymisedUserName?l.l.getInitialsFromFullName(e.anonymisedUserName):l.l.getInitials(null===(n=e.studentResults.user)||void 0===n?void 0:n.name,null===(s=e.studentResults.user)||void 0===s?void 0:s.surname),imageUrl:e.anonymisedUserName?null:null===(m=null===(u=e.studentResults.user)||void 0===u?void 0:u.avatar)||void 0===m?void 0:m.url}))),r.createElement("div",{className:"flex-grow-1"},!!e.showStudentDetails&&r.createElement(C.U,{studentResults:e.studentResults,correctness:g,anonymisedUserName:e.anonymisedUserName}),r.createElement("div",{className:"d-flex justify-content-between"},r.createElement("div",{className:"flex-grow-1 ".concat(e.responseComponentClass?e.responseComponentClass:"")},f?r.createElement(d,{interaction:e.interaction,answers:f.answers,imageCdnUrl:e.imageCdnUrl,user:e.studentResults.user,showFeedback:e.showFeedback,showAvatar:e.showAvatar,reportsStyling:e.reportsStyling}):r.createElement(o.R,null)),!e.showStudentDetails&&r.createElement(E.Y,{correctness:g})))),r.createElement(N.Z,{studentAttempt:f,correctness:g,markInteraction:e.markInteraction,markedStatus:e.markedStatus})))}},44526:(e,t,n)=>{n.d(t,{Y:()=>l});var r=n(32735),a=n(83914),c=n(28972),i=n(35223);function l(e){return r.createElement(r.Fragment,null,e.correctness===c.w.Correct&&r.createElement("div",{className:"ms-2 text-success"},r.createElement(a.x,{svgName:i.vn.Tick})),e.correctness===c.w.Incorrect&&r.createElement("div",{className:"ms-2 text-danger"},r.createElement(a.x,{svgName:i.vn.Close})))}},56151:(e,t,n)=>{n.d(t,{U:()=>i});var r=n(32735),a=n(64818),c=n(44526);function i(e){return r.createElement("div",{className:"d-flex align-items-center justify-content-between mb-2"},r.createElement("p",{className:"fw-semibold mb-0"},e.anonymisedUserName||a.l.getFullName(e.studentResults.user)),r.createElement(c.Y,{correctness:e.correctness}))}},3894:(e,t,n)=>{n.d(t,{Z:()=>o});var r=n(32735),a=n(83914),c=n(28972),i=n(8246),l=n(35223);function o(e){return e.correctness!==c.w.AwaitingMarking?r.createElement(r.Fragment,null):r.createElement("div",{className:"d-flex justify-content-end gap-2 mt-2"},r.createElement("div",{className:"d-flex flex-column justify-content-end cursor-pointer\n ".concat(e.markedStatus===i.N.Correct?"text-success":"")},r.createElement(a.x,{svgName:e.markedStatus===i.N.Correct?l.vn.CheckCircle:l.vn.CheckCircleOutline,onClick:function(){return e.markInteraction(e.studentAttempt.answers,i.N.Correct)}})),r.createElement("div",{className:"d-flex flex-column justify-content-end cursor-pointer\n ".concat(e.markedStatus===i.N.Incorrect?" text-danger":"")},r.createElement(a.x,{svgName:e.markedStatus===i.N.Incorrect?l.vn.CrossCircleFilled:l.vn.CrossCircle,onClick:function(){return e.markInteraction(e.studentAttempt.answers,i.N.Incorrect)}})))}},69737:(e,t,n)=>{n.d(t,{R:()=>c});var r=n(32735),a=n(23481).T.encloseNamespace("interactives.responseTypes");function c(){return r.createElement("p",{className:"p-2"},r.createElement("em",null,a("noResponse")))}},28972:(e,t,n)=>{var r;n.d(t,{w:()=>r}),function(e){e[e.Correct=0]="Correct",e[e.Incorrect=1]="Incorrect",e[e.AwaitingMarking=2]="AwaitingMarking",e[e.Answered=3]="Answered",e[e.UnAnswered=4]="UnAnswered",e[e.NotApplicable=5]="NotApplicable"}(r||(r={}))},8246:(e,t,n)=>{var r;n.d(t,{N:()=>r}),function(e){e[e.Incorrect=0]="Incorrect",e[e.Correct=1]="Correct",e[e.PendingReview=2]="PendingReview"}(r||(r={}))},83140:(e,t,n)=>{n.d(t,{A:()=>g});var r=n(28972),a=n(8246),c=n(38129);function i(e){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i(e)}function l(e,t,n){return(t=function(e){var t=function(e){if("object"!=i(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=i(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==i(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(){return r.w.NotApplicable}function s(e,t){var n=e.actionableItems.filter((function(e){return e.isCorrect}));return n.every((function(e){return!t(e.id)}))?r.w.UnAnswered:n.every((function(e){var n;return e.name.trim().toLowerCase()===(null===(n=t(e.id))||void 0===n?void 0:n.trim().toLowerCase())}))?r.w.Correct:r.w.Incorrect}function u(e,t){return e.actionableItems.every((function(e){return!t(e.id)}))?r.w.UnAnswered:e.actionableItems.filter((function(e){return e.isCorrect})).every((function(e){var n,r=t(e.id);return(null==r?void 0:r.toString())===(null===(n=e.id)||void 0===n?void 0:n.toString())||r===e.name}))?r.w.Correct:r.w.Incorrect}function m(e,t){return function(n){var r=t.attempts.find((function(t){return t.id===e.id}));return null==r?void 0:r.answers.find((function(e){return e.id===n}))}}function d(e,t){var n=m(e,t);return u(e,(function(e){var t=n(e);return null==t?void 0:t.text}))}function v(e,t){return function(e,t){var n;return e.actionableItems.forEach((function(e){var c=t(e.id);n=c?c.status!==a.N.Correct?c.status!==a.N.Incorrect?r.w.AwaitingMarking:r.w.Incorrect:r.w.Correct:r.w.UnAnswered})),n}(e,m(e,t))}var f=l(l(l(l(l(l(l({},c.Z9.Annotation,o),c.Z9.Image,o),c.Z9.MissingWord,(function(e,t){var n=m(e,t);return s(e,(function(e){var t=n(e);return null==t?void 0:t.text}))})),c.Z9.MultipleChoice,d),c.Z9.ShortAnswer,v),c.Z9.TrueOrFalse,d),c.Z9.Illustration,v),g={notApplicable:o,awaitingMarking:function(){return r.w.AwaitingMarking},isMissingWordCorrect:s,isMultipleChoiceCorrect:u,isInteractionCorrect:function(e,t){return(0,f[e.typeId])(e,t)}}}}]);
2
+ //# sourceMappingURL=9186-c1d2615458-lite.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scripts/9186-c1d2615458-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/components/interaction-answers/multiple-choice/multiple-choice-interaction-answers.scss","file:///app/packages/libs/shared/src/components/interaction-answers/multiple-choice/MultipleChoiceInteractionAnswers.tsx","file:///app/packages/libs/shared/src/components/interaction-answers/true-or-false/true-or-false-interaction-answers.scss","file:///app/packages/libs/shared/src/components/interaction-answers/true-or-false/TrueOrFalseInteractionAnswers.tsx","file:///app/packages/libs/shared/src/components/interaction-response/response-types/MissingWordResponse.tsx","file:///app/packages/libs/shared/src/components/interaction-response/response-types/response-types.scss","file:///app/packages/libs/shared/src/components/interaction-response/response-types/ResponseComponentLookup.tsx","file:///app/packages/libs/shared/src/components/interaction-response/response-types/MultipleChoiceResponse.tsx","file:///app/packages/libs/shared/src/components/interaction-response/response-types/TrueOrFalseResponse.tsx","file:///app/packages/libs/shared/src/components/interaction-response/response-types/ShortAnswerResponse.tsx","file:///app/packages/libs/shared/src/components/interaction-response/response-types/IllustrationResponse.tsx","file:///app/packages/libs/shared/src/components/interaction-response/interaction-response.scss","file:///app/packages/libs/shared/src/components/interaction-response/InteractionResponse.tsx","file:///app/packages/libs/shared/src/components/interaction-response/InteractionResponseCorrectness.tsx","file:///app/packages/libs/shared/src/components/interaction-response/InteractionStudentDetailsHeader.tsx","file:///app/packages/libs/shared/src/components/interaction-response/MarkResponse.tsx","file:///app/packages/libs/shared/src/components/interaction-response/response-types/NoResponse.tsx","file:///app/packages/libs/shared/src/enums/InteractionCorrectness.ts","file:///app/packages/libs/shared/src/enums/InteractiveAnswerStatus.ts","file:///app/packages/libs/shared/src/utils/InteractiveCorrectnessHelper.ts"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport default {\"incorrect\":\"yodaE\",\"answer\":\"KpbWq\",\"avatarContainer\":\"uKRg2\",\"avatarContainerImage\":\"_LpCq\",\"image\":\"zWcu2\",\"previewContainer\":\"CSRwX\",\"imageContainer\":\"TeByp\",\"svgFill\":\"xnG9h\"};","import React from 'react';\nimport { HtmlPortalNode, InPortal } from 'react-reverse-portal';\nimport SimpleBar from 'simplebar-react';\n\nimport { Avatar } from 'libs/shared/components/avatar/Avatar';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { ActionableItem, Interaction } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './multiple-choice-interaction-answers.scss';\n\nconst alphabet = [ 'A', 'B', 'C', 'D' ];\n\ninterface MultipleChoiceInteractionAnswersProps {\n interaction: Interaction;\n showFeedback: boolean;\n getSelectedAnswer?: (actionableItemId: string) => string;\n imageApi?: string;\n userInitials?: string;\n userAvatar?: string;\n submitted?: boolean;\n size?: 'sm' | 'lg';\n showCorrectnessIcons?: boolean;\n\n /**\n * onSelectAnswer can be omitted when showing read-only results.\n */\n onSelectAnswer?: (answer: ActionableItem, checked: boolean) => void;\n\n onlyShowSelectedAnswer?: boolean;\n\n /**\n * Will hide the tick and cross from the answer tiles\n */\n hideFeedbackIcons?: boolean;\n unCheckedBackground?: string;\n\n leftHandSidePortalNode?: HtmlPortalNode;\n\n /**\n * Used when displaying the answer in reports\n */\n isDisplayOnly?: boolean;\n}\n\nMultipleChoiceInteractionAnswers.defaultProps = {\n size: 'lg',\n unCheckedBackground: 'bg-white'\n};\n\nexport function MultipleChoiceInteractionAnswers(props: MultipleChoiceInteractionAnswersProps): JSX.Element {\n const [ previewAnswer, setPreviewAnswer ] = React.useState<string>(null);\n\n const hasImages = !!props.interaction.actionableItems.find(a => !!a.data?.imageUrl);\n\n const scrollRef = React.useRef(null);\n\n const small = props.size === 'sm' || (hasImages && props.interaction.actionableItems.length > 2);\n\n return (\n <ul className={`${hasImages ? `row ${small && !props.isDisplayOnly ? 'px-lg-5 p-0' : ''}` : ''} list-unstyled`}>\n {props.interaction.actionableItems.map((a, index) => {\n const answer = props.getSelectedAnswer?.(a.id);\n const imageUrl = a.data?.imageUrl;\n const hasText = !!a.name;\n\n function onSelectAnswer(): void {\n if (props.submitted)\n return;\n\n if (props.onSelectAnswer)\n props.onSelectAnswer(a, !answer);\n\n setPreviewAnswer(answer ? null : a.id);\n }\n\n if (props.onlyShowSelectedAnswer && !answer)\n return <React.Fragment key={index}></React.Fragment>;\n\n let className = answer ?\n 'bg-blue text-white' :\n props.unCheckedBackground;\n\n let LeftPart = () => <>{alphabet[index]}</>;\n\n if (props.showFeedback) {\n if (!props.showCorrectnessIcons) {\n className = a.isCorrect ?\n 'bg-success text-white' :\n `bg-danger text-white ${styles.incorrect}`;\n }\n\n if (!props.hideFeedbackIcons) {\n LeftPart = () => {\n return (\n <>\n {a.isCorrect ?\n <SvgContainer size={SvgContainerSize.Small} svgName={cvSvgLibrary.Check} /> :\n <SvgContainer size={SvgContainerSize.Small} svgName={cvSvgLibrary.Close} />}\n </>\n );\n };\n }\n }\n\n /**\n * Allow keyboard controls, but not when we show feedback\n */\n const accessibility = props.showFeedback ? {} : {\n role: 'button',\n tabIndex: 0,\n onKeyDown: (e: React.KeyboardEvent) => e.key === 'Enter' && onSelectAnswer()\n };\n\n let hasImageClass = '';\n if (hasImages) {\n hasImageClass = 'col-6';\n }\n\n const showImagePreview = a.id.toString() === previewAnswer?.toString()\n && props.leftHandSidePortalNode\n && imageUrl\n && !props.submitted;\n\n return (\n <React.Fragment key={index}>\n {showImagePreview &&\n <InPortal node={props.leftHandSidePortalNode}>\n <SimpleBar className='h-100' ref={scrollRef}>\n <div className='p-3 d-flex flex-column h-100'>\n <div className='flex-grow-1'>\n <div className='cv-image-container text-center'>\n <img\n className='img-fluid rounded'\n src={imageUrl}\n alt={a.name || alphabet[index]}\n />\n </div>\n <div className={`${styles.answer} h6 text-center text-dark p-3`}>\n <span className={`d-inline-block ${hasText ? 'me-3' : ''} cv-multiple-choice-bullet`}><LeftPart /></span>\n {hasText && <span className='flex-grow-1 pe-4'>{a.name}</span>}\n </div>\n </div>\n <div className='text-end'>\n <DivButton\n className='btn btn-link'\n onClick={() => setPreviewAnswer(null)}\n >\n Close\n </DivButton>\n </div>\n </div>\n </SimpleBar>\n </InPortal>\n }\n <li className={`${hasImageClass} mb-3`}>\n <label\n className={`\n d-block\n rounded-3\n shadow-sm\n position-relative\n ${props.showFeedback ? '' : 'cursor-pointer'}\n ${styles.answer}\n ${className}\n ${hasImages ? 'mb-0 h-100' : ''}\n `}\n key={index}\n onClick={onSelectAnswer}\n {...accessibility}\n >\n {hasImages &&\n <div>\n {props.showCorrectnessIcons && (\n <div className={`${styles.svgFill} position-absolute top-0 start-0 p-2 z-1`}>\n {a.isCorrect\n ? <SvgContainer svgName={cvSvgLibrary.CheckCircle} size={SvgContainerSize.ExtraLarge} className='svg-container text-success' />\n : <SvgContainer svgName={cvSvgLibrary.CrossCircleFilled} size={SvgContainerSize.Large} className='svg-container text-red' />\n }\n </div>\n )}\n <span className={`d-block position-relative ${styles.imageContainer}`}>\n <span\n className={`\n ${styles.image}\n position-absolute\n start-0\n end-0\n top-0\n bottom-0\n rounded-top\n `}\n style={{ backgroundImage: imageUrl ? `url(${imageUrl})` : undefined }}\n title={a.name || alphabet[index]}\n />\n </span>\n </div>\n }\n <span className={`d-flex ${hasText || props.isDisplayOnly ? 'justify-content-between' : 'justify-content-center'} ${small ? 'p-2' : 'p-3'}`}>\n <span className={`d-inline-block ${hasText ? 'me-3' : ''} cv-multiple-choice-bullet`}><LeftPart /></span>\n {hasText && <span className='flex-grow-1 pe-4'>{a.name}</span>}\n {props.userAvatar && !props.onlyShowSelectedAnswer &&\n <span className={`${styles.avatarContainer} ${hasImages ? styles.avatarContainerImage : ''}`}>\n {answer &&\n <Avatar\n imageCdnUrl={props.imageApi}\n initials={props.userInitials}\n imageUrl={props.userAvatar}\n extraClasses={'border border-white'}\n />\n }\n </span>\n }\n </span>\n </label>\n </li>\n </React.Fragment>\n );\n })}\n </ul>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"feedback\":\"CBgCv\",\"avatarContainer\":\"CVTEm\",\"avatarContainerSmall\":\"tbPTs\",\"avatarSmall\":\"GUAUz\",\"incorrect\":\"ZCkyL\",\"large\":\"TKjXy\",\"small\":\"_2qC40\"};","import React from 'react';\n\nimport { Avatar } from 'libs/shared/components/avatar/Avatar';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { ActionableItem, Interaction } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './true-or-false-interaction-answers.scss';\n\ninterface TrueOrFalseInteractionAnswersProps {\n className?: string;\n interaction: Interaction;\n showFeedback: boolean;\n getSelectedAnswer: (actionableItemId: string) => string;\n imageApi: string;\n userInitials: string;\n userAvatar: string;\n size?: 'sm' | 'lg'\n \n /**\n * onSelectAnswer can be omitted when showing read-only results.\n */\n onSelectAnswer?: (answer: ActionableItem) => void;\n\n /**\n * Will hide the tick and cross from the answer tiles\n */\n hideFeedbackIcons?: boolean;\n unCheckedBackground?: string;\n}\n\nTrueOrFalseInteractionAnswers.defaultProps = {\n size: 'lg',\n unCheckedBackground: 'bg-white'\n};\n\nexport function TrueOrFalseInteractionAnswers(props: TrueOrFalseInteractionAnswersProps): JSX.Element {\n function onSelectAnswer(answer: ActionableItem): void {\n if (props.onSelectAnswer)\n props.onSelectAnswer(answer);\n }\n \n return (\n <div\n className={`d-flex ${props.className ? props.className : ''} ${props.size === 'sm' ? 'mx-n1' : 'mx-n2'}`}>\n {props.interaction.actionableItems.map((a, index) => {\n const answer = props.getSelectedAnswer(a.id);\n\n let className = answer ?\n 'bg-blue text-white' :\n props.unCheckedBackground;\n\n let LeftPart = () => <></>;\n\n if (props.showFeedback) {\n className = a.isCorrect ?\n 'bg-success text-white' :\n `bg-danger text-white ${styles.incorrect}`;\n\n if (!props.hideFeedbackIcons) {\n LeftPart = () => {\n return (\n <>\n {a.isCorrect ?\n <SvgContainer size={SvgContainerSize.Small} svgName={cvSvgLibrary.Check} /> :\n <SvgContainer size={SvgContainerSize.Small} svgName={cvSvgLibrary.Close} />}\n </>\n );\n };\n }\n }\n\n /**\n * Allow keyboard controls, but not when we show feedback\n */\n const accessibility = props.showFeedback ? {} : {\n role: 'button',\n tabIndex: 0,\n onKeyDown: (e: React.KeyboardEvent) => e.key === 'Enter' && onSelectAnswer(a)\n };\n\n return (\n <label\n key={index}\n htmlFor={a.id}\n className={`\n rounded-3\n shadow-sm\n my-0\n position-relative\n overflow-hidden\n d-flex\n align-items-center\n justify-content-center\n ${props.size === 'sm' ? `${styles.small} mx-1 h5` : `${styles.large} mx-2 h4`}\n ${props.showFeedback ? '' : 'cursor-pointer'}\n ${className}`}\n {...accessibility}\n >\n <input\n id={a.id}\n type={'radio'}\n name='multiple-choice'\n checked={!!answer}\n onChange={() => onSelectAnswer(a)}\n disabled={props.showFeedback}\n hidden\n />\n {a.name}\n <span className={`position-absolute p-2 ${styles.feedback}`}><LeftPart /></span>\n <span className={`${styles.avatarContainer}${props.size === 'sm' ? ` ${styles.avatarContainerSmall}` : ''}`}>\n {answer &&\n <Avatar\n imageCdnUrl={props.imageApi}\n initials={props.userInitials}\n imageUrl={props.userAvatar}\n extraClasses={`border border-white ${props.size === 'sm' ? styles.avatarSmall : ''}`}\n />\n }\n </span>\n </label>\n );\n })}\n </div>\n );\n}","import React from 'react';\n\nimport { InteractiveAnswerStatus } from 'libs/shared/enums/InteractiveAnswerStatus';\n\nimport { ResponseComponentProps } from './ResponseComponentLookup';\n\nconst PLACEHOLDER = 'cv-missing-word-';\n\nexport function MissingWordResponse(props: ResponseComponentProps): JSX.Element {\n const cleanedUp = (props.interaction.data.sentence as string).replace(/{([^{}]*)}/g, (match: string, val: string) => {\n return `{${PLACEHOLDER}${val}}`;\n });\n\n const items = cleanedUp.split(/{([^{}]*)}/g);\n\n let className = 'p-2';\n\n if (!props.reportsStyling)\n className += ' border rounded';\n\n return (\n <div className={className}>\n {items.map((item, idx) => {\n if (!item.startsWith(PLACEHOLDER))\n return item;\n\n const order = item.replace(PLACEHOLDER, '');\n\n const actionableItem = props.interaction.actionableItems.find(a => a.order.toString() === order);\n\n if (!actionableItem)\n return;\n\n // eslint-disable-next-line\n const answer = props.answers.find(a => a.id == actionableItem.id);\n \n if (!answer)\n return;\n\n if (!props.showFeedback)\n return <strong key={idx} className='text-info'>{answer.text}</strong>;\n\n const isCorrect = answer.status === InteractiveAnswerStatus.Correct;\n\n return (\n <React.Fragment key={idx}>\n {!isCorrect && <><del className='text-danger'><strong>{answer.text}</strong></del>&nbsp;</>}\n <strong className='text-success'>{actionableItem.name}</strong>\n </React.Fragment>\n );\n })}\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"uncheckedBackground\":\"Y7ls8\"};","import React from 'react';\n\nimport { IllustrationResponse } from 'libs/shared/components/interaction-response/response-types/IllustrationResponse';\nimport { Interaction, InteractionTypeId, StudentAnswer, User } from 'libs/shared/interfaces';\n\nimport { MissingWordResponse } from './MissingWordResponse';\nimport { MultipleChoiceResponse } from './MultipleChoiceResponse';\nimport { ShortAnswerResponse } from './ShortAnswerResponse';\nimport { TrueOrFalseResponse } from './TrueOrFalseResponse';\n\nexport interface ResponseComponentProps {\n interaction: Interaction;\n answers: StudentAnswer[];\n imageCdnUrl: string;\n user: User;\n showFeedback?: boolean;\n showAvatar?: boolean;\n anonymisedUserName?: string;\n reportsStyling?: boolean;\n}\nconst NoResponseRequired = () => <></>;\n\nexport const ResponseComponentLookup: {\n [typeId: number]: (props: ResponseComponentProps) => JSX.Element\n} = {\n [InteractionTypeId.Annotation]: NoResponseRequired,\n [InteractionTypeId.Image]: NoResponseRequired,\n [InteractionTypeId.MissingWord]: MissingWordResponse,\n [InteractionTypeId.MultipleChoice]: MultipleChoiceResponse,\n [InteractionTypeId.TrueOrFalse]: TrueOrFalseResponse,\n [InteractionTypeId.ShortAnswer]: ShortAnswerResponse,\n [InteractionTypeId.Illustration]: IllustrationResponse\n};","import React from 'react';\n\nimport { MultipleChoiceInteractionAnswers } from 'libs/shared/components/interaction-answers/multiple-choice/MultipleChoiceInteractionAnswers';\nimport { UserHelper } from 'libs/shared/utils/UserHelper';\n\nimport { ResponseComponentProps } from './ResponseComponentLookup';\n\nimport styles from './response-types.scss';\n\nexport function MultipleChoiceResponse(props: ResponseComponentProps): JSX.Element {\n function getAnswer(id: string): string {\n // eslint-disable-next-line\n const answer = props.answers.find(a => a.id == id);\n return answer?.id;\n }\n\n let className = 'my-2';\n\n if (props.reportsStyling)\n className += ' mx-2';\n\n return (\n <div className={className}>\n <MultipleChoiceInteractionAnswers\n interaction={props.interaction}\n showFeedback={props.showFeedback}\n getSelectedAnswer={getAnswer}\n imageApi={props.imageCdnUrl}\n userInitials={props.anonymisedUserName\n ? UserHelper.getInitialsFromFullName(props.anonymisedUserName)\n : UserHelper.getInitials(props.user?.name, props.user?.surname)\n }\n userAvatar={props.anonymisedUserName ? null : props.user?.avatar?.url}\n onlyShowSelectedAnswer={!props.showAvatar}\n size='sm'\n unCheckedBackground={props.showFeedback ? '' : `${styles.uncheckedBackground} text-white`}\n isDisplayOnly\n />\n </div>\n );\n}","import React from 'react';\n\nimport { TrueOrFalseInteractionAnswers } from 'libs/shared/components/interaction-answers/true-or-false/TrueOrFalseInteractionAnswers';\nimport { UserHelper } from 'libs/shared/utils/UserHelper';\n\nimport { ResponseComponentProps } from './ResponseComponentLookup';\n\nimport styles from './response-types.scss';\n\nexport function TrueOrFalseResponse(props: ResponseComponentProps): JSX.Element {\n function getAnswer(id: string): string {\n // eslint-disable-next-line\n const answer = props.answers.find(a => a.id == id);\n return answer?.text;\n }\n\n let className = 'justify-content-start';\n\n if (props.reportsStyling)\n className = 'justify-content-center';\n \n return (\n <div className='my-2'>\n <TrueOrFalseInteractionAnswers\n className={className}\n interaction={props.interaction}\n showFeedback={props.showFeedback}\n hideFeedbackIcons={!props.showAvatar}\n getSelectedAnswer={getAnswer}\n imageApi={props.imageCdnUrl}\n userInitials={props.anonymisedUserName\n ? UserHelper.getInitialsFromFullName(props.anonymisedUserName)\n : UserHelper.getInitials(props.user?.name, props.user?.surname)\n }\n userAvatar={props.anonymisedUserName ? null : props.user?.avatar?.url}\n size='sm'\n unCheckedBackground={props.showFeedback ? '' : `${styles.uncheckedBackground} text-white`}\n />\n </div>\n );\n}","import React from 'react';\n\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { ResponseComponentProps } from './ResponseComponentLookup';\n\nexport function ShortAnswerResponse(props: ResponseComponentProps): JSX.Element {\n // There should only be one answer.\n const answer = ArrayHelper.first(props.answers);\n\n if (!answer)\n return <></>;\n\n let className = 'rounded p-2 mb-2';\n\n if (!props.reportsStyling)\n className += ' bg-blue text-white';\n \n return (\n <div className={className}>\n {answer.text}\n </div>\n );\n}","import React from 'react';\n\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { ResponseComponentProps } from './ResponseComponentLookup';\n\nexport function IllustrationResponse(props: ResponseComponentProps): JSX.Element {\n // There should only be one answer.\n const answer = ArrayHelper.first(props.answers);\n\n if (!answer)\n return <></>;\n\n let className = 'rounded p-2 mb-2 w-50';\n\n if (!props.reportsStyling)\n className += ' text-white';\n \n return (\n <div className={className}>\n <img\n className='img-fluid border rounded'\n src={answer.text}\n alt={`Illustrated answer to the question: ${props.interaction.name}`}\n />\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"avatarContainer\":\"FEdgT\"};","import React from 'react';\n\nimport { Avatar } from 'libs/shared/components/avatar/Avatar';\nimport { InteractiveAnswerStatus } from 'libs/shared/enums/InteractiveAnswerStatus';\nimport { Interaction, StudentAnswer, StudentResults } from 'libs/shared/interfaces';\nimport { InteractiveCorrectnessHelper } from 'libs/shared/utils/InteractiveCorrectnessHelper';\nimport { getStudentAttempt, getStudentResult } from 'libs/shared/utils/InteractiveHelper';\nimport { UserHelper } from 'libs/shared/utils/UserHelper';\n\nimport { NoResponse } from './response-types/NoResponse';\nimport { ResponseComponentLookup } from './response-types/ResponseComponentLookup';\nimport { InteractionResponseCorrectness } from './InteractionResponseCorrectness';\nimport { InteractionStudentDetailsHeader } from './InteractionStudentDetailsHeader';\nimport { MarkResponse } from './MarkResponse';\n\nimport styles from './interaction-response.scss';\n\n\ninterface InteractionResponseProps {\n interaction: Interaction;\n studentResults: StudentResults;\n imageCdnUrl: string;\n markInteraction: (answers: StudentAnswer[], status: InteractiveAnswerStatus) => void;\n markedStatus?: InteractiveAnswerStatus;\n showStudentDetails?: boolean;\n className?: string;\n showFeedback?: boolean;\n showAvatar?: boolean;\n anonymisedUserName?: string;\n reportsStyling?: boolean;\n responseComponentClass?: string;\n}\n\nexport function InteractionResponse(props: InteractionResponseProps): JSX.Element {\n const ResponseComponent = ResponseComponentLookup[props.interaction.typeId];\n\n if (!ResponseComponent)\n return <></>;\n\n const result = getStudentResult(props.studentResults);\n\n const studentAttempt = getStudentAttempt(props.interaction.id, result);\n\n const correctness = InteractiveCorrectnessHelper.isInteractionCorrect(props.interaction, result);\n\n return (\n <div className='position-relative mt-2'>\n <div className={`rounded ${props.className ?? ''}`}>\n <div className='d-flex'>\n {!!props.showStudentDetails &&\n <div className='me-2'>\n <div className={styles.avatarContainer}>\n <Avatar\n imageCdnUrl={props.imageCdnUrl}\n initials={props.anonymisedUserName\n ? UserHelper.getInitialsFromFullName(props.anonymisedUserName)\n : UserHelper.getInitials(props.studentResults.user?.name, props.studentResults.user?.surname)\n }\n imageUrl={props.anonymisedUserName ? null : props.studentResults.user?.avatar?.url}\n />\n </div>\n </div>\n }\n <div className='flex-grow-1'>\n {!!props.showStudentDetails &&\n <InteractionStudentDetailsHeader\n studentResults={props.studentResults}\n correctness={correctness}\n anonymisedUserName={props.anonymisedUserName}\n />\n }\n <div className='d-flex justify-content-between'>\n <div className={`flex-grow-1 ${props.responseComponentClass ? props.responseComponentClass : ''}`}>\n {studentAttempt\n ? <ResponseComponent\n interaction={props.interaction}\n answers={studentAttempt.answers}\n imageCdnUrl={props.imageCdnUrl}\n user={props.studentResults.user}\n showFeedback={props.showFeedback}\n showAvatar={props.showAvatar}\n reportsStyling={props.reportsStyling}\n />\n : <NoResponse />\n }\n </div>\n {!props.showStudentDetails &&\n <InteractionResponseCorrectness correctness={correctness} />\n }\n </div>\n </div>\n </div>\n <MarkResponse\n studentAttempt={studentAttempt}\n correctness={correctness}\n markInteraction={props.markInteraction}\n markedStatus={props.markedStatus}\n />\n </div>\n </div>\n );\n}","import React from 'react';\n\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { InteractionCorrectness } from 'libs/shared/enums/InteractionCorrectness';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\ninterface InteractionResponseCorrectnessProps {\n correctness: InteractionCorrectness;\n}\n\nexport function InteractionResponseCorrectness(props: InteractionResponseCorrectnessProps): JSX.Element {\n return (\n <>\n {props.correctness === InteractionCorrectness.Correct &&\n <div className='ms-2 text-success'>\n <SvgContainer svgName={cvSvgLibrary.Tick} />\n </div>\n }\n {props.correctness === InteractionCorrectness.Incorrect &&\n <div className='ms-2 text-danger'>\n <SvgContainer svgName={cvSvgLibrary.Close} />\n </div>\n }\n </>\n );\n}","import React from 'react';\n\nimport { InteractionCorrectness } from 'libs/shared/enums/InteractionCorrectness';\nimport { StudentResults } from 'libs/shared/interfaces';\nimport { UserHelper } from 'libs/shared/utils/UserHelper';\n\nimport { InteractionResponseCorrectness } from './InteractionResponseCorrectness';\n\ninterface InteractionStudentDetailsProps {\n studentResults: StudentResults;\n correctness: InteractionCorrectness;\n anonymisedUserName?: string;\n}\n\nexport function InteractionStudentDetailsHeader(props: InteractionStudentDetailsProps): JSX.Element {\n return (\n <div className='d-flex align-items-center justify-content-between mb-2'>\n <p className='fw-semibold mb-0'>\n {props.anonymisedUserName || UserHelper.getFullName(props.studentResults.user)}\n </p>\n <InteractionResponseCorrectness correctness={props.correctness} />\n </div>\n );\n}","import React from 'react';\n\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { InteractionCorrectness } from 'libs/shared/enums/InteractionCorrectness';\nimport { InteractiveAnswerStatus } from 'libs/shared/enums/InteractiveAnswerStatus';\nimport { StudentAnswer, StudentAttempt } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\ninterface MarkResponseProps {\n studentAttempt: StudentAttempt;\n correctness: InteractionCorrectness;\n markInteraction: (answers: StudentAnswer[], status: InteractiveAnswerStatus) => void;\n markedStatus?: InteractiveAnswerStatus;\n}\n\nexport function MarkResponse(props: MarkResponseProps): JSX.Element {\n if (props.correctness !== InteractionCorrectness.AwaitingMarking)\n return <></>;\n\n return (\n <div className='d-flex justify-content-end gap-2 mt-2'>\n <div className={\n `d-flex flex-column justify-content-end cursor-pointer\n ${props.markedStatus === InteractiveAnswerStatus.Correct ? 'text-success' : ''}`\n }>\n <SvgContainer\n svgName={props.markedStatus === InteractiveAnswerStatus.Correct\n ? cvSvgLibrary.CheckCircle\n : cvSvgLibrary.CheckCircleOutline\n }\n onClick={\n () => props.markInteraction(props.studentAttempt.answers, InteractiveAnswerStatus.Correct)\n }\n />\n </div>\n <div className={\n `d-flex flex-column justify-content-end cursor-pointer\n ${props.markedStatus === InteractiveAnswerStatus.Incorrect ? ' text-danger' : ''}`\n }>\n <SvgContainer\n svgName={props.markedStatus === InteractiveAnswerStatus.Incorrect\n ? cvSvgLibrary.CrossCircleFilled\n : cvSvgLibrary.CrossCircle\n }\n onClick={\n () => props.markInteraction(props.studentAttempt.answers, InteractiveAnswerStatus.Incorrect)\n }\n />\n </div>\n </div>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nconst namespace = 'interactives.responseTypes';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function NoResponse(): JSX.Element {\n return (\n <p className='p-2'><em>{getPhrase('noResponse')}</em></p>\n );\n}","export enum InteractionCorrectness {\n Correct,\n Incorrect,\n AwaitingMarking,\n \n Answered,\n UnAnswered,\n NotApplicable\n}","export enum InteractiveAnswerStatus {\n Incorrect = 0,\n Correct = 1,\n PendingReview = 2\n}","import { InteractionCorrectness } from 'libs/shared/enums/InteractionCorrectness';\nimport { InteractiveAnswerStatus } from 'libs/shared/enums/InteractiveAnswerStatus';\nimport { Interaction, InteractionTypeId, InteractiveResult, StudentAnswer } from 'libs/shared/interfaces';\n\ntype GetStudentAnswerByActionableItemId = (id: string) => string;\n\nfunction notApplicable(): InteractionCorrectness {\n return InteractionCorrectness.NotApplicable;\n}\n\nfunction awaitingMarking(): InteractionCorrectness {\n return InteractionCorrectness.AwaitingMarking;\n}\n\nfunction isMissingWordCorrect(\n interaction: Interaction,\n getStudentAnswer: GetStudentAnswerByActionableItemId\n): InteractionCorrectness {\n const items = interaction.actionableItems.filter(a => a\n .isCorrect);\n\n if (items.every(a => !getStudentAnswer(a.id)))\n return InteractionCorrectness.UnAnswered;\n\n const correct = items.every(a => a.name.trim().toLowerCase() === getStudentAnswer(a.id)?.trim().toLowerCase());\n return correct ? InteractionCorrectness.Correct : InteractionCorrectness.Incorrect;\n}\n\nfunction isMultipleChoiceCorrect(\n interaction: Interaction,\n getStudentAnswer: GetStudentAnswerByActionableItemId\n): InteractionCorrectness {\n if (interaction.actionableItems.every(a => !getStudentAnswer(a.id)))\n return InteractionCorrectness.UnAnswered;\n \n const correctItems = interaction.actionableItems.filter(a => a.isCorrect);\n\n const correct = correctItems.every(a => {\n const studentAnswer = getStudentAnswer(a.id);\n\n /**\n * In the past we've only ever checked the answer name. But since we introduced the ability to have image interactions\n * with no question text, we've need to swap to saving the id. But past submissions still have the name\n * - Sha\n */\n return studentAnswer?.toString() === a.id?.toString() || studentAnswer === a.name;\n });\n return correct ? InteractionCorrectness.Correct : InteractionCorrectness.Incorrect;\n}\n\nfunction isMarkableAnswerMarkedCorrect(\n interaction: Interaction,\n getStudentAnswer: (id: string) => StudentAnswer\n): InteractionCorrectness {\n let correctness: InteractionCorrectness;\n\n // There should only be one actionableItem\n interaction.actionableItems.forEach(item => {\n const studentAnswer = getStudentAnswer(item.id);\n\n if (!studentAnswer) {\n correctness = InteractionCorrectness.UnAnswered;\n return;\n }\n\n if (studentAnswer.status === InteractiveAnswerStatus.Correct) {\n correctness = InteractionCorrectness.Correct;\n return;\n }\n\n if (studentAnswer.status === InteractiveAnswerStatus.Incorrect) {\n correctness = InteractionCorrectness.Incorrect;\n return;\n }\n\n correctness = InteractionCorrectness.AwaitingMarking;\n });\n\n return correctness;\n}\n\ntype IsCorrectFunction = (interaction: Interaction, result: InteractiveResult) => InteractionCorrectness;\n\nfunction getGetStudentAnswer(interaction: Interaction, result: InteractiveResult): (id: string) => StudentAnswer {\n return (id: string) => {\n const attempt = result.attempts.find(a => a.id === interaction.id);\n return attempt?.answers.find(s => s.id === id);\n };\n}\n\nfunction wrapIsMissingWordCorrect(interaction: Interaction, result: InteractiveResult): InteractionCorrectness {\n const getStudentAnswer = getGetStudentAnswer(interaction, result);\n\n return isMissingWordCorrect(interaction, (id: string) => {\n const answer = getStudentAnswer(id);\n return answer?.text;\n });\n}\n\nfunction wrapIsMultipleChoiceCorrect(interaction: Interaction, result: InteractiveResult): InteractionCorrectness {\n const getStudentAnswer = getGetStudentAnswer(interaction, result);\n\n return isMultipleChoiceCorrect(interaction, (id: string) => {\n const answer = getStudentAnswer(id);\n return answer?.text;\n });\n}\n\nfunction wrapIsMarkableAnswerMarkedCorrect(\n interaction: Interaction,\n result: InteractiveResult\n): InteractionCorrectness {\n const getStudentAnswer = getGetStudentAnswer(interaction, result);\n return isMarkableAnswerMarkedCorrect(interaction, getStudentAnswer);\n}\n\nconst IsCorrectLookup: {[typeId: number]: IsCorrectFunction} = {\n [InteractionTypeId.Annotation]: notApplicable,\n [InteractionTypeId.Image]: notApplicable,\n [InteractionTypeId.MissingWord]: wrapIsMissingWordCorrect,\n [InteractionTypeId.MultipleChoice]: wrapIsMultipleChoiceCorrect,\n [InteractionTypeId.ShortAnswer]: wrapIsMarkableAnswerMarkedCorrect,\n [InteractionTypeId.TrueOrFalse]: wrapIsMultipleChoiceCorrect,\n [InteractionTypeId.Illustration]: wrapIsMarkableAnswerMarkedCorrect\n};\n\nfunction isInteractionCorrect(interaction: Interaction, result: InteractiveResult): InteractionCorrectness {\n const isCorrectFn = IsCorrectLookup[interaction.typeId];\n\n return isCorrectFn(interaction, result);\n}\n\nexport const InteractiveCorrectnessHelper = {\n notApplicable,\n awaitingMarking,\n isMissingWordCorrect,\n isMultipleChoiceCorrect,\n isInteractionCorrect\n};\n"],"names":["alphabet","MultipleChoiceInteractionAnswers","props","previewAnswer","setPreviewAnswer","hasImages","interaction","actionableItems","find","a","data","imageUrl","scrollRef","small","size","length","className","isDisplayOnly","map","index","answer","getSelectedAnswer","id","hasText","name","onSelectAnswer","submitted","onlyShowSelectedAnswer","key","unCheckedBackground","LeftPart","showFeedback","showCorrectnessIcons","isCorrect","hideFeedbackIcons","SvgContainer","S","svgName","accessibility","role","tabIndex","onKeyDown","e","hasImageClass","showImagePreview","toString","leftHandSidePortalNode","node","ref","src","alt","DivButton","onClick","style","backgroundImage","undefined","title","userAvatar","Avatar","imageCdnUrl","imageApi","initials","userInitials","extraClasses","defaultProps","TrueOrFalseInteractionAnswers","htmlFor","type","checked","onChange","disabled","hidden","PLACEHOLDER","NoResponseRequired","ResponseComponentLookup","items","sentence","replace","match","val","split","reportsStyling","item","idx","startsWith","order","actionableItem","answers","text","status","InteractiveAnswerStatus","anonymisedUserName","UserHelper","user","surname","avatar","url","showAvatar","ArrayHelper","InteractionResponse","ResponseComponent","typeId","result","studentResults","studentAttempt","correctness","InteractiveCorrectnessHelper","showStudentDetails","InteractionStudentDetailsHeader","responseComponentClass","NoResponse","InteractionResponseCorrectness","MarkResponse","markInteraction","markedStatus","getPhrase","InteractionCorrectness","notApplicable","isMissingWordCorrect","getStudentAnswer","filter","every","trim","toLowerCase","isMultipleChoiceCorrect","studentAnswer","getGetStudentAnswer","attempt","attempts","s","wrapIsMultipleChoiceCorrect","wrapIsMarkableAnswerMarkedCorrect","forEach","isMarkableAnswerMarkedCorrect","IsCorrectLookup","awaitingMarking","isInteractionCorrect","isCorrectFn"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
- "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[9241],{45781:(e,t,n)=>{n.d(t,{z:()=>f});var a=n(32735),r=n(39202),i=n(23481),o=n(65858),l=n(38502),c=n(83345),s=n(38129);const u={pillTab:"bMJM0"};var d="discover.header";function f(e){var t,n,f,p,m,v;if(!e.type)return a.createElement(a.Fragment,null);if(e.type===s.Yv.Learner||e.hasStudentExperience)return a.createElement("div",{className:"py-3"},a.createElement("h1",{className:"h2 mb-0"},a.createElement(c.x,{namespace:d,phrase:"heading"})));var y=[{name:i.T.getPhrase(d,"forYou"),appLink:null===(t=e.appLinks)||void 0===t?void 0:t.forYou,active:"forYou"===e.active,analyticsData:{name:i.T.getPhrase(d,"forYou"),url:r.C$.getHref(null===(n=e.appLinks)||void 0===n?void 0:n.forYou)},analyticsOptions:{actionType:o.Vw.Click,entity:o.py.Url,location:o.LZ.MagicTabs}},{name:i.T.getPhrase(d,"whatsNew"),appLink:null===(f=e.appLinks)||void 0===f?void 0:f.whatsNew,active:"whatsNew"===e.active,analyticsData:{name:i.T.getPhrase(d,"whatsNew"),url:r.C$.getHref(null===(p=e.appLinks)||void 0===p?void 0:p.whatsNew)},analyticsOptions:{actionType:o.Vw.Click,entity:o.py.Url,location:o.LZ.MagicTabs}}];return e.showCalendar&&y.push({name:i.T.getPhrase(d,"calendar"),appLink:null===(m=e.appLinks)||void 0===m?void 0:m.calendar,active:"calendar"===e.active,analyticsData:{name:i.T.getPhrase(d,"calendar"),url:r.C$.getHref(null===(v=e.appLinks)||void 0===v?void 0:v.calendar)},analyticsOptions:{actionType:o.Vw.Click,entity:o.py.Url,location:o.LZ.MagicTabs}}),a.createElement("div",{className:"py-3 text-center mx-n3"},a.createElement(l.r,{tabs:y,className:u.pillTab}))}},38502:(e,t,n)=>{n.d(t,{r:()=>d});var a=n(32735),r=n(49985),i=n(15611),o=n(18559),l=n(11607),c=n(83914),s=n(22771);function u(e){return a.createElement(a.Fragment,null,!!e.tab.svgName&&a.createElement("div",{className:e.tab.name?"pe-1":""},a.createElement(c.x,{svgName:e.tab.svgName})),e.tab.name,"number"==typeof e.tab.count&&a.createElement("div",{className:"ps-2"},a.createElement(o.C,{type:o.g.Count,data:e.tab.count})))}function d(e){var t;return a.createElement("nav",{className:null!==(t=e.className)&&void 0!==t?t:"",ref:e.containerRef},a.createElement("ul",{className:"\n list-unstyled d-inline-block m-0 ".concat(s.Z.pillTabSelector,"\n ").concat(e.borderRadius?s.Z.radiusSmall:"","\n ").concat(e.listClassName,"\n ")},e.tabs.map((function(e,t){return a.createElement("li",{className:"\n p-0 ".concat(s.Z.tab," ").concat(e.active?"btn btn-dark":"btn btn-outline-dark","\n ").concat(e.name?s.Z.minWidth:""," ").concat(e.className,"\n "),key:t},e.appLink?a.createElement(i.F,{appLink:e.appLink,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,className:"\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ".concat(s.Z.tabLink,"\n ")},a.createElement(u,{tab:e})):a.createElement(l.L,{className:"\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ".concat(s.Z.tabLink,"\n "),onClick:function(){return function(e){!e.active&&e.onSelect&&(e.onSelect(),e.analyticsData&&e.analyticsOptions&&r.k.logUserAction(e.analyticsData,e.analyticsOptions))}(e)}},a.createElement(u,{tab:e})))}))))}d.defaultProps={borderRadius:"lg"}},39902:(e,t,n)=>{n.d(t,{F:()=>p,f:()=>f});var a=n(32735),r=n(20354),i=n(75896);function o(e){return function(e){if(Array.isArray(e))return c(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||l(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(e,t){if(e){if("string"==typeof e)return c(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?c(e,t):void 0}}function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function s(e){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s(e)}function u(e,t,n){return(t=function(e){var t=function(e){if("object"!=s(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=s(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==s(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var d=50;function f(e,t){var n=i.m.chunk(e,d).map((function(e){return t(i.m.uniq(e))})),a=r.a.useBasicFetchAll(n),o=i.m.flatten(a.data),l=a.data.length?o.reduce((function(e,t){return Object.assign(Object.assign({},e),u({},t.id,t))}),{}):null;return{itemsArr:o,items:l,isFetching:a.isFetching}}function p(e,t,n){var c,f,p,m,v=n||function(e){return"object"===s(e)?e.id:e},y=a.useRef(new Set),b=(p=a.useState([]),m=2,function(e){if(Array.isArray(e))return e}(p)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,i,o,l=[],c=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=i.call(n)).done)&&(l.push(a.value),l.length!==t);c=!0);}catch(e){s=!0,r=e}finally{try{if(!c&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw r}}return l}}(p,m)||l(p,m)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),h=b[0],g=b[1];a.useEffect((function(){if(null==e?void 0:e.length){var n=[];e.forEach((function(e){var t=v(e);y.current.has(t)||(n.push(e),y.current.add(t))})),n.length&&g((function(e){return[].concat(o(e),o(i.m.chunk(n,d).map(t)))}))}}),[null==e?void 0:e.length]);var w=r.a.useBasicFetchAll(h),S=i.m.flatten(w.data),E=w.data.length?S.reduce((function(e,t){return Object.assign(Object.assign({},e),u({},v(t),t))}),{}):null;return{hasFirstRequestCompleted:!!(null===(f=null===(c=w.responses)||void 0===c?void 0:c[0])||void 0===f?void 0:f.hasCompleted),itemsArr:S,items:E,isFetching:w.isFetching}}},30709:(e,t,n)=>{n.d(t,{a:()=>v});var a=n(32735),r=n(15611),i=n(83345),o=n(80247),l=n(57900),c=n(2948),s=n(91693),u=n(38143),d=n(35223);const f={banner:"B7jhq"};function p(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var m="contentUpdates.classificationBanner";function v(e){var t,n,v=e.classification,y=e.backgroundUrl,b=e.followed,h=e.follow,g=e.showFollowSpinner,w=(t=(0,c.D)(u.g.AUDIENCE_FILTER,void 0,{storage:l.Z1.SessionStorage}),n=1,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,i,o,l=[],c=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=i.call(n)).done)&&(l.push(a.value),l.length!==t);c=!0);}catch(e){s=!0,r=e}finally{try{if(!c&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw r}}return l}}(t,n)||function(e,t){if(e){if("string"==typeof e)return p(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?p(e,t):void 0}}(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())[0];return a.createElement("div",{className:"banner mb-2 d-flex justify-content-between align-items-center rounded ".concat(f.banner),style:{backgroundImage:"url('".concat(y,"')")}},a.createElement(r.F,{className:"text-white text-shadow",appLink:e.getClassificationAppLink(v,w)},a.createElement("h2",{className:"h3 mb-0"},v.name)),e.canFollow&&a.createElement(s.h,{className:"btn follow-btn ".concat(b?"btn-outline-dark":"btn-dark"),svgName:b?d.vn.BellFilled:d.vn.Bell,onClick:function(){return h(v.id,v.name,!b)}},g?a.createElement(o.Z,{as:"span",animation:"border",role:"status",size:"sm"}):a.createElement(i.x,{namespace:m,phrase:b?"following":"follow"})))}},79241:(e,t,n)=>{n.r(t),n.d(t,{ContentUpdatesView:()=>$});var a=n(32735),r=n(70680),i=n(23481),o=n(20354),l=n(110),c=n(49985),s=n(65858),u=n(54644),d=n(45781),f=n(15611),p=n(83345),m=n(51365),v=n(16714),y=n(61699),b=n(69883),h=n(39902),g=n(22902),w=n(79612),S=n(38129),E=n(76753),k=n(14070),L=n(97291),C=n(10671),A=n(58321),N=n(86698),O=n(44110),T=n(85369),j=n(97816),P=n(33192),F=n(75100),x=n(54610),U=n(67453),M=n(10741),I=n(30709),V="contentUpdates.contentUpdatesView";function D(e){var t=e.classification,n=e.videos,r=e.showMore,i=e.followed,o=(0,g.T)().hasPermissions;if(!t)return a.createElement(a.Fragment,null);var l=U.j.createBannerUrl(t.banner,{fallbackBaseUrl:e.commonVideoProps.imageCdnUrl,fallbackCategoryName:t.name,type:x.__.Banners},{size:x.h2.Medium,resizeType:x.Nq.Cover});return a.createElement("div",{className:"mb-3"},a.createElement(I.a,{classification:t,backgroundUrl:l,getClassificationAppLink:e.appLinks.getClassificationAppLink,followed:i,follow:e.follow,canFollow:e.canFollow,showFollowSpinner:e.showFollowSpinner}),a.createElement(F.E4,{videos:n,getVideoAppLink:e.appLinks.getVideoAppLink,presentationAudiences:e.audiences,hasPermissions:o,getPreviewQuestionsAppLink:function(e){return M.j.getPreviewQuestionsAppLink(e)},commonVideoProps:e.commonVideoProps}),r&&a.createElement("div",{className:"show-more"},a.createElement(f.F,{className:"info-link",appLink:e.appLinks.getClassificationUpdateAppLink(t)},a.createElement(p.x,{namespace:V,phrase:"showMore",options:{classificationName:t.name}}))))}var B=n(1860);const R={partialBanner:"bxaA6"};function Y(){return a.createElement(a.Fragment,null,Array(4).fill(null).map((function(e,t){return a.createElement("div",{key:t,className:"mb-3"},a.createElement("div",{className:"partial-loading-background mb-2 ".concat(R.partialBanner)}),a.createElement(B.S,null))})))}function Z(e){return Z="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Z(e)}function _(e,t,n){return(t=function(e){var t=function(e){if("object"!=Z(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=Z(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==Z(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function G(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var z=5,H="contentUpdates.contentUpdatesView",W=i.T.encloseNamespace(H);function $(e){var t,n,i,F,x,U,M=(x=a.useState({}),U=2,function(e){if(Array.isArray(e))return e}(x)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,i,o,l=[],c=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=i.call(n)).done)&&(l.push(a.value),l.length!==t);c=!0);}catch(e){s=!0,r=e}finally{try{if(!c&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw r}}return l}}(x,U)||function(e,t){if(e){if("string"==typeof e)return G(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?G(e,t):void 0}}(x,U)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),I=M[0],V=M[1],B=(0,r.I0)(),R=(0,b.Z)(),Z=(0,g.T)().hasPermissions,$=Z(v.C.FollowSubjects),q=new Date,J=l.O.format(l.O.endOf(l.O.subtract(q,1,"year"),"day"),"YYYY-MM-DD"),Q=l.O.format(l.O.endOf(q,"day"),"YYYY-MM-DD"),K=(0,N.y)({redirectOnError:!0}).activePresentation;(0,w.M)(E.CG.getDefaultMetadata({title:null==K?void 0:K.name,phraseContext:{phraseHandler:W,titlePhrase:"pageTitle",descriptionPhrase:"pageDescription"},canonicalLink:P.f.getCanonicalLink(),allowIndexing:P.f.allowIndexing(),hrefLang:P.f.getStaticRouteHrefLang(null==K?void 0:K.learningLevel,(function(){return{application:L.O.CONTENT_UPDATES,action:k.e.ContentUpdates.CONTENT_UPDATES}}))}));var X=u.v.getContentUpdates(null==K?void 0:K.id,J,Q),ee=o.a.useBasicFetch(K&&X),te=o.a.useBasicFetch($&&y.o.mySubjectPreferences()),ne=(0,O.i)(),ae=[],re=[];ee.data&&ee.data.forEach((function(e){ae.push(e.id),re=re.concat(e.videos)}));var ie=(0,h.f)(ae,(function(e){return u.v.getClassifications(e)})).items,oe=(0,C._)({location:C.i.VideoItem});(0,j.V)(re,{flightNamespace:null===(t=X.normalizeOptions)||void 0===t?void 0:t.namespace});var le=(0,A.U)({locationContext:s.LZ.VideoThumbnail,flightNamespace:null===(n=X.normalizeOptions)||void 0===n?void 0:n.namespace}),ce=le.commonVideoProps,se=le.hasCommonVideoPropsCompleted;function ue(e,t,n){V((function(t){return Object.assign(Object.assign({},t),_({},e,!0))}));var a=function(){var a;V((function(t){return Object.assign(Object.assign({},t),_({},e,!1))})),c.k.logUserAction({id:e,name:t},{location:s.LZ.ContentUpdatesClassificationBanner,workflowPhase:s.eu.Complete,descriptor:n?s.DL.On:s.DL.Off,actionType:s.Vw.Follow,entity:s.py.Classification}),R.success(W(n?"followed":"unfollowed",{classification:null===(a=ie[e])||void 0===a?void 0:a.name,escapeText:!0}))},r=function(){V((function(t){return Object.assign(Object.assign({},t),_({},e,!1))})),R.error(W("error"))},i=n?y.o.followSubjects([e],a,r):y.o.unfollowSubjects([e],a,r);o.a.fetch(B,i)}var de=(0,T.N)(),fe=de.showCalendar,pe=de.isLoading,me=!(!ee.hasCompleted||!ne.hasCompleted||$&&!te.hasCompleted||!ie||pe||!se),ve=function(e,t){return e&&t?e.map((function(e){return{showMore:e.videos.length>z,classification:t[e.id],videos:e.videos.slice(0,z).map((function(e){return e.classification=t[e.id],e})).filter((function(e){return e}))}})).filter((function(e){return e.classification})):null}(ee.data,ie),ye=null!==(F=null===(i=te.data)||void 0===i?void 0:i.map((function(e){return e.id})))&&void 0!==F?F:[],be=Z(v.C.ManageSubjectPreferences),he=Z(v.C.ManageVideoAccess);return a.createElement(m.M.Provider,{value:oe},a.createElement("div",{className:"bg-white px-3"},!pe&&a.createElement(d.z,{type:S.Yv.Staff,appLinks:{forYou:e.appLinks.dashboardAppLink,whatsNew:e.appLinks.whatsNewAppLink,calendar:e.appLinks.calendarAppLink},showCalendar:fe,active:"whatsNew"}),a.createElement("h1",null,a.createElement(p.x,{namespace:H,phrase:"heading"})),(be||he)&&a.createElement("p",null,be&&a.createElement(a.Fragment,null,a.createElement(p.x,{namespace:H,phrase:"onlyRelevant"})," ",a.createElement(f.F,{className:"info-link",appLink:{application:L.O.SETTINGS,action:k.e.Settings.TOPIC_PREFERENCES}},a.createElement(p.x,{namespace:H,phrase:"updatePreferences"}))),he&&a.createElement("span",{className:"d-block"},a.createElement(f.F,{className:"info-link",appLink:{application:L.O.SETTINGS,action:k.e.Settings.CONTENT_REVIEW}},a.createElement(p.x,{namespace:H,phrase:"contentReview"})))),me?a.createElement(a.Fragment,null,ve.map((function(t,n){var r,i;return a.createElement(D,{key:n,classification:t.classification,videos:t.videos,showMore:t.showMore,appLinks:e.appLinks,followed:ye.includes(null===(r=t.classification)||void 0===r?void 0:r.id),follow:ue,showFollowSpinner:I[null===(i=t.classification)||void 0===i?void 0:i.id],canFollow:$,audiences:ne.data,commonVideoProps:ce})}))):a.createElement(Y,null)))}},58321:(e,t,n)=>{n.d(t,{U:()=>m});var a=n(20354),r=n(16714),i=n(39151),o=n(1666),l=n(31949),c=n(22902),s=n(37802),u=n(22490),d=n(82431),f=n(46390),p=n(27638);function m(e){var t,n,m,v=e||{},y=v.locationContext,b=v.mtv,h=v.flightNamespace,g=v.sharedPlaylist,w=(0,f.G)().isPlugin,S=(0,p.u)(y,h),E=S.setFavourite,k=S.canFavourite,L=(0,s.r)(null),C=L.hasTopicDirectories,A=L.isLoadingSettings,N=(0,c.T)(),O=N.hasPermissions,T=N.isLoaded,j=O(r.C.StudentExperience),P=a.a.useBasicFetch(i.L.config()),F=a.a.useBasicFetch(l.N.currentUser()),x=a.a.useBasicFetch((null===(t=F.data)||void 0===t?void 0:t.isAuthenticated)&&o.h.yearGroups(F.data.customerId));return{hasCommonVideoPropsCompleted:!A&&T&&P.hasCompleted&&F.hasCompleted&&(!(null===(n=F.data)||void 0===n?void 0:n.isAuthenticated)||x.hasCompleted),commonVideoProps:{subTextType:"series",getSubTextAppLink:function(e){var t;return"series"in e?g&&!(null===(t=F.data)||void 0===t?void 0:t.isAuthenticated)?null:d.j.getSeriesAppLink(e.series,{mtv:b}):null},isPlugin:w,canFavourite:k,setFavourite:E,imageCdnUrl:null===(m=P.data)||void 0===m?void 0:m.imageCdnUrl,yearGroups:x.data,getClassroomGuideAppLink:u.W.getClassroomGuideAppLink,getInteractiveGuidanceAppLink:u.W.getInteractiveGuidanceAppLink,getResourceGuidanceAppLink:u.W.getResourceGuidanceAppLink,showNewVideoIndicator:C,companyLogoFallbackUrl:null,hasStudentExperience:j}}}},44110:(e,t,n)=>{n.d(t,{i:()=>o});var a=n(20354),r=n(89454),i=n(86698),o=function(){var e=(0,i.y)({redirectOnError:!0}),t=e.activePresentation,n=e.getFallbackPresentation,o=t||n();return a.a.useBasicFetch(!!o&&r.O.presentationAudiences(o.id))}},85369:(e,t,n)=>{n.d(t,{N:()=>b});var a=n(32735),r=n(35242),i=n(20354),o=n(27022),l=n(72639),c=n(31949),s=n(37802),u=n(87114),d=n(86698);function f(e){return f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},f(e)}function p(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,i,o,l=[],c=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=i.call(n)).done)&&(l.push(a.value),l.length!==t);c=!0);}catch(e){s=!0,r=e}finally{try{if(!c&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw r}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return m(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?m(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function m(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function v(e,t,n){return(t=function(e){var t=function(e){if("object"!=f(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=f(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==f(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var y=v(v(v(v(v(v({},o.t.AU,[l.p.Level_1]),o.t.US,[l.p.Level_1]),o.t.UK,[l.p.Level_1]),o.t.SCOT,[l.p.Level_1]),o.t.NZ,[]),o.t.GLOBAL,[]);function b(){var e,t=(0,s.r)(null),n=t.hasSpecialEventCalendar,o=t.isLoadingSettings,l=(0,d.y)({redirectOnError:!0}).activePresentation,f=i.a.useBasicFetch(c.N.currentUser()),m=y[null===(e=f.data)||void 0===e?void 0:e.contentRegion],v=u.i.getMappedPresentationLevel(null==l?void 0:l.learningLevel),b=!(null==m?void 0:m.find((function(e){return e.toString()===(null==v?void 0:v.toString())}))),h=!o&&!n,g=p(a.useState(!h&&!b),2),w=g[0],S=g[1],E=p(a.useState(o||!(null==l?void 0:l.id)),2),k=E[0],L=E[1];return a.useEffect((function(){h||b?S(!1):k||S(!0),L(o||!(null==l?void 0:l.id))}),[n,null==l?void 0:l.id,k]),r.h.isDevelopment?{showCalendar:!0,isLoading:!1}:{showCalendar:w,isLoading:k}}},97816:(e,t,n)=>{n.d(t,{V:()=>o});var a=n(1575),r=n(39902),i=n(31908);function o(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=function(e){return e?Array.isArray(e)?e.filter((function(e){return!!e&&(i.M.isVideo(e)||i.M.isClip(e))})):"data"in e?e.data.filter((function(e){return!!e&&(i.M.isVideo(e)||i.M.isClip(e))})):[]:[]}(e).map((function(e){return e.id}));(0,r.F)(n,(function(e){return a.R.videoMixinAssocs(e,t.flightNamespace)}))}},22771:(e,t,n)=>{n.d(t,{Z:()=>a});const a={pillTabSelector:"Hdi6o",tab:"RvNxr",minWidth:"GHSz9",radiusSmall:"VhJJa",tabLink:"WFyvo"}}}]);
2
- //# sourceMappingURL=9241-dbac9cb9f9-lite.chunk.js.map
1
+ "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[9241],{45781:(e,t,n)=>{n.d(t,{z:()=>p});var a=n(32735),r=n(39202),i=n(23481),o=n(65858),l=n(38502),c=n(83345),s=n(38129);const u={pillTab:"bMJM0"};var d="discover.header";function p(e){var t,n,p,f,m,v;if(!e.type)return a.createElement(a.Fragment,null);if(e.type===s.Yv.Learner||e.hasStudentExperience)return a.createElement("div",{className:"py-3"},a.createElement("h1",{className:"h2 mb-0"},a.createElement(c.x,{namespace:d,phrase:"heading"})));var y=[{name:i.T.getPhrase(d,"forYou"),appLink:null===(t=e.appLinks)||void 0===t?void 0:t.forYou,active:"forYou"===e.active,analyticsData:{name:i.T.getPhrase(d,"forYou"),url:r.C$.getHref(null===(n=e.appLinks)||void 0===n?void 0:n.forYou)},analyticsOptions:{actionType:o.Vw.Click,entity:o.py.Url,location:o.LZ.MagicTabs}},{name:i.T.getPhrase(d,"whatsNew"),appLink:null===(p=e.appLinks)||void 0===p?void 0:p.whatsNew,active:"whatsNew"===e.active,analyticsData:{name:i.T.getPhrase(d,"whatsNew"),url:r.C$.getHref(null===(f=e.appLinks)||void 0===f?void 0:f.whatsNew)},analyticsOptions:{actionType:o.Vw.Click,entity:o.py.Url,location:o.LZ.MagicTabs}}];return e.showCalendar&&y.push({name:i.T.getPhrase(d,"calendar"),appLink:null===(m=e.appLinks)||void 0===m?void 0:m.calendar,active:"calendar"===e.active,analyticsData:{name:i.T.getPhrase(d,"calendar"),url:r.C$.getHref(null===(v=e.appLinks)||void 0===v?void 0:v.calendar)},analyticsOptions:{actionType:o.Vw.Click,entity:o.py.Url,location:o.LZ.MagicTabs}}),a.createElement("div",{className:"py-3 text-center mx-n3"},a.createElement(l.r,{tabs:y,className:u.pillTab}))}},38502:(e,t,n)=>{n.d(t,{r:()=>d});var a=n(32735),r=n(49985),i=n(15611),o=n(18559),l=n(11607),c=n(83914),s=n(22771);function u(e){return a.createElement(a.Fragment,null,!!e.tab.svgName&&a.createElement("div",{className:e.tab.name?"pe-1":""},a.createElement(c.x,{svgName:e.tab.svgName})),e.tab.name,"number"==typeof e.tab.count&&a.createElement("div",{className:"ps-2"},a.createElement(o.C,{type:o.g.Count,data:e.tab.count})))}function d(e){var t;return a.createElement("nav",{className:null!==(t=e.className)&&void 0!==t?t:"",ref:e.containerRef},a.createElement("ul",{className:"\n list-unstyled d-inline-block m-0 ".concat(s.Z.pillTabSelector,"\n ").concat(e.borderRadius?s.Z.radiusSmall:"","\n ").concat(e.listClassName,"\n ")},e.tabs.map((function(e,t){return a.createElement("li",{className:"\n p-0 ".concat(s.Z.tab," ").concat(e.active?"btn btn-dark":"btn btn-outline-dark","\n ").concat(e.name?s.Z.minWidth:""," ").concat(e.className,"\n "),key:t},e.appLink?a.createElement(i.F,{appLink:e.appLink,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,className:"\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ".concat(s.Z.tabLink,"\n ")},a.createElement(u,{tab:e})):a.createElement(l.L,{className:"\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ".concat(s.Z.tabLink,"\n "),onClick:function(){return function(e){!e.active&&e.onSelect&&(e.onSelect(),e.analyticsData&&e.analyticsOptions&&r.k.logUserAction(e.analyticsData,e.analyticsOptions))}(e)}},a.createElement(u,{tab:e})))}))))}d.defaultProps={borderRadius:"lg"}},39902:(e,t,n)=>{n.d(t,{F:()=>f,f:()=>p});var a=n(32735),r=n(20354),i=n(75896);function o(e){return function(e){if(Array.isArray(e))return c(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||l(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(e,t){if(e){if("string"==typeof e)return c(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?c(e,t):void 0}}function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function s(e){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s(e)}function u(e,t,n){return(t=function(e){var t=function(e){if("object"!=s(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=s(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==s(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var d=50;function p(e,t){var n=i.m.chunk(e,d).map((function(e){return t(i.m.uniq(e))})),a=r.a.useBasicFetchAll(n),o=i.m.flatten(a.data),l=a.data.length?o.reduce((function(e,t){return Object.assign(Object.assign({},e),u({},t.id,t))}),{}):null;return{itemsArr:o,items:l,isFetching:a.isFetching}}function f(e,t,n){var c,p,f,m,v=n||function(e){return"object"===s(e)?e.id:e},y=a.useRef(new Set),b=(f=a.useState([]),m=2,function(e){if(Array.isArray(e))return e}(f)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,i,o,l=[],c=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=i.call(n)).done)&&(l.push(a.value),l.length!==t);c=!0);}catch(e){s=!0,r=e}finally{try{if(!c&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw r}}return l}}(f,m)||l(f,m)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),h=b[0],g=b[1];a.useEffect((function(){if(null==e?void 0:e.length){var n=[];e.forEach((function(e){var t=v(e);y.current.has(t)||(n.push(e),y.current.add(t))})),n.length&&g((function(e){return[].concat(o(e),o(i.m.chunk(n,d).map(t)))}))}}),[null==e?void 0:e.length]);var w=r.a.useBasicFetchAll(h),S=i.m.flatten(w.data),E=w.data.length?S.reduce((function(e,t){return Object.assign(Object.assign({},e),u({},v(t),t))}),{}):null;return{hasFirstRequestCompleted:!!(null===(p=null===(c=w.responses)||void 0===c?void 0:c[0])||void 0===p?void 0:p.hasCompleted),itemsArr:S,items:E,isFetching:w.isFetching}}},30709:(e,t,n)=>{n.d(t,{a:()=>v});var a=n(32735),r=n(15611),i=n(83345),o=n(80247),l=n(57900),c=n(2948),s=n(91693),u=n(38143),d=n(35223);const p={banner:"B7jhq"};function f(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var m="contentUpdates.classificationBanner";function v(e){var t,n,v=e.classification,y=e.backgroundUrl,b=e.followed,h=e.follow,g=e.showFollowSpinner,w=(t=(0,c.D)(u.g.AUDIENCE_FILTER,void 0,{storage:l.Z1.SessionStorage}),n=1,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,i,o,l=[],c=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=i.call(n)).done)&&(l.push(a.value),l.length!==t);c=!0);}catch(e){s=!0,r=e}finally{try{if(!c&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw r}}return l}}(t,n)||function(e,t){if(e){if("string"==typeof e)return f(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?f(e,t):void 0}}(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())[0];return a.createElement("div",{className:"banner mb-2 d-flex justify-content-between align-items-center rounded ".concat(p.banner),style:{backgroundImage:"url('".concat(y,"')")}},a.createElement(r.F,{className:"text-white text-shadow",appLink:e.getClassificationAppLink(v,w)},a.createElement("h2",{className:"h3 mb-0"},v.name)),e.canFollow&&a.createElement(s.h,{className:"btn follow-btn ".concat(b?"btn-outline-dark":"btn-dark"),svgName:b?d.vn.BellFilled:d.vn.Bell,onClick:function(){return h(v.id,v.name,!b)}},g?a.createElement(o.Z,{as:"span",animation:"border",role:"status",size:"sm"}):a.createElement(i.x,{namespace:m,phrase:b?"following":"follow"})))}},79241:(e,t,n)=>{n.r(t),n.d(t,{ContentUpdatesView:()=>$});var a=n(32735),r=n(70680),i=n(23481),o=n(20354),l=n(110),c=n(49985),s=n(65858),u=n(54644),d=n(45781),p=n(15611),f=n(83345),m=n(51365),v=n(16714),y=n(61699),b=n(69883),h=n(39902),g=n(22902),w=n(79612),S=n(38129),E=n(76753),k=n(14070),L=n(97291),C=n(10671),A=n(58321),N=n(86698),O=n(44110),T=n(85369),P=n(97816),j=n(33192),F=n(75100),x=n(54610),U=n(67453),M=n(10741),I=n(30709),V="contentUpdates.contentUpdatesView";function D(e){var t=e.classification,n=e.videos,r=e.showMore,i=e.followed,o=(0,g.T)().hasPermissions;if(!t)return a.createElement(a.Fragment,null);var l=U.j.createBannerUrl(t.banner,{fallbackBaseUrl:e.commonVideoProps.imageCdnUrl,fallbackCategoryName:t.name,type:x.__.Banners},{size:x.h2.Medium,resizeType:x.Nq.Cover});return a.createElement("div",{className:"mb-3"},a.createElement(I.a,{classification:t,backgroundUrl:l,getClassificationAppLink:e.appLinks.getClassificationAppLink,followed:i,follow:e.follow,canFollow:e.canFollow,showFollowSpinner:e.showFollowSpinner}),a.createElement(F.E4,{videos:n,getVideoAppLink:e.appLinks.getVideoAppLink,presentationAudiences:e.audiences,hasPermissions:o,getPreviewQuestionsAppLink:function(e){return M.j.getPreviewQuestionsAppLink(e)},commonVideoProps:e.commonVideoProps}),r&&a.createElement("div",{className:"show-more"},a.createElement(p.F,{className:"info-link",appLink:e.appLinks.getClassificationUpdateAppLink(t)},a.createElement(f.x,{namespace:V,phrase:"showMore",options:{classificationName:t.name}}))))}var B=n(1860);const R={partialBanner:"bxaA6"};function Y(){return a.createElement(a.Fragment,null,Array(4).fill(null).map((function(e,t){return a.createElement("div",{key:t,className:"mb-3"},a.createElement("div",{className:"partial-loading-background mb-2 ".concat(R.partialBanner)}),a.createElement(B.S,null))})))}function Z(e){return Z="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Z(e)}function _(e,t,n){return(t=function(e){var t=function(e){if("object"!=Z(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=Z(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==Z(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function G(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var z=5,H="contentUpdates.contentUpdatesView",W=i.T.encloseNamespace(H);function $(e){var t,n,i,F,x,U,M=(x=a.useState({}),U=2,function(e){if(Array.isArray(e))return e}(x)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,i,o,l=[],c=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=i.call(n)).done)&&(l.push(a.value),l.length!==t);c=!0);}catch(e){s=!0,r=e}finally{try{if(!c&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw r}}return l}}(x,U)||function(e,t){if(e){if("string"==typeof e)return G(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?G(e,t):void 0}}(x,U)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),I=M[0],V=M[1],B=(0,r.I0)(),R=(0,b.Z)(),Z=(0,g.T)().hasPermissions,$=Z(v.C.FollowSubjects),q=new Date,J=l.O.format(l.O.endOf(l.O.subtract(q,1,"year"),"day"),"YYYY-MM-DD"),Q=l.O.format(l.O.endOf(q,"day"),"YYYY-MM-DD"),K=(0,N.y)({redirectOnError:!0}).activePresentation;(0,w.M)(E.CG.getDefaultMetadata({title:null==K?void 0:K.name,phraseContext:{phraseHandler:W,titlePhrase:"pageTitle",descriptionPhrase:"pageDescription"},canonicalLink:j.f.getCanonicalLink(),allowIndexing:j.f.allowIndexing(),hrefLang:j.f.getStaticRouteHrefLang(null==K?void 0:K.learningLevel,(function(){return{application:L.O.CONTENT_UPDATES,action:k.e.ContentUpdates.CONTENT_UPDATES}}))}));var X=u.v.getContentUpdates(null==K?void 0:K.id,J,Q),ee=o.a.useBasicFetch(K&&X),te=o.a.useBasicFetch($&&y.o.mySubjectPreferences()),ne=(0,O.i)(),ae=[],re=[];ee.data&&ee.data.forEach((function(e){ae.push(e.id),re=re.concat(e.videos)}));var ie=(0,h.f)(ae,(function(e){return u.v.getClassifications(e)})).items,oe=(0,C._)({location:C.i.VideoItem});(0,P.V)(re,{flightNamespace:null===(t=X.normalizeOptions)||void 0===t?void 0:t.namespace});var le=(0,A.U)({locationContext:s.LZ.VideoThumbnail,flightNamespace:null===(n=X.normalizeOptions)||void 0===n?void 0:n.namespace}),ce=le.commonVideoProps,se=le.hasCommonVideoPropsCompleted;function ue(e,t,n){V((function(t){return Object.assign(Object.assign({},t),_({},e,!0))}));var a=function(){var a;V((function(t){return Object.assign(Object.assign({},t),_({},e,!1))})),c.k.logUserAction({id:e,name:t},{location:s.LZ.ContentUpdatesClassificationBanner,workflowPhase:s.eu.Complete,descriptor:n?s.DL.On:s.DL.Off,actionType:s.Vw.Follow,entity:s.py.Classification}),R.success(W(n?"followed":"unfollowed",{classification:null===(a=ie[e])||void 0===a?void 0:a.name,escapeText:!0}))},r=function(){V((function(t){return Object.assign(Object.assign({},t),_({},e,!1))})),R.error(W("error"))},i=n?y.o.followSubjects([e],a,r):y.o.unfollowSubjects([e],a,r);o.a.fetch(B,i)}var de=(0,T.N)(),pe=de.showCalendar,fe=de.isLoading,me=!(!ee.hasCompleted||!ne.hasCompleted||$&&!te.hasCompleted||!ie||fe||!se),ve=function(e,t){return e&&t?e.map((function(e){return{showMore:e.videos.length>z,classification:t[e.id],videos:e.videos.slice(0,z).map((function(e){return e.classification=t[e.id],e})).filter((function(e){return e}))}})).filter((function(e){return e.classification})):null}(ee.data,ie),ye=null!==(F=null===(i=te.data)||void 0===i?void 0:i.map((function(e){return e.id})))&&void 0!==F?F:[],be=Z(v.C.ManageSubjectPreferences),he=Z(v.C.ManageVideoAccess);return a.createElement(m.M.Provider,{value:oe},a.createElement("div",{className:"bg-white px-3"},!fe&&a.createElement(d.z,{type:S.Yv.Staff,appLinks:{forYou:e.appLinks.dashboardAppLink,whatsNew:e.appLinks.whatsNewAppLink,calendar:e.appLinks.calendarAppLink},showCalendar:pe,active:"whatsNew"}),a.createElement("h1",null,a.createElement(f.x,{namespace:H,phrase:"heading"})),(be||he)&&a.createElement("p",null,be&&a.createElement(a.Fragment,null,a.createElement(f.x,{namespace:H,phrase:"onlyRelevant"})," ",a.createElement(p.F,{className:"info-link",appLink:{application:L.O.SETTINGS,action:k.e.Settings.TOPIC_PREFERENCES}},a.createElement(f.x,{namespace:H,phrase:"updatePreferences"}))),he&&a.createElement("span",{className:"d-block"},a.createElement(p.F,{className:"info-link",appLink:{application:L.O.SETTINGS,action:k.e.Settings.CONTENT_REVIEW}},a.createElement(f.x,{namespace:H,phrase:"contentReview"})))),me?a.createElement(a.Fragment,null,ve.map((function(t,n){var r,i;return a.createElement(D,{key:n,classification:t.classification,videos:t.videos,showMore:t.showMore,appLinks:e.appLinks,followed:ye.includes(null===(r=t.classification)||void 0===r?void 0:r.id),follow:ue,showFollowSpinner:I[null===(i=t.classification)||void 0===i?void 0:i.id],canFollow:$,audiences:ne.data,commonVideoProps:ce})}))):a.createElement(Y,null)))}},58321:(e,t,n)=>{n.d(t,{U:()=>m});var a=n(20354),r=n(16714),i=n(39151),o=n(1666),l=n(31949),c=n(22902),s=n(37802),u=n(22490),d=n(82431),p=n(46390),f=n(27638);function m(e){var t,n,m,v=e||{},y=v.locationContext,b=v.mtv,h=v.flightNamespace,g=v.sharedPlaylist,w=(0,p.G)(),S=w.isPlugin,E=w.params,k=(0,f.u)(y,h),L=k.setFavourite,C=k.canFavourite,A=(0,s.r)(null),N=A.hasTopicDirectories,O=A.isLoadingSettings,T=(0,c.T)(),P=T.hasPermissions,j=T.isLoaded,F=P(r.C.StudentExperience),x=a.a.useBasicFetch(i.L.config()),U=a.a.useBasicFetch(l.N.currentUser()),M=a.a.useBasicFetch((null===(t=U.data)||void 0===t?void 0:t.isAuthenticated)&&o.h.yearGroups(U.data.customerId));return{hasCommonVideoPropsCompleted:!O&&j&&x.hasCompleted&&U.hasCompleted&&(!(null===(n=U.data)||void 0===n?void 0:n.isAuthenticated)||M.hasCompleted),commonVideoProps:{subTextType:"series",getSubTextAppLink:function(e){var t;return"series"in e?g&&!(null===(t=U.data)||void 0===t?void 0:t.isAuthenticated)?null:d.j.getSeriesAppLink(e.series,{mtv:b}):null},isPlugin:S,isPluginPopup:!!(null==E?void 0:E.popup),canFavourite:C,setFavourite:L,imageCdnUrl:null===(m=x.data)||void 0===m?void 0:m.imageCdnUrl,yearGroups:M.data,getClassroomGuideAppLink:u.W.getClassroomGuideAppLink,getInteractiveGuidanceAppLink:u.W.getInteractiveGuidanceAppLink,getResourceGuidanceAppLink:u.W.getResourceGuidanceAppLink,showNewVideoIndicator:N,companyLogoFallbackUrl:null,hasStudentExperience:F}}}},44110:(e,t,n)=>{n.d(t,{i:()=>o});var a=n(20354),r=n(89454),i=n(86698),o=function(){var e=(0,i.y)({redirectOnError:!0}),t=e.activePresentation,n=e.getFallbackPresentation,o=t||n();return a.a.useBasicFetch(!!o&&r.O.presentationAudiences(o.id))}},85369:(e,t,n)=>{n.d(t,{N:()=>b});var a=n(32735),r=n(35242),i=n(20354),o=n(27022),l=n(72639),c=n(31949),s=n(37802),u=n(87114),d=n(86698);function p(e){return p="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},p(e)}function f(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,i,o,l=[],c=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=i.call(n)).done)&&(l.push(a.value),l.length!==t);c=!0);}catch(e){s=!0,r=e}finally{try{if(!c&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw r}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return m(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?m(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function m(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function v(e,t,n){return(t=function(e){var t=function(e){if("object"!=p(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=p(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==p(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var y=v(v(v(v(v(v({},o.t.AU,[l.p.Level_1]),o.t.US,[l.p.Level_1]),o.t.UK,[l.p.Level_1]),o.t.SCOT,[l.p.Level_1]),o.t.NZ,[]),o.t.GLOBAL,[]);function b(){var e,t=(0,s.r)(null),n=t.hasSpecialEventCalendar,o=t.isLoadingSettings,l=(0,d.y)({redirectOnError:!0}).activePresentation,p=i.a.useBasicFetch(c.N.currentUser()),m=y[null===(e=p.data)||void 0===e?void 0:e.contentRegion],v=u.i.getMappedPresentationLevel(null==l?void 0:l.learningLevel),b=!(null==m?void 0:m.find((function(e){return e.toString()===(null==v?void 0:v.toString())}))),h=!o&&!n,g=f(a.useState(!h&&!b),2),w=g[0],S=g[1],E=f(a.useState(o||!(null==l?void 0:l.id)),2),k=E[0],L=E[1];return a.useEffect((function(){h||b?S(!1):k||S(!0),L(o||!(null==l?void 0:l.id))}),[n,null==l?void 0:l.id,k]),r.h.isDevelopment?{showCalendar:!0,isLoading:!1}:{showCalendar:w,isLoading:k}}},97816:(e,t,n)=>{n.d(t,{V:()=>o});var a=n(1575),r=n(39902),i=n(31908);function o(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=function(e){return e?Array.isArray(e)?e.filter((function(e){return!!e&&(i.M.isVideo(e)||i.M.isClip(e))})):"data"in e?e.data.filter((function(e){return!!e&&(i.M.isVideo(e)||i.M.isClip(e))})):[]:[]}(e).map((function(e){return e.id}));(0,r.F)(n,(function(e){return a.R.videoMixinAssocs(e,t.flightNamespace)}))}},22771:(e,t,n)=>{n.d(t,{Z:()=>a});const a={pillTabSelector:"Hdi6o",tab:"RvNxr",minWidth:"GHSz9",radiusSmall:"VhJJa",tabLink:"WFyvo"}}}]);
2
+ //# sourceMappingURL=9241-2386134dd3-lite.chunk.js.map