@clickview/lite 0.53.4 → 0.53.6-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 (188) hide show
  1. package/dist/bundles.json +1 -1
  2. package/dist/css/{6094-lite-bcd14ea6d2.chunk.css → 1019-lite-bbcf2bff27.chunk.css} +3 -2
  3. package/dist/css/{1329-lite-be86e46c78.chunk.css → 1329-lite-458183b24f.chunk.css} +2 -2
  4. package/dist/css/{1838-lite-e6a28b84ed.chunk.css → 1838-lite-981a5e0783.chunk.css} +1 -1
  5. package/dist/css/{1760-lite-bcd14ea6d2.chunk.css → 2548-lite-bbcf2bff27.chunk.css} +3 -2
  6. package/dist/css/{3969-lite-29e14c7861.chunk.css → 3969-lite-ed58852d97.chunk.css} +2 -2
  7. package/dist/css/{422-lite-dace5f41de.chunk.css → 422-lite-b8c1fd1dee.chunk.css} +1 -1
  8. package/dist/css/{4502-lite-92be6697e7.chunk.css → 4502-lite-eaf1a1113c.chunk.css} +1 -1
  9. package/dist/css/{5220-lite-9832e2c2fb.chunk.css → 5220-lite-8a8d5d035f.chunk.css} +1 -1
  10. package/dist/css/{537-lite-56a3fc7e48.chunk.css → 537-lite-4de4c47713.chunk.css} +1 -1
  11. package/dist/css/{6489-lite-9045df4bb9.chunk.css → 6489-lite-e271aaed2d.chunk.css} +1 -1
  12. package/dist/css/{6544-lite-d46c2d634c.chunk.css → 6544-lite-319ed51ccc.chunk.css} +1 -1
  13. package/dist/css/{5549-lite-97ed26d0aa.chunk.css → 6596-lite-bb28584922.chunk.css} +2 -1
  14. package/dist/css/{841-lite-27b6485cd1.chunk.css → 841-lite-46ef623835.chunk.css} +1 -1
  15. package/dist/css/{8522-lite-2f2797038e.chunk.css → 8522-lite-f100606ec5.chunk.css} +1 -1
  16. package/dist/css/{8801-lite-c88eb54bee.chunk.css → 8801-lite-d34200ab29.chunk.css} +2 -2
  17. package/dist/css/{3640-lite-97ed26d0aa.chunk.css → 9010-lite-bb28584922.chunk.css} +2 -1
  18. package/dist/languages/en.json +1 -1
  19. package/dist/scripts/{1760-8d51aa0b08-lite.chunk.js → 1019-8f977b5095-lite.chunk.js} +2 -2
  20. package/dist/scripts/{1760-8d51aa0b08-lite.chunk.js.map → 1019-8f977b5095-lite.chunk.js.map} +1 -1
  21. package/dist/scripts/1080-509aa6e738-lite.chunk.js +2 -0
  22. package/dist/scripts/1080-509aa6e738-lite.chunk.js.map +1 -0
  23. package/dist/scripts/1169-e64f0dbd67-lite.chunk.js +2 -0
  24. package/dist/scripts/1169-e64f0dbd67-lite.chunk.js.map +1 -0
  25. package/dist/scripts/1329-bdbbf6c7fd-lite.chunk.js +3 -0
  26. package/dist/scripts/1329-bdbbf6c7fd-lite.chunk.js.map +1 -0
  27. package/dist/scripts/{1379-976d20185f-lite.chunk.js → 1379-ca519ec56b-lite.chunk.js} +3 -3
  28. package/dist/scripts/{1379-976d20185f-lite.chunk.js.map → 1379-ca519ec56b-lite.chunk.js.map} +1 -1
  29. package/dist/scripts/1518-4f76dbeee8-lite.chunk.js +2 -0
  30. package/dist/scripts/1518-4f76dbeee8-lite.chunk.js.map +1 -0
  31. package/dist/scripts/{1838-87fb96ee2c-lite.chunk.js → 1838-95081e8dea-lite.chunk.js} +1 -1
  32. package/dist/scripts/{1838-87fb96ee2c-lite.chunk.js.map → 1838-95081e8dea-lite.chunk.js.map} +1 -1
  33. package/dist/scripts/184-6ce393c251-lite.chunk.js +2 -0
  34. package/dist/scripts/184-6ce393c251-lite.chunk.js.map +1 -0
  35. package/dist/scripts/{2004-3005565af0-lite.chunk.js → 2004-e20d72976c-lite.chunk.js} +3 -3
  36. package/dist/scripts/{2004-3005565af0-lite.chunk.js.map → 2004-e20d72976c-lite.chunk.js.map} +1 -1
  37. package/dist/scripts/{2094-58390aa60a-lite.chunk.js → 2094-a16bbca3a3-lite.chunk.js} +2 -2
  38. package/dist/scripts/2094-a16bbca3a3-lite.chunk.js.map +1 -0
  39. package/dist/scripts/2142-c46ca4050f-lite.chunk.js +2 -0
  40. package/dist/scripts/2142-c46ca4050f-lite.chunk.js.map +1 -0
  41. package/dist/scripts/2199-be40da7440-lite.chunk.js +2 -0
  42. package/dist/scripts/2199-be40da7440-lite.chunk.js.map +1 -0
  43. package/dist/scripts/2548-c48b8d3e3c-lite.chunk.js +2 -0
  44. package/dist/scripts/2548-c48b8d3e3c-lite.chunk.js.map +1 -0
  45. package/dist/scripts/3969-6d7c342d0c-lite.chunk.js +2 -0
  46. package/dist/scripts/3969-6d7c342d0c-lite.chunk.js.map +1 -0
  47. package/dist/scripts/3999-317a4538c6-lite.chunk.js +3 -0
  48. package/dist/scripts/3999-317a4538c6-lite.chunk.js.map +1 -0
  49. package/dist/scripts/{422-ee640f76c5-lite.chunk.js → 422-a63a7eb901-lite.chunk.js} +1 -1
  50. package/dist/scripts/{422-ee640f76c5-lite.chunk.js.map → 422-a63a7eb901-lite.chunk.js.map} +1 -1
  51. package/dist/scripts/{4502-af4903784e-lite.chunk.js → 4502-a7d60fa257-lite.chunk.js} +1 -1
  52. package/dist/scripts/{4502-af4903784e-lite.chunk.js.map → 4502-a7d60fa257-lite.chunk.js.map} +1 -1
  53. package/dist/scripts/{4554-c0d7490a46-lite.chunk.js → 4554-b9aa07891f-lite.chunk.js} +2 -2
  54. package/dist/scripts/4554-b9aa07891f-lite.chunk.js.map +1 -0
  55. package/dist/scripts/{4591-379f0fe588-lite.chunk.js → 4591-21c0094f28-lite.chunk.js} +2 -2
  56. package/dist/scripts/{4591-379f0fe588-lite.chunk.js.map → 4591-21c0094f28-lite.chunk.js.map} +1 -1
  57. package/dist/scripts/{4683-ce52da47d8-lite.chunk.js → 4683-d3afe2dfa8-lite.chunk.js} +2 -2
  58. package/dist/scripts/4683-d3afe2dfa8-lite.chunk.js.map +1 -0
  59. package/dist/scripts/5220-291b2243ad-lite.chunk.js +3 -0
  60. package/dist/scripts/5220-291b2243ad-lite.chunk.js.map +1 -0
  61. package/dist/scripts/537-6efb9bc099-lite.chunk.js +3 -0
  62. package/dist/scripts/537-6efb9bc099-lite.chunk.js.map +1 -0
  63. package/dist/scripts/5660-6711768c20-lite.chunk.js +2 -0
  64. package/dist/scripts/5660-6711768c20-lite.chunk.js.map +1 -0
  65. package/dist/scripts/5936-e839cb8193-lite.chunk.js +2 -0
  66. package/dist/scripts/5936-e839cb8193-lite.chunk.js.map +1 -0
  67. package/dist/scripts/{624-bf0ff6257f-lite.chunk.js → 624-09b51a9d32-lite.chunk.js} +3 -3
  68. package/dist/scripts/{624-bf0ff6257f-lite.chunk.js.map → 624-09b51a9d32-lite.chunk.js.map} +1 -1
  69. package/dist/scripts/6450-f16821bf09-lite.chunk.js +2 -0
  70. package/dist/scripts/6450-f16821bf09-lite.chunk.js.map +1 -0
  71. package/dist/scripts/6489-c242844567-lite.chunk.js +3 -0
  72. package/dist/scripts/6489-c242844567-lite.chunk.js.map +1 -0
  73. package/dist/scripts/6544-07898e3fa3-lite.chunk.js +2 -0
  74. package/dist/scripts/6544-07898e3fa3-lite.chunk.js.map +1 -0
  75. package/dist/scripts/6596-848fbf79bb-lite.chunk.js +2 -0
  76. package/dist/scripts/6596-848fbf79bb-lite.chunk.js.map +1 -0
  77. package/dist/scripts/{6741-1c125dbc6c-lite.chunk.js → 6741-fe09fea334-lite.chunk.js} +3 -3
  78. package/dist/scripts/{6741-1c125dbc6c-lite.chunk.js.map → 6741-fe09fea334-lite.chunk.js.map} +1 -1
  79. package/dist/scripts/6752-0d139a6c9a-lite.chunk.js +2 -0
  80. package/dist/scripts/6752-0d139a6c9a-lite.chunk.js.map +1 -0
  81. package/dist/scripts/696-fa78eb455f-lite.chunk.js +2 -0
  82. package/dist/scripts/696-fa78eb455f-lite.chunk.js.map +1 -0
  83. package/dist/scripts/{7234-ef6ab1e557-lite.chunk.js → 7234-d15fe07f0e-lite.chunk.js} +2 -2
  84. package/dist/scripts/{7234-ef6ab1e557-lite.chunk.js.map → 7234-d15fe07f0e-lite.chunk.js.map} +1 -1
  85. package/dist/scripts/729-594be12089-lite.chunk.js +2 -0
  86. package/dist/scripts/729-594be12089-lite.chunk.js.map +1 -0
  87. package/dist/scripts/{7293-3e6ad36a7a-lite.chunk.js → 7293-35871fc150-lite.chunk.js} +2 -2
  88. package/dist/scripts/7293-35871fc150-lite.chunk.js.map +1 -0
  89. package/dist/scripts/{8192-e2d9a26cc5-lite.chunk.js → 8192-eb7054ccc6-lite.chunk.js} +2 -2
  90. package/dist/scripts/{8192-e2d9a26cc5-lite.chunk.js.map → 8192-eb7054ccc6-lite.chunk.js.map} +1 -1
  91. package/dist/scripts/841-11af1334bf-lite.chunk.js +3 -0
  92. package/dist/scripts/841-11af1334bf-lite.chunk.js.map +1 -0
  93. package/dist/scripts/{8522-b4b217640c-lite.chunk.js → 8522-8e9c576bf6-lite.chunk.js} +1 -1
  94. package/dist/scripts/{8522-b4b217640c-lite.chunk.js.map → 8522-8e9c576bf6-lite.chunk.js.map} +1 -1
  95. package/dist/scripts/8801-3a7652eb35-lite.chunk.js +2 -0
  96. package/dist/scripts/8801-3a7652eb35-lite.chunk.js.map +1 -0
  97. package/dist/scripts/9010-ef7ea501ee-lite.chunk.js +2 -0
  98. package/dist/scripts/9010-ef7ea501ee-lite.chunk.js.map +1 -0
  99. package/dist/scripts/9139-22fb64f542-lite.chunk.js +2 -0
  100. package/dist/scripts/9139-22fb64f542-lite.chunk.js.map +1 -0
  101. package/dist/scripts/9173-e45847aa35-lite.chunk.js +2 -0
  102. package/dist/scripts/9173-e45847aa35-lite.chunk.js.map +1 -0
  103. package/dist/scripts/{9395-e9b5cdbdce-lite.chunk.js → 9395-e1a02b01ce-lite.chunk.js} +3 -3
  104. package/dist/scripts/{9395-e9b5cdbdce-lite.chunk.js.map → 9395-e1a02b01ce-lite.chunk.js.map} +1 -1
  105. package/dist/scripts/{9478-abfa7ed3cc-lite.chunk.js → 9478-13da35c4ee-lite.chunk.js} +3 -3
  106. package/dist/scripts/{9478-abfa7ed3cc-lite.chunk.js.map → 9478-13da35c4ee-lite.chunk.js.map} +1 -1
  107. package/dist/scripts/{953-bf3d621a33-lite.chunk.js → 953-225db845ab-lite.chunk.js} +3 -3
  108. package/dist/scripts/{953-bf3d621a33-lite.chunk.js.map → 953-225db845ab-lite.chunk.js.map} +1 -1
  109. package/dist/scripts/{9899-68b030d4e2-lite.chunk.js → 9899-fa58471776-lite.chunk.js} +2 -2
  110. package/dist/scripts/{9899-68b030d4e2-lite.chunk.js.map → 9899-fa58471776-lite.chunk.js.map} +1 -1
  111. package/dist/scripts/bundle-7f9a9b650d.min.js +3 -0
  112. package/dist/scripts/bundle-7f9a9b650d.min.js.map +1 -0
  113. package/package.json +1 -1
  114. package/dist/scripts/1080-4173ce26bd-lite.chunk.js +0 -2
  115. package/dist/scripts/1080-4173ce26bd-lite.chunk.js.map +0 -1
  116. package/dist/scripts/1169-d090f0a147-lite.chunk.js +0 -2
  117. package/dist/scripts/1169-d090f0a147-lite.chunk.js.map +0 -1
  118. package/dist/scripts/1329-d48379c043-lite.chunk.js +0 -3
  119. package/dist/scripts/1329-d48379c043-lite.chunk.js.map +0 -1
  120. package/dist/scripts/1518-9756fde01e-lite.chunk.js +0 -2
  121. package/dist/scripts/1518-9756fde01e-lite.chunk.js.map +0 -1
  122. package/dist/scripts/184-ee581fa2e0-lite.chunk.js +0 -2
  123. package/dist/scripts/184-ee581fa2e0-lite.chunk.js.map +0 -1
  124. package/dist/scripts/2094-58390aa60a-lite.chunk.js.map +0 -1
  125. package/dist/scripts/2199-476ac5922f-lite.chunk.js +0 -2
  126. package/dist/scripts/2199-476ac5922f-lite.chunk.js.map +0 -1
  127. package/dist/scripts/3640-1ac0a110f4-lite.chunk.js +0 -2
  128. package/dist/scripts/3640-1ac0a110f4-lite.chunk.js.map +0 -1
  129. package/dist/scripts/3969-c0160d0139-lite.chunk.js +0 -2
  130. package/dist/scripts/3969-c0160d0139-lite.chunk.js.map +0 -1
  131. package/dist/scripts/4063-786732e7b0-lite.chunk.js +0 -2
  132. package/dist/scripts/4063-786732e7b0-lite.chunk.js.map +0 -1
  133. package/dist/scripts/4273-de24896b28-lite.chunk.js +0 -3
  134. package/dist/scripts/4273-de24896b28-lite.chunk.js.map +0 -1
  135. package/dist/scripts/4554-c0d7490a46-lite.chunk.js.map +0 -1
  136. package/dist/scripts/4683-ce52da47d8-lite.chunk.js.map +0 -1
  137. package/dist/scripts/4850-5ddd277550-lite.chunk.js +0 -2
  138. package/dist/scripts/4850-5ddd277550-lite.chunk.js.map +0 -1
  139. package/dist/scripts/5220-85898810a6-lite.chunk.js +0 -3
  140. package/dist/scripts/5220-85898810a6-lite.chunk.js.map +0 -1
  141. package/dist/scripts/537-de7445d41a-lite.chunk.js +0 -3
  142. package/dist/scripts/537-de7445d41a-lite.chunk.js.map +0 -1
  143. package/dist/scripts/5549-e0ed88aaa1-lite.chunk.js +0 -2
  144. package/dist/scripts/5549-e0ed88aaa1-lite.chunk.js.map +0 -1
  145. package/dist/scripts/5660-a356acdbca-lite.chunk.js +0 -2
  146. package/dist/scripts/5660-a356acdbca-lite.chunk.js.map +0 -1
  147. package/dist/scripts/5936-92d9cea005-lite.chunk.js +0 -2
  148. package/dist/scripts/5936-92d9cea005-lite.chunk.js.map +0 -1
  149. package/dist/scripts/6094-8546003d79-lite.chunk.js +0 -2
  150. package/dist/scripts/6094-8546003d79-lite.chunk.js.map +0 -1
  151. package/dist/scripts/6450-601f889072-lite.chunk.js +0 -2
  152. package/dist/scripts/6450-601f889072-lite.chunk.js.map +0 -1
  153. package/dist/scripts/6489-532a022587-lite.chunk.js +0 -3
  154. package/dist/scripts/6489-532a022587-lite.chunk.js.map +0 -1
  155. package/dist/scripts/6544-ae27efabab-lite.chunk.js +0 -2
  156. package/dist/scripts/6544-ae27efabab-lite.chunk.js.map +0 -1
  157. package/dist/scripts/6752-5dddab5e0b-lite.chunk.js +0 -2
  158. package/dist/scripts/6752-5dddab5e0b-lite.chunk.js.map +0 -1
  159. package/dist/scripts/6852-9dfd47d085-lite.chunk.js +0 -2
  160. package/dist/scripts/6852-9dfd47d085-lite.chunk.js.map +0 -1
  161. package/dist/scripts/7293-3e6ad36a7a-lite.chunk.js.map +0 -1
  162. package/dist/scripts/841-73ef4ba5ec-lite.chunk.js +0 -3
  163. package/dist/scripts/841-73ef4ba5ec-lite.chunk.js.map +0 -1
  164. package/dist/scripts/8801-222a1b2e99-lite.chunk.js +0 -2
  165. package/dist/scripts/8801-222a1b2e99-lite.chunk.js.map +0 -1
  166. package/dist/scripts/9139-49023800c6-lite.chunk.js +0 -2
  167. package/dist/scripts/9139-49023800c6-lite.chunk.js.map +0 -1
  168. package/dist/scripts/9173-f9708ec0de-lite.chunk.js +0 -2
  169. package/dist/scripts/9173-f9708ec0de-lite.chunk.js.map +0 -1
  170. package/dist/scripts/bundle-e72459b30e.min.js +0 -3
  171. package/dist/scripts/bundle-e72459b30e.min.js.map +0 -1
  172. /package/dist/css/{4273-lite-a3c7435ba4.chunk.css → 3999-lite-a3c7435ba4.chunk.css} +0 -0
  173. /package/dist/css/{4063-lite-f72fc7b813.chunk.css → 4860-lite-f72fc7b813.chunk.css} +0 -0
  174. /package/dist/css/{4850-lite-f72fc7b813.chunk.css → 729-lite-f72fc7b813.chunk.css} +0 -0
  175. /package/dist/scripts/{1329-d48379c043-lite.chunk.js.LICENSE.txt → 1329-bdbbf6c7fd-lite.chunk.js.LICENSE.txt} +0 -0
  176. /package/dist/scripts/{1379-976d20185f-lite.chunk.js.LICENSE.txt → 1379-ca519ec56b-lite.chunk.js.LICENSE.txt} +0 -0
  177. /package/dist/scripts/{2004-3005565af0-lite.chunk.js.LICENSE.txt → 2004-e20d72976c-lite.chunk.js.LICENSE.txt} +0 -0
  178. /package/dist/scripts/{4273-de24896b28-lite.chunk.js.LICENSE.txt → 3999-317a4538c6-lite.chunk.js.LICENSE.txt} +0 -0
  179. /package/dist/scripts/{5220-85898810a6-lite.chunk.js.LICENSE.txt → 5220-291b2243ad-lite.chunk.js.LICENSE.txt} +0 -0
  180. /package/dist/scripts/{537-de7445d41a-lite.chunk.js.LICENSE.txt → 537-6efb9bc099-lite.chunk.js.LICENSE.txt} +0 -0
  181. /package/dist/scripts/{624-bf0ff6257f-lite.chunk.js.LICENSE.txt → 624-09b51a9d32-lite.chunk.js.LICENSE.txt} +0 -0
  182. /package/dist/scripts/{6489-532a022587-lite.chunk.js.LICENSE.txt → 6489-c242844567-lite.chunk.js.LICENSE.txt} +0 -0
  183. /package/dist/scripts/{6741-1c125dbc6c-lite.chunk.js.LICENSE.txt → 6741-fe09fea334-lite.chunk.js.LICENSE.txt} +0 -0
  184. /package/dist/scripts/{841-73ef4ba5ec-lite.chunk.js.LICENSE.txt → 841-11af1334bf-lite.chunk.js.LICENSE.txt} +0 -0
  185. /package/dist/scripts/{9395-e9b5cdbdce-lite.chunk.js.LICENSE.txt → 9395-e1a02b01ce-lite.chunk.js.LICENSE.txt} +0 -0
  186. /package/dist/scripts/{9478-abfa7ed3cc-lite.chunk.js.LICENSE.txt → 9478-13da35c4ee-lite.chunk.js.LICENSE.txt} +0 -0
  187. /package/dist/scripts/{953-bf3d621a33-lite.chunk.js.LICENSE.txt → 953-225db845ab-lite.chunk.js.LICENSE.txt} +0 -0
  188. /package/dist/scripts/{bundle-e72459b30e.min.js.LICENSE.txt → bundle-7f9a9b650d.min.js.LICENSE.txt} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scripts/5220-291b2243ad-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/common/src/react/hooks/UseEventsServiceSubscribe.ts","file:///app/packages/libs/common/src/react/services/EventsService.ts","file:///app/packages/libs/shared/src/components/curriculum-links/CurriculumLinkItem.tsx","file:///app/packages/libs/shared/src/components/curriculum-links/CurriculumLinksEmptyState.tsx","file:///app/packages/libs/shared/src/components/curriculum-links/partial-loading/PartialCurriculumLinks.tsx","file:///app/packages/libs/shared/src/components/curriculum-links/partial-loading/partial-curriculum-links.scss","file:///app/packages/libs/shared/src/components/play-page-v2/curriculum-links/curriculum-links.scss","file:///app/packages/libs/shared/src/components/play-page-v2/curriculum-links/CurriculumLinksV2.tsx","file:///app/packages/libs/shared/src/components/play-page-v2/curriculum-links/CurriculumsWidget.tsx","file:///app/packages/libs/shared/src/components/play-page-v2/glance/VideoAtAGlanceUtilsV2.ts","file:///app/packages/libs/shared/src/components/play-page-v2/glance/points-of-interest-list/points-of-interest-list.scss","file:///app/packages/libs/shared/src/components/play-page-v2/glance/points-of-interest-list/PointsOfInterestList.tsx","file:///app/packages/libs/shared/src/components/play-page-v2/glance/VideoAtAGlanceV2.tsx","file:///app/packages/libs/shared/src/components/tags/PartialTagItem.tsx","file:///app/packages/libs/shared/src/components/tags/TagHelper.ts","file:///app/packages/libs/shared/src/components/tags/TagItem.tsx","file:///app/packages/libs/shared/src/components/tags/TagList.tsx","file:///app/packages/libs/shared/src/components/widgets/curated-widgets/components/header/widget-header.scss","file:///app/packages/libs/shared/src/components/widgets/curated-widgets/components/header/WidgetHeader.tsx","file:///app/packages/libs/shared/src/components/widgets/hooks/useWidgetKeyboard.ts","file:///app/packages/libs/shared/src/utils/DragHelper.ts","file:///app/packages/libs/shared/src/components/widgets/sliding-list/SlidingListContainer.tsx","file:///app/packages/libs/shared/src/components/widgets/widget-button/widget-button.scss","file:///app/packages/libs/shared/src/components/widgets/widget-button/WidgetButton.tsx","file:///app/packages/libs/shared/src/enums/CssMeasurement.ts","file:///app/packages/libs/shared/src/enums/CurriculumType.ts","file:///app/packages/libs/shared/src/enums/TagType.ts","file:///app/packages/libs/shared/src/enums/WidgetInteraction.ts","file:///app/packages/libs/shared/src/hooks/UseGetMediaQueryString.ts","file:///app/packages/projects/lite/src/shared/hooks/useVideoFeatureAccess.ts","file:///app/packages/libs/shared/src/components/video-guidance/classroom-guide/popup/VideoGuidanceClassroomGuidePopup.tsx","file:///app/packages/projects/lite/src/shared/views/video-guidance-classroom-guide/VideoGuidanceClassroomGuideView.tsx","file:///app/node_modules/copy-to-clipboard/index.js","file:///app/packages/libs/shared/src/components/curriculum-links/curriculum-links.scss","file:///app/packages/libs/shared/src/components/play-page-v2/glance/video-at-a-glance.scss","file:///app/packages/libs/shared/src/components/tags/tags.scss","file:///app/node_modules/react-copy-to-clipboard/lib/Component.js","file:///app/node_modules/react-copy-to-clipboard/lib/index.js","file:///app/node_modules/toggle-selection/index.js"],"sourcesContent":["import { useEffect } from 'react';\n\nimport { EventsService } from 'libs/common/react/services/EventsService';\n\n/**\n * \n * @param event the event to subscribe to\n * @param callback the callback function\n * @param once whether to subscribe once\n * @param shouldSubscribe conditionally determine whether to subscribe to events\n * @returns unsubscribe function\n */\nexport function useEventsServiceSubscribe(\n event: string,\n callback: (...args: any[]) => void,\n once?: boolean,\n shouldSubscribe?: boolean\n): () => void {\n const unsubscribe = () => {\n EventsService.unsubscribe(event, callback);\n };\n\n useEffect(() => {\n if (!shouldSubscribe)\n return;\n\n once ? EventsService.subscribeOnce(event, callback) : EventsService.subscribe(event, callback);\n\n return () => {\n unsubscribe();\n };\n }, []);\n\n return unsubscribe;\n}","type EventCallback = (...args: any[]) => void;\n\ninterface EventListener {\n callback: EventCallback,\n executionLimit?: number;\n executionCount?: number;\n}\n\ninterface EventsListenerHash {\n [event: string]: EventListener[];\n}\n\nexport class StaticEventsService {\n public subscribe(event: string, callback: EventCallback): void {\n this.registerListener(event, callback);\n }\n\n public subscribeOnce(event: string, callback: EventCallback): void {\n this.registerListener(event, callback, 1);\n }\n\n public unsubscribe(event: string, callback?: EventCallback): void {\n this.deregisterListener(event, callback);\n }\n\n public trigger(event: string, ...args: any[]): void {\n this.triggerCallbacks(event, args);\n }\n\n /**\n * Private functions/members below\n */\n\n private listeners: EventsListenerHash = {};\n\n private registerListener(event: string, callback: EventCallback, executionLimit?: number) {\n if (typeof event !== 'string')\n throw new Error('Event name must be a string');\n\n if (typeof callback !== 'function')\n throw new Error('Event callback must be a function');\n\n if (!!executionLimit && typeof executionLimit !== 'number')\n throw new Error('Execution limit must be a number or undefined');\n\n this.listeners[event] = this.listeners[event] ?? [];\n this.listeners[event].push({ callback, executionLimit });\n }\n\n private deregisterListener(event: string, callback?: EventCallback): void {\n if (typeof event !== 'string')\n throw new Error('Event name must be a string');\n\n if (!!callback && typeof callback !== 'function')\n throw new Error('Event callback must be a function');\n \n if (!callback) {\n this.listeners[event] = [];\n return;\n }\n\n const idxToRemove = this.listeners[event]?.findIndex(e => e.callback === callback);\n\n if (typeof idxToRemove !== 'number' || idxToRemove === -1)\n return;\n\n this.listeners[event].splice(idxToRemove, 1);\n\n if (this.listeners[event].length === 0)\n delete this.listeners[event];\n }\n\n private triggerCallbacks(event: string, ...args: any[]): void {\n if (!this.listeners[event])\n return;\n\n const callbacksToRemove: EventCallback[] = [];\n\n this.listeners[event].forEach(listener => {\n if (typeof listener.executionLimit === 'number') {\n listener.executionCount = listener.executionCount ?? 0;\n listener.executionCount++;\n\n if (listener.executionCount === listener.executionLimit)\n callbacksToRemove.push(listener.callback);\n }\n\n listener.callback.apply(null, ...args);\n });\n\n if (!callbacksToRemove.length)\n return;\n\n callbacksToRemove.forEach(callback => this.deregisterListener(event, callback));\n }\n}\n\nexport const EventsService = new StaticEventsService();","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { ImageSize } from 'libs/shared/enums/Images';\nimport { Presentation } from 'libs/shared/interfaces';\nimport { ImageHelper } from 'libs/shared/utils/ImageHelper';\n\nimport styles from './curriculum-links.scss';\n\nconst namespace = 'shared.curriculumLinks';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface CurriculumLinkItemProps {\n data: Presentation;\n onChangeCurriculum: (id: string) => any;\n selected: boolean;\n}\n\nexport function CurriculumLinkItem(props: CurriculumLinkItemProps): JSX.Element {\n const { data: curriculumTag } = props;\n\n return (\n <DivButton\n key={curriculumTag.id}\n className={`p-1 pe-2 rounded-pill d-inline-flex align-items-center cursor-pointer ${styles.tag} ${props.selected ? styles.selected : ''}`}\n onClick={() => props.onChangeCurriculum(curriculumTag.id.toString())}\n aria-label={`${getPhrase('ariaFilter')} ${curriculumTag.name}`}\n >\n <div className={`bg-white ${styles.cover} rounded-circle border`}>\n <img\n src={ImageHelper.createUrl(curriculumTag.cover.url, { size: ImageSize.Small })}\n alt={curriculumTag.name}\n className='rounded-circle'\n />\n </div>\n <div className='ms-2'>\n {curriculumTag.name}\n </div>\n </DivButton>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { Text } from 'libs/shared/components/text/Text';\n\nconst namespace = 'shared.curriculumLinks';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface CurriculumLinksEmptyStateProps {\n emptyStateUrl: string;\n}\n\nexport function CurriculumLinksEmptyState(props: CurriculumLinksEmptyStateProps): JSX.Element {\n return (\n <EmptyState className='pt-3'>\n <EmptyState.Image src={props.emptyStateUrl} altText={getPhrase('emptyInfo')} size='small'/>\n <EmptyState.Heading>\n <Text namespace={namespace} phrase='emptyHeading' />\n </EmptyState.Heading>\n <EmptyState.Info>\n <Text namespace={namespace} phrase='emptyInfo' />\n </EmptyState.Info>\n </EmptyState>\n );\n}","import React from 'react';\n\nimport styles from './partial-curriculum-links.scss';\n\nconst PartialCurriculumLinkSection = () => (\n <>\n <div className={`partial-loading-background rounded-pill py-1 px-2 d-inline-block me-1 mb-2 ${styles.audience}`} />\n <div>\n <div className={`partial-loading-background mb-1 ${styles.area}`} />\n\n <div className='mb-2 d-flex'>\n <div className={`me-1 align-self-start ${styles.code}`}>\n <div className={`partial-loading-background rounded-pill py-1 px-2 d-inline-block w-100 h-100`} />\n </div>\n \n <div className={`partial-loading-background ${styles.description}`} />\n </div>\n </div>\n </>\n);\n\nexport function PartialCurriculumLinks(): JSX.Element {\n return (\n <div>\n <div className='mb-3'>\n <PartialCurriculumLinkSection />\n </div>\n\n <div className='mb-3'>\n <PartialCurriculumLinkSection />\n </div>\n\n <div>\n <PartialCurriculumLinkSection />\n </div>\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"audience\":\"vDcrq\",\"area\":\"GXhoW\",\"code\":\"goKaS\",\"description\":\"vFew6\"};","// extracted by mini-css-extract-plugin\nexport default {\"curriculumSubject\":\"i4D3h\",\"curriculumSet\":\"WCdf9\",\"areaLeafSet\":\"o8H8s\",\"closeButton\":\"McsPs\",\"leafDescriptionOnly\":\"xmEEo\"};","import React from 'react';\n\nimport { CurriculumLinksEmptyState } from 'libs/shared/components/curriculum-links/CurriculumLinksEmptyState';\nimport { PartialCurriculumLinks } from 'libs/shared/components/curriculum-links/partial-loading/PartialCurriculumLinks';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { CurriculumType } from 'libs/shared/enums/CurriculumType';\nimport { Curriculum } from 'libs/shared/interfaces';\n\nimport styles from './curriculum-links.scss';\n\nconst BRACKET_SEGMENT_REGEX = /(.*)\\s\\((.*)?\\)/i;\n\nconst namespace = 'shared.curriculumLinks';\n\nconst BASE_PILL_CLASS = 'text-nowrap font-size-normal rounded-pill py-1 px-2 my-0 d-inline-block fw-semibold';\n\ninterface CurriculumStructure {\n [CurriculumType.Subject]: Curriculum<CurriculumType.Subject>;\n [CurriculumType.Audience]: Curriculum<CurriculumType.Audience>;\n areasAndLeaves: Array<{\n [CurriculumType.Area]: Curriculum<CurriculumType.Area>[];\n [CurriculumType.Leaf]: Curriculum<CurriculumType.Leaf>[];\n }>;\n}\n\ninterface CurriculumLeafProps {\n leaf: Curriculum<CurriculumType.Leaf>;\n codeWidth: number;\n trySetMaxCodeWidth: React.Dispatch<React.SetStateAction<number>>;\n uiContainsCodes: boolean;\n}\n\nfunction CurriculumLeaf(props: CurriculumLeafProps): JSX.Element {\n function getCurriculumCodeClass(): string {\n const baseClass = BASE_PILL_CLASS + ' bg-white border';\n\n // If a leaf has no code but the rest of the UI has leaf nodes w/ codes, we show a special \"No code\" pill\n if (!props.leaf.name && props.uiContainsCodes)\n return baseClass + ' border-secondary text-secondary';\n\n return baseClass + ' border-dark';\n }\n\n const codeRef = React.useRef<HTMLDivElement>();\n\n React.useEffect(() => {\n if (!codeRef.current)\n return;\n\n const { width } = codeRef.current.getBoundingClientRect();\n\n props.trySetMaxCodeWidth(width);\n }, [codeRef.current]);\n\n return (\n <div className='d-flex'>\n {(() => {\n if (!props.leaf.description)\n return <p className='m-0' dangerouslySetInnerHTML={{ __html: props.leaf.name }} />;\n\n /**\n * If a leaf has no code but the rest of the UI has leaf nodes\n * with codes, we show a special \"No code\" pill. Example: https://imgur.com/3L1Ela3\n */\n if (!props.leaf.name && props.uiContainsCodes) {\n return (\n <>\n <div\n className='me-1 align-self-start'\n style={{ minWidth: props.codeWidth ? `${props.codeWidth}px` : 'auto' }}\n >\n <h5 ref={codeRef} className={getCurriculumCodeClass()}>\n <Text namespace={namespace} phrase='noCode' />\n </h5>\n </div>\n <p className='m-0 align-self-center' dangerouslySetInnerHTML={{ __html: props.leaf.description }} />\n </>\n );\n }\n\n /**\n * If a leaf has no code and the rest of the UI leaf nodes have no code, we just\n * display the description with a bullet point. Example: https://imgur.com/jzJvmWs\n */\n if (!props.leaf.name && !props.uiContainsCodes)\n return <p className='m-0' dangerouslySetInnerHTML={{ __html: props.leaf.description }} />;\n\n return (\n <>\n <div\n className='me-1 align-self-start'\n style={{ minWidth: props.codeWidth ? `${props.codeWidth}px` : 'auto' }}\n >\n <h5 ref={codeRef} className={getCurriculumCodeClass()}>{props.leaf.name}</h5>\n </div>\n <p className='m-0 align-self-center' dangerouslySetInnerHTML={{ __html: props.leaf.description }} />\n </>\n );\n })()}\n </div>\n );\n}\n\ninterface CurriculumSubjectProps {\n linkSet: CurriculumStructure;\n codeWidth: number;\n trySetMaxCodeWidth: React.Dispatch<React.SetStateAction<number>>;\n}\n\nfunction CurriculumSubject(props: CurriculumSubjectProps): JSX.Element {\n const areaAndLeafSets: { [areaText: string]: Curriculum<CurriculumType.Leaf>[]; } = {};\n\n let uiContainsCodes = false;\n\n props.linkSet.areasAndLeaves.forEach(areaAndLeafSet => {\n const areaText = areaAndLeafSet[CurriculumType.Area].map(ca => ca.name).join(' - ');\n\n if (areaAndLeafSets[areaText]) {\n areaAndLeafSet[CurriculumType.Leaf].forEach(leaf => {\n if (!areaAndLeafSets[areaText].find(l => l.name === leaf.name)) {\n areaAndLeafSets[areaText].push(leaf);\n\n // We need the info on if _any_ leaf node has a code in it. See why in the comments in `<CurriculumLeaf />`\n if (leaf.name)\n uiContainsCodes = true;\n }\n });\n\n return;\n }\n\n areaAndLeafSets[areaText] = areaAndLeafSet[CurriculumType.Leaf];\n });\n\n function getAudienceText(): string {\n const audienceSegment = props.linkSet[CurriculumType.Audience].name;\n const subjectSegment = props.linkSet[CurriculumType.Subject].name;\n\n /**\n * In some curriculums, such as the UK curriculum, the audience string may contain a year group\n * in brackets. For example, it may be \"Lower Key Stage 2 (Year 4)\".\n * This regex will pull that segment out if it exists.\n */\n const audienceBracketSegments = audienceSegment.match(BRACKET_SEGMENT_REGEX);\n\n if (audienceBracketSegments)\n return `${audienceBracketSegments[1]} • ${audienceBracketSegments[2]} • ${subjectSegment}`;\n\n return `${audienceSegment} • ${subjectSegment}`;\n }\n\n function getLeafStyleClass(leaf: Curriculum<CurriculumType.Leaf>): string {\n const className = 'mb-2';\n\n if (!leaf.name && !uiContainsCodes)\n return className + ' ms-4 ' + styles.leafDescriptionOnly;\n\n return className;\n }\n\n return (\n <>\n <h3 className={`${BASE_PILL_CLASS} text-white bg-dark-blue fw-normal me-1 mb-2`}>\n {getAudienceText()}\n </h3>\n\n <div className={`me-2 ${styles.curriculumSubject}`}>\n {Object.keys(areaAndLeafSets).map((areaText, i) => {\n return (\n <div key={i} className={styles.areaLeafSet} >\n {areaText && <h4 className='mb-1 font-size-normal'>{areaText}</h4>}\n <ul className='list-unstyled'>\n {areaAndLeafSets[areaText].map(leaf => (\n <li key={leaf.id} className={getLeafStyleClass(leaf)}>\n <CurriculumLeaf\n leaf={leaf}\n codeWidth={props.codeWidth}\n trySetMaxCodeWidth={props.trySetMaxCodeWidth}\n uiContainsCodes={uiContainsCodes}\n />\n </li>\n ))}\n </ul>\n </div>\n );\n })}\n </div>\n </>\n );\n}\n\ninterface CurriculumLinksSet {\n [subjectAndAudienceIdKey: string]: CurriculumStructure\n}\n\ninterface CurriculumLinksV2Props {\n curriculumLinks?: Curriculum[][];\n emptyStateUrl: string;\n}\n\nexport function CurriculumLinksV2(props: CurriculumLinksV2Props): JSX.Element {\n const [ codeWidth, setCodeWidth ] = React.useState(0);\n\n function trySetMaxCodeWidth(width: number): void {\n /**\n * The width of the curriculum code column should be identical for each leaf node, meaning\n * the leaf description text will be perfectly vertically aligned all the way down.\n * See here for example: https://imgur.com/MbganZf\n * \n * This is achieved by us setting the state for the maximum code width, and forcing all\n * smaller codes to abide by that max width.\n * \n * This value is used in the `<CurriculumLeaf />` component.\n */\n setCodeWidth(currentVal => {\n if (currentVal >= width)\n return currentVal;\n\n return width;\n });\n }\n\n /**\n * Here, we're taking the structure of links from the backend, and restructuring it in a way\n * that resembles the structure of our UI more closely. The general idea is:\n * \n * CurriculumAudience - CurriculumSubject\n * CurriculumAreas\n * CurriculumLeaves\n */\n const curriculumLinkSets = React.useMemo(() => {\n const newSet: CurriculumLinksSet = {};\n\n props.curriculumLinks.forEach(linkSet => {\n let subject: Curriculum<CurriculumType.Subject> = null;\n let audience: Curriculum<CurriculumType.Audience> = null;\n const areas: Curriculum<CurriculumType.Area>[] = [];\n const leaves: Curriculum<CurriculumType.Leaf>[] = [];\n \n linkSet.forEach(curriculumObj => {\n switch (curriculumObj.type) {\n case CurriculumType.Subject:\n subject = curriculumObj as Curriculum<CurriculumType.Subject>;\n break;\n case CurriculumType.Audience:\n audience = curriculumObj as Curriculum<CurriculumType.Audience>;\n break;\n case CurriculumType.Area:\n areas.push(curriculumObj as Curriculum<CurriculumType.Area>);\n break;\n case CurriculumType.Leaf:\n leaves.push(curriculumObj as Curriculum<CurriculumType.Leaf>);\n break;\n default:\n break;\n }\n });\n \n const key = `${subject.id}:${audience.id}`;\n\n if (newSet[key]) {\n newSet[key].areasAndLeaves.push({\n [CurriculumType.Area]: areas,\n [CurriculumType.Leaf]: leaves\n });\n \n return;\n }\n \n newSet[key] = {\n [CurriculumType.Subject]: subject,\n [CurriculumType.Audience]: audience,\n areasAndLeaves: [{\n [CurriculumType.Area]: areas,\n [CurriculumType.Leaf]: leaves\n }]\n };\n });\n\n return newSet;\n }, [props.curriculumLinks]);\n\n if (!props.curriculumLinks)\n return <PartialCurriculumLinks />;\n\n if (!props.curriculumLinks?.length) {\n return <CurriculumLinksEmptyState emptyStateUrl={props.emptyStateUrl} />;\n }\n\n return (\n <ul className='list-unstyled m-0'>\n {Object.keys(curriculumLinkSets).map((linkSetKey, i) => (\n <li key={`linkset-${i}`} className={styles.curriculumSet}>\n <CurriculumSubject\n linkSet={curriculumLinkSets[linkSetKey]}\n trySetMaxCodeWidth={trySetMaxCodeWidth}\n codeWidth={codeWidth}\n />\n </li>\n ))}\n </ul>\n );\n}","import React from 'react';\n\nimport { CurriculumLinkItem } from 'libs/shared/components/curriculum-links/CurriculumLinkItem';\nimport { PartialTagItem } from 'libs/shared/components/tags/PartialTagItem';\nimport { DynamicWidget } from 'libs/shared/components/widgets/dynamic-widget';\nimport { CurriculumData, Presentation } from 'libs/shared/interfaces';\n\ninterface CurriculumsWidgetProps {\n curriculums: CurriculumData;\n selectedCurriculum: Presentation;\n onChangeCurriculum: (curriculumId: string) => void;\n noNegativePadding?: boolean;\n}\n\nexport function CurriculumsWidget(props: CurriculumsWidgetProps): JSX.Element {\n return (\n <DynamicWidget\n collection={props.selectedCurriculum?.id ? props.curriculums.nonEmptyCurriculums : null}\n childClassName='flex-shrink-0'\n childComponent={_props => {\n return (\n <CurriculumLinkItem\n {..._props}\n selected={props.selectedCurriculum?.id?.toString() === _props.data.id.toString()}\n onChangeCurriculum={props.onChangeCurriculum}\n />\n );\n }}\n partialLoadingComponent={() => <PartialTagItem />}\n widgetDataDeps={[ props.selectedCurriculum?.id?.toString(), props.onChangeCurriculum ]}\n noNegativePadding={props.noNegativePadding}\n />\n );\n}","import { MutableRefObject, useEffect, useRef, useState } from 'react';\nimport * as marked from 'marked';\n\nimport { useEventsServiceSubscribe } from 'libs/common/react/hooks/UseEventsServiceSubscribe';\nimport { EventsService } from 'libs/common/react/services/EventsService';\n\nimport { Clip, Glance, PointOfInterest, Video } from 'libs/shared/interfaces';\n\nimport styles from './video-at-a-glance.scss';\n\nconst POI_LINK_LINE = /\\[\\]\\(cv:\\/\\/poi\\?id=\\d+\\)\\n*/g;\n\nfunction stripPoisFromGlanceContent(glanceContent: string): string {\n return glanceContent.replace(POI_LINK_LINE, '');\n}\n\nfunction getLearningIntentionHTML(glance: Glance): string {\n const learningIntention = stripPoisFromGlanceContent(glance.content);\n\n return marked(learningIntention);\n}\n\nexport function useLearningIntentionMarkdown(\n video: Video,\n hasGlanceData?: boolean\n): string {\n const [ markdownHTML, setMarkdownHTML ] = useState('');\n\n useEffect(() => {\n if (!hasGlanceData)\n return;\n\n const content = getLearningIntentionHTML(video.glance);\n\n setMarkdownHTML(content);\n }, [ video.glance?.content, hasGlanceData ]);\n\n return markdownHTML;\n}\n\nexport function hasGlanceData(video: Video | Clip): boolean {\n return video.glance?.content && video.glance?.format === 'text/markdown';\n}\n\nexport function useHighlightPointOfInterest(\n pointOfInterest: PointOfInterest,\n shouldHighlight: boolean\n): MutableRefObject<HTMLDivElement> {\n const ref = useRef<HTMLDivElement>();\n\n useEventsServiceSubscribe('player:poi:mouseover', onPlayerPoiMouseOver, null, shouldHighlight);\n useEventsServiceSubscribe('player:poi:mouseleave', onPlayerPoiMouseLeave, null, shouldHighlight);\n\n useEffect(() => {\n if (!ref.current || !shouldHighlight)\n return;\n\n ref.current?.addEventListener('mouseover', onGlancePoiMouseOver);\n ref.current?.addEventListener('mouseleave', onGlancePoiMouseLeave);\n\n return () => {\n ref.current?.removeEventListener('mouseover', onGlancePoiMouseOver);\n ref.current?.removeEventListener('mouseleave', onGlancePoiMouseLeave);\n };\n }, [ref.current]);\n\n function onPlayerPoiMouseOver(hoveredPoi: PointOfInterest): void {\n if (!hoveredPoi?.id || pointOfInterest?.id?.toString() !== hoveredPoi?.id?.toString())\n return;\n\n ref.current?.classList.add(styles.highlightPoi);\n }\n\n function onPlayerPoiMouseLeave(): void {\n ref.current?.classList.remove(styles.highlightPoi);\n }\n\n /**\n * `this` will be the element to which the eventListener is bound.\n */\n function onGlancePoiMouseOver(): void {\n if (pointOfInterest)\n EventsService.trigger('glance:poi:mouseover', pointOfInterest);\n }\n\n function onGlancePoiMouseLeave(): void {\n EventsService.trigger('glance:poi:mouseleave');\n }\n\n return ref;\n}","// extracted by mini-css-extract-plugin\nexport default {\"poiEntry\":\"vr6R9\",\"poiText\":\"znHZF\",\"public\":\"v0BZ9\",\"poiTimeStamp\":\"AdKwe\",\"wideBadge\":\"YR2Hh\"};","import React from 'react';\n\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { PointOfInterest } from 'libs/shared/interfaces';\nimport { DurationHelper } from 'libs/shared/utils/DurationHelper';\n\nimport { useHighlightPointOfInterest } from '../VideoAtAGlanceUtilsV2';\n\nimport styles from './points-of-interest-list.scss';\n\ninterface PointOfInterestProps {\n poi: PointOfInterest;\n suppressInteractivity?: boolean;\n onClickPoiItem: (time: number) => void;\n wideBadge?: boolean;\n}\n\nfunction PointOfInterest(props: PointOfInterestProps): JSX.Element {\n const timeStamp = DurationHelper.ToDisplayDuration(props.poi.startTime * 1000);\n\n const ref = useHighlightPointOfInterest(props.poi, !props.suppressInteractivity);\n\n if (props.suppressInteractivity) {\n return (\n <div className={`d-flex ${styles.poiEntry} mb-2`}>\n <span className={`d-flex rounded-pill justify-content-center align-items-center fw-semibold text-info bg-light-blue ${styles.poiTimeStamp} ${props.wideBadge ? styles.wideBadge : ''}`}>{timeStamp}</span>\n <div className={`${styles.public} ms-2`}>{props.poi.description}</div>\n </div>\n );\n }\n\n return (\n <DivButton\n key={props.poi.startTime}\n className={`d-flex ${styles.poiEntry} mb-2 cursor-pointer`}\n onClick={() => props.onClickPoiItem(props.poi.startTime)}\n ref={ref}\n >\n <div className={`d-flex rounded-pill justify-content-center align-items-center fw-semibold text-info bg-light-blue ${styles.poiTimeStamp} ${props.wideBadge ? styles.wideBadge : ''}`}>{timeStamp}</div>\n <div className={`ms-2 ${styles.poiText}`}>{props.poi.description}</div>\n </DivButton>\n );\n}\n\ninterface PointOfInterestListProps{\n pointsOfInterest: PointOfInterest[];\n suppressInteractivity?: boolean;\n onClickPoiItem: (time: number) => void\n}\n\nconst namespace = 'shared.pointsOfInterestList';\n\nexport function PointOfInterestList(props: PointOfInterestListProps) {\n const sortedPointsOfInterest = props.pointsOfInterest.sort((a, b) => a.startTime - b.startTime);\n const hasTimePointOverHours = sortedPointsOfInterest.some(poi => poi.startTime >= 3600);\n\n return (\n <div>\n <h2 className='h6 my-2'><Text namespace={namespace} phrase='heading' /></h2>\n\n <div>\n {sortedPointsOfInterest.map(poi => {\n return (\n <PointOfInterest\n key={poi.startTime}\n poi={poi}\n suppressInteractivity={props.suppressInteractivity}\n onClickPoiItem={props.onClickPoiItem}\n wideBadge={hasTimePointOverHours}\n />\n );\n })}\n\n </div>\n </div>\n );\n}","import * as React from 'react';\nimport CopyToClipboard from 'react-copy-to-clipboard';\nimport Scrollbars from 'react-custom-scrollbars-2';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { EntityType, LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { PointOfInterestList } from 'libs/shared/components/play-page-v2/glance/points-of-interest-list/PointsOfInterestList';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { TagHelper } from 'libs/shared/components/tags/TagHelper';\nimport { TagList } from 'libs/shared/components/tags/TagList';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { TagType } from 'libs/shared/enums/TagType';\nimport { PointOfInterest, Tag, Video } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { useLearningIntentionMarkdown } from './VideoAtAGlanceUtilsV2';\n\nimport styles from './video-at-a-glance.scss';\n\nconst namespace = 'shared.videoAtAGlanceV2';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst SCROLL_HEIGHT_MAX = 350; // in px\n\ninterface ScrollbarWrapperProps {\n hideScrollbar?: boolean;\n}\n\nfunction ScrollbarWrapper(props: React.PropsWithChildren<ScrollbarWrapperProps>): JSX.Element {\n if (props.hideScrollbar)\n return <>{props.children}</>;\n\n return (\n <div className='rounded border mb-4 bg-white'>\n <Scrollbars\n autoHeight\n autoHeightMax={SCROLL_HEIGHT_MAX}\n >\n <div className='px-3 px-3 pt-3 pb-2'>\n {props.children}\n </div>\n </Scrollbars>\n </div>\n );\n}\n\ninterface VideoAtAGlanceV2Props {\n video: Video;\n pointsOfInterest?: PointOfInterest[];\n suppressInteractivity?: boolean;\n setStartTime?: (time: number) => void;\n getTagAppLink?: (tag: Tag) => Core.AppLink;\n onClickTag?: () => void;\n hideScrollbar?: boolean;\n canViewGlance: boolean;\n}\n\nexport function VideoAtAGlanceV2(props: VideoAtAGlanceV2Props): JSX.Element {\n const learningIntentionMarkdownHTML = useLearningIntentionMarkdown(props.video, props.canViewGlance);\n const [ textToCopy, setTextToCopy ] = React.useState('');\n\n function logUserAction(): void {\n const analyticsData = {\n id: props.video.glance.id,\n videoId: props.video.id,\n videoName: props.video.name,\n learningIntention: textToCopy\n };\n\n const analyticsOptions = {\n actionType: UserAction.Copy,\n entity: EntityType.Glance,\n location: LocationContext.PlayPage\n };\n AnalyticsHelper.logUserAction(analyticsData, analyticsOptions);\n }\n\n function getTags(): Tag[] {\n if (VideoHelper.isInteractive(props.video) || !props.video.tags?.data?.length)\n return null;\n\n return props.video.tags?.data?.filter(tag => tag.tagType === TagType.Pedagogy || tag.tagType === TagType.Skill);\n }\n const tags = getTags();\n\n const ref = React.useRef<HTMLDivElement>(null);\n\n React.useEffect(() => {\n if (ref.current?.innerText)\n setTextToCopy(ref.current.innerText);\n }, [ref.current?.innerText]);\n\n if (!props.canViewGlance)\n return <></>;\n\n function onClickPoiItem(time: number) {\n props.setStartTime(time);\n }\n\n return (\n <section className='play-page-section'>\n <ScrollbarWrapper hideScrollbar={props.hideScrollbar}>\n <h2 className='h6 mb-2'><Text namespace={namespace} phrase='learningIntention' /></h2>\n \n <div className={`mb-3 ${styles.learningIntention}`}>\n <Tooltip title={getPhrase('copy')} spanHack spanHackClassName={styles.icon}>\n <CopyToClipboard text={textToCopy}>\n <SvgContainer\n className='svg-container me-1 cursor-pointer'\n svgName={cvSvgLibrary.Copy}\n size={SvgContainerSize.Small}\n onClick={logUserAction}\n />\n </CopyToClipboard>\n </Tooltip>\n \n <div\n dangerouslySetInnerHTML={{ __html: learningIntentionMarkdownHTML }}\n className='d-inline'\n ref={ref}\n >\n </div>\n </div>\n\n {!!tags?.length && (\n <div className='mb-1'>\n <TagList\n tags={tags}\n {...TagHelper.getTagActionProps(props.getTagAppLink, props.onClickTag, props.suppressInteractivity)}\n className='mt-2'\n />\n </div>\n )}\n\n {!!props.pointsOfInterest.length && (\n <PointOfInterestList\n pointsOfInterest={props.pointsOfInterest}\n suppressInteractivity={props.suppressInteractivity}\n onClickPoiItem={onClickPoiItem}\n />\n )}\n </ScrollbarWrapper>\n </section>\n );\n}","import React from 'react';\n\nimport styles from './tags.scss';\n\ninterface PartialTagItemProps {\n tagClass?: string;\n}\n\nexport const PartialTagItem = React.memo(function({ tagClass = '' }: PartialTagItemProps): JSX.Element {\n const classNames = `partial-loading-background d-inline-block rounded-pill py-1 px-2 mb-1 me-1 text-nowrap ${tagClass} ${styles.partialTag}`;\n\n return (\n <div className='mt-1'>\n <span className={classNames}>&nbsp;</span>\n </div>\n );\n});","import { Core } from 'libs/common/core';\n\nimport { Tag } from 'libs/shared/interfaces';\n\nexport const TagHelper = {\n /**\n * This helper allows tag appLinks to be triggered manually for use in a public context.\n * \n * For public pages, all anchors will be crawled by bots. Given then number of tags we have\n * this will chew through crawl budget unnecessarily. \n * \n * The consuming project can opt-in for this behaviour. By default, tags will always be rendered\n * as anchors.\n */\n getTagActionProps: (\n getTagAppLink: (tag: Tag) => Core.AppLink,\n onClick: () => void,\n renderAsSpan?: boolean\n ) => {\n if (renderAsSpan) {\n return {\n onClick: (tag: Tag) => {\n if (onClick)\n onClick();\n\n const appLink = getTagAppLink ? getTagAppLink(tag) : null;\n\n if (!appLink)\n return;\n\n return Core.AppLinkHelper.trigger(appLink);\n }\n };\n }\n\n return {\n getAppLink: (tag: Tag) => {\n return getTagAppLink\n ? getTagAppLink(tag)\n : null;\n },\n onClick\n };\n }\n};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { TagType } from 'libs/shared/enums/TagType';\nimport { Tag, ThemeColours } from 'libs/shared/interfaces';\n\nimport styles from './tags.scss';\n\nconst namespace = 'shared.tags';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface TagItemProps {\n tag: Tag;\n themeColours?: ThemeColours;\n appLink?: Core.AppLink;\n onClick?: () => void;\n onRemove?: () => void;\n disabled?: boolean;\n tagClass?: string;\n}\n\nfunction getTagTypeClass(tagType: TagType, hasThemeColour: boolean): string {\n switch (tagType) {\n case TagType.Pedagogy:\n case TagType.Skill:\n return 'pedagogy-tag text-white';\n\n case TagType.Hidden:\n return 'hidden-tag fw-normal';\n\n case TagType.Normal:\n if (!hasThemeColour)\n return 'bg-gray-100 fw-normal';\n return '';\n\n default:\n return '';\n }\n}\n\nexport function TagItem(props: TagItemProps): JSX.Element {\n const { tag, appLink, onClick, disabled, tagClass = 'tag' } = props;\n\n const name = tag.name.toLowerCase();\n const tagType = tag.tagType?.toLowerCase() as TagType;\n\n const hasThemeColour = (tagType === TagType.Normal && props.themeColours) && !!props.themeColours?.secondary;\n let classNames = `rounded-pill py-1 px-2 my-1 me-1 ${tagClass} ${getTagTypeClass(tagType, hasThemeColour)}`;\n\n if (hasThemeColour)\n classNames += ' text-white';\n\n if ((appLink || onClick) && !disabled)\n classNames += ' cursor-pointer';\n\n if (disabled)\n classNames += ' ' + styles.disabled;\n\n if (props.onRemove)\n classNames += ' ' + styles.badge;\n\n if (!appLink)\n classNames += ' d-inline-block';\n\n const style: React.CSSProperties = hasThemeColour\n ? { backgroundColor: props.themeColours.secondary }\n : {};\n\n if (appLink) {\n return (\n <AppLink\n onClick={onClick}\n appLink={appLink}\n className={classNames}\n title={name}\n style={style}\n >\n <span className='text-truncate text-nowrap'>{name}</span>\n </AppLink>\n );\n }\n\n return (\n <button\n onClick={onClick}\n className={classNames}\n title={name}\n style={style}\n aria-label={`${getPhrase('ariaFilter')} ${name}`}\n >\n <span className='text-truncate text-nowrap'>\n {name}\n {props.onRemove &&\n <button\n onClick={props.onRemove}\n className={`${styles.close} btn-close font-size-normal`}\n role='button'\n aria-label='Close'\n />\n }\n </span>\n </button>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { TagItem } from 'libs/shared/components/tags/TagItem';\nimport { TagType } from 'libs/shared/enums/TagType';\nimport { Tag, ThemeColours } from 'libs/shared/interfaces';\n\nimport styles from './tags.scss';\n\n/**\n * TODO: this will eventually handle ClickView and Customer tag types.\n */\nfunction getTagSortValue(tag: Tag): number {\n switch (tag.tagType?.toLowerCase()) {\n case TagType.Pedagogy:\n return 0;\n\n case TagType.Skill:\n return 1;\n\n default:\n return 2;\n }\n}\n\ninterface TagListProps {\n tags: Tag[];\n themeColours?: ThemeColours;\n onClick?: (tag: Tag) => void;\n onRemove?: (tag: Tag) => void;\n getAppLink?: (tag: Tag) => Core.AppLink;\n className?: string;\n}\n\nexport function TagList(props: TagListProps): JSX.Element {\n if (!props.tags)\n return <></>;\n\n const sortedTags = [...props.tags].sort((a, b) => getTagSortValue(a) - getTagSortValue(b));\n\n return (\n <div className={`${styles.tagList} ${props.className}`}>\n {sortedTags.map((tag: Tag) => {\n const appLink = typeof props.getAppLink === 'function'\n ? props.getAppLink(tag)\n : null;\n\n const onRemove = typeof props.onRemove === 'function'\n ? () => props.onRemove(tag)\n : null;\n\n const onClick = typeof props.onClick === 'function'\n ? () => props.onClick(tag)\n : null;\n\n return (\n <TagItem\n key={tag.id || tag.name}\n tag={tag}\n appLink={appLink}\n themeColours={props.themeColours}\n onRemove={onRemove}\n onClick={onClick}\n />\n );\n })}\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"seeMore\":\"yv0FS\"};","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsOptions, ClickDescriptor } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\n\nimport styles from './widget-header.scss';\n\nconst namespace = 'shared.widgetHeader';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface WidgetHeaderProps {\n name: string;\n description: string;\n\n appLink?: Core.AppLink;\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n showSeeMoreLink?: boolean;\n onClick?: () => void;\n}\n\nfunction SeeMore(props: WidgetHeaderProps) {\n return (\n <div className={`ms-3 ${styles.seeMore}`}>\n <AppLink\n appLink={props.appLink}\n analyticsData={props.analyticsData }\n analyticsOptions={{ ...props.analyticsOptions, descriptor: ClickDescriptor.SeeMore }}\n className={`text-decoration-none ${props.appLink ? 'curated-widget-link' : ''}`}\n >\n <p className='hover-text-underline text-dark curated-widget-heading'>{getPhrase('seeAll')}</p>\n </AppLink>\n </div>\n );\n}\n\nexport function WidgetHeader(props: WidgetHeaderProps): JSX.Element {\n const hasDescription = !!props.description;\n\n if (!props.name && !props.description)\n return <></>;\n\n return (\n <div className='curated-widget-header'>\n <div className='d-flex justify-content-between'>\n {!!props.name && (\n <div className={styles.title}>\n <AppLink\n appLink={props.appLink}\n analyticsOptions={props.analyticsOptions}\n analyticsData={props.analyticsData}\n className={`text-decoration-none ${props.appLink ? 'curated-widget-link' : ''}`}\n onClick={props.onClick}\n >\n <h2 className='h4 curated-widget-heading'>\n {props.name}\n </h2>\n </AppLink>\n </div>\n )}\n {!!props.appLink && !hasDescription && !!props.showSeeMoreLink && <SeeMore {...props}/>}\n </div>\n \n {hasDescription && (\n <div className='d-flex justify-content-between align-items-end'>\n <p className={`description curated-widget-description ${styles.description}`}>\n <span>{props.description}</span>\n </p>\n {!!props.appLink && !!props.showSeeMoreLink && <SeeMore {...props}/> }\n </div>\n )}\n </div>\n );\n}","import React from 'react';\n\nimport { UserAgentHelper } from 'libs/common/backbone/utils/UserAgentHelper';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { DynamicWidgetState } from 'libs/shared/components/widgets/dynamic-widget';\nimport { FixedWidgetState } from 'libs/shared/components/widgets/fixed-widget';\n\n// Sync with transition time in SlidingListContainer.tsx\nconst SLIDER_ANIMATION_TIME = 400;\n\ntype FixedWidgetKeyboardOptions = {\n type: 'fixed',\n state: FixedWidgetState,\n containerRef: React.MutableRefObject<HTMLElement>\n mediaQuery?: never;\n}\n\ntype DynamicWidgetKeyboardOptions = {\n type: 'dynamic',\n state: DynamicWidgetState,\n containerRef: React.MutableRefObject<HTMLElement>\n mediaQuery: string\n}\n\ntype UseWidgetKeyboard = FixedWidgetKeyboardOptions | DynamicWidgetKeyboardOptions\n\nexport function useWidgetKeyboard(options: UseWidgetKeyboard) {\n const { type, state, containerRef, mediaQuery } = options;\n\n const [ isTabbing, setIsTabbing ] = React.useState(false);\n const [ dynamicAttributes, setDynamicAttributes ] = React.useState<HashObject>({});\n const [ focusedWidgetIndex, setFocusedWidgetIndex ] = React.useState(null);\n\n const isTouch = React.useMemo(() => UserAgentHelper.isTouchScreen(), []);\n\n /**\n * Get accessibility attributes for dynamic widget items\n * */\n React.useEffect(() => {\n if (type !== 'dynamic' || !containerRef.current || !(state as DynamicWidgetState).containerLeftPosition || isTouch) return;\n\n setTimeout(() => getDynamicAttributes(), SLIDER_ANIMATION_TIME + 50);\n }, [\n containerRef.current,\n mediaQuery,\n (state as DynamicWidgetState).offset,\n (state as DynamicWidgetState).containerLeftPosition\n ]);\n\n function getDynamicAttributes() {\n const dynamicWidgetState = state as DynamicWidgetState;\n\n if (!containerRef.current?.children)\n return;\n\n const focusableItems = Array.from(containerRef.current.children).reduce((acc, item) => {\n const rect = item?.getBoundingClientRect();\n\n /**\n * When any part of the widget item is visible it should be focusable,\n * otherwise prevent interaction and the slider should be the next focusable element\n * */\n const isItemVisable =\n rect.left < dynamicWidgetState.containerRightPosition &&\n rect.right > dynamicWidgetState.containerLeftPosition;\n\n return {\n ...acc,\n [item.id]: isItemVisable\n ? {\n 'aria-hidden': false\n } : {\n 'aria-hidden': true,\n 'inert': 'true'\n }\n };\n }, {});\n\n setDynamicAttributes(focusableItems);\n }\n\n /**\n * Get accessibility attributes for fixed widget items\n * */\n function getFixedAttributes(index?: number) {\n const fixedWidgetState = state as FixedWidgetState;\n\n const isItemVisible =\n isTouch ||\n index >= (fixedWidgetState.offset - fixedWidgetState.viewableItems) &&\n index < fixedWidgetState.offset;\n if (isItemVisible) {\n return {\n 'aria-hidden': false\n };\n }\n\n return {\n 'inert': 'true',\n 'aria-hidden': true\n };\n }\n\n /**\n * When the user is not signed in, there may be videos which are not focusable.\n * setTimeout is required because the transition time is 400ms\n */\n function focusNext() {\n setTimeout(() => {\n if (!containerRef.current)\n return;\n\n const items = containerRef.current.querySelectorAll('li[aria-hidden]');\n\n let nextFocusableElement: HTMLElement = null;\n\n for (let i = (focusedWidgetIndex + 1); i < items.length; i++) {\n if (nextFocusableElement)\n break;\n\n nextFocusableElement = items[i].querySelector('a[tabindex=\"0\"]');\n }\n\n if (nextFocusableElement)\n nextFocusableElement.focus();\n }, SLIDER_ANIMATION_TIME + 100);\n }\n\n function focusPrev() {\n setTimeout(() => {\n if (!containerRef.current)\n return;\n\n const items = containerRef.current.querySelectorAll('li[aria-hidden]');\n\n let prevFocusableElement: HTMLElement = null;\n for (let i = focusedWidgetIndex - 1; i >= 0; i--) {\n if (prevFocusableElement) break;\n\n const item = items[i];\n prevFocusableElement = item.querySelector('a[tabindex=\"0\"]');\n }\n\n if (prevFocusableElement)\n prevFocusableElement.focus();\n }, SLIDER_ANIMATION_TIME + 100);\n }\n\n function onFocusWidget(index: number) {\n if (document.querySelector('.user-is-tabbing')) {\n setIsTabbing(true);\n setFocusedWidgetIndex(index);\n }\n }\n\n function onBlurWidget() {\n if (!document.querySelector('.user-is-tabbing')) {\n setIsTabbing(false);\n setFocusedWidgetIndex(null);\n }\n }\n\n return {\n isTabbing,\n onFocusWidget,\n onBlurWidget,\n getFixedAttributes,\n dynamicAttributes,\n focusNext,\n focusPrev\n };\n}","import { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\n\nconst blankImage = new Image();\nblankImage.src = 'data:image/gif;base64,R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs=';\n\nexport const DragHelper = {\n // This removes the image that appears when you drag a draggable HTML element\n hideDragImage(event: React.DragEvent<HTMLElement>): void {\n if (!event.dataTransfer.setDragImage || !FunctionHelper.isFunction(event.dataTransfer.setDragImage))\n return;\n\n event.dataTransfer.setDragImage(blankImage, 0, 0);\n }\n};","import * as React from 'react';\n\nimport { UserAgentHelper } from 'libs/common/backbone/utils/UserAgentHelper';\nimport { HashObject } from 'libs/common/react/interfaces/HashObject';\n\nimport { CssMeasurement } from 'libs/shared/enums/CssMeasurement';\nimport { DragHelper } from 'libs/shared/utils/DragHelper';\n\nconst isTouchScreen = UserAgentHelper.isTouchScreen();\n\nconst getPositionStyling = (xPosition: number, measurement: CssMeasurement, dragPercentage?: number) => {\n // Used in situations where a touch screen user is dragging the `<FixedWidget />`\n if (measurement === CssMeasurement.Percentage && dragPercentage)\n xPosition = xPosition - dragPercentage;\n \n return {\n transform: `translate3d(${xPosition}${measurement}, 0px, 0px)`,\n // Sync with transition time in useWidgetKeyboard.ts\n transition: 'transform .4s ease-in-out'\n };\n};\n\ninterface SlidingListContainerProps extends React.PropsWithChildren<unknown> {\n position: number;\n positionType: CssMeasurement;\n\n onDrag?: (event: React.DragEvent<HTMLUListElement>) => void;\n onDragEnd?: () => void;\n\n onTouchMove?: (event: React.TouchEvent<HTMLUListElement>) => void;\n onTouchEnd?: () => void;\n\n percentageDragged?: number;\n}\n\nexport const SlidingListContainer = React.forwardRef((\n props: SlidingListContainerProps,\n ref: React.MutableRefObject<HTMLUListElement>\n): JSX.Element => {\n const { children, positionType, onDrag, onDragEnd, onTouchMove, onTouchEnd, percentageDragged, position = 0 } = props;\n\n function getEventListeners(): HashObject {\n const listenerProps: HashObject = {};\n\n if (onDrag && onDragEnd) {\n listenerProps.draggable = true;\n listenerProps.onDragEnd = onDragEnd;\n listenerProps.onDragStart = DragHelper.hideDragImage;\n listenerProps.onDragOver = onDrag;\n }\n\n if (onTouchMove && onTouchEnd && isTouchScreen) {\n listenerProps.onTouchMoveCapture = onTouchMove;\n listenerProps.onTouchEndCapture = onTouchEnd;\n }\n\n return listenerProps;\n }\n\n return (\n <ul\n className='list-unstyled d-flex flex-nowrap position-relative w-100 mb-0'\n style={getPositionStyling(position, positionType, percentageDragged)}\n ref={ref}\n {...getEventListeners()}\n >\n {children}\n </ul>\n );\n});","// extracted by mini-css-extract-plugin\nexport default {\"buttonContainer\":\"_ejId\",\"left\":\"VSAPU\",\"right\":\"kgeXh\",\"button\":\"gAsE9\",\"hoverText\":\"APA36\",\"buttonHover\":\"cqD75\",\"chevron\":\"Ev4hr\",\"extendedClickableArea\":\"AtsWP\",\"gradientRight\":\"ZuAif\",\"gradientLeft\":\"Pt3nx\",\"topPos\":\"BVcIS\"};","import * as React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { FixedWidgetState } from 'libs/shared/components/widgets/fixed-widget';\nimport { WidgetContents } from 'libs/shared/enums/WidgetContents';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './widget-button.scss';\n\nconst namespace = 'shared.widgetButton';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport enum WidgetButtonDirection {\n Left,\n Right\n}\n\ninterface WidgetButtonProps {\n onClick: (event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;\n direction: WidgetButtonDirection;\n hide: boolean;\n contents?: WidgetContents;\n useGradientBackdrop?: boolean;\n className?: string;\n hoverText?: string;\n hideExtendedClickableArea?: boolean;\n state?: FixedWidgetState;\n\n leftButtonClassName?: string;\n rightButtonClassName?: string;\n leftGradientClassName?: string;\n rightGradientClassName?: string;\n}\n\nexport const WidgetButton = React.memo(function(props: WidgetButtonProps): JSX.Element {\n const isLeft = props.direction === WidgetButtonDirection.Left;\n\n const arrowSvg = isLeft ? cvSvgLibrary.ChevronLeft : cvSvgLibrary.ChevronRight;\n\n function getPositionClass(): string {\n let className = styles.topPos;\n \n // Left / Right\n if (isLeft)\n className += ` ${styles.left} ${props.leftButtonClassName}`;\n else\n className += ` ${styles.right} ${props.rightButtonClassName}`;\n \n return className;\n }\n\n function getStyle(): React.CSSProperties {\n if (props.state?.contents === 'videos')\n return { paddingBottom: (56.25 / props.state?.viewableItems) + '%' };\n\n return { height: '100%' };\n }\n\n if (props.hide)\n return <></>;\n\n return (\n <div className={styles.buttonContainer} style={getStyle()}>\n {props.useGradientBackdrop &&\n <div className={isLeft ? `${styles.gradientLeft} ${props.leftGradientClassName}` : `${styles.gradientRight} ${props.rightGradientClassName}`} />\n }\n\n {!props.hideExtendedClickableArea && (\n <button\n onClick={props.onClick}\n className={`${styles.extendedClickableArea} ${isLeft ? styles.left : styles.right}`}\n tabIndex={-1}\n />\n )}\n\n <button\n className={`${getPositionClass()} ${styles.button} ${props.className || ''}`}\n onClick={props.onClick}\n aria-label={isLeft ? getPhrase('previous') : getPhrase('next')}\n >\n {props.hoverText && (\n <span className={`ps-3 pe-2 ${styles.hoverText}`}>{props.hoverText}</span>\n )}\n <SvgContainer\n svgName={arrowSvg}\n size={SvgContainerSize.Medium}\n className={`svg-container d-inline-block ${styles.chevron}`}\n />\n </button>\n </div>\n );\n});","export enum CssMeasurement {\n Percentage = '%',\n Pixels = 'px'\n}","export enum CurriculumType {\n Subject = 'CurriculumSubject',\n Audience = 'CurriculumAudience',\n Area = 'CurriculumArea',\n Leaf = 'CurriculumLeaf'\n}","export enum TagType {\n Normal = 'normal',\n Pedagogy = 'pedagogy',\n Hidden = 'hidden',\n Skill = 'skill',\n Curation = 'curation'\n}\n\n/**\n * This should **only** be used to create new tags in master (as it only accepts enum values).\n * Use the string enum above for all other cases.\n */\nexport enum TagTypeNumber {\n Normal = 0,\n Pedagogy = 1,\n Hidden = 2,\n Skill = 3,\n Curation = 4\n}","export enum WidgetInteraction {\n Init = 'init',\n Next = 'next',\n Previous = 'previous',\n Resize = 'resize',\n Drag = 'drag',\n Update = 'update',\n JumpToIndex = 'jump-to-index'\n}","import { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\n\nimport { useMediaQuery } from './UseMediaQuery';\n\n/**\n * @deprecated Please use useBreakpoints() instead\n */\nexport function useGetMediaQueryString(): MediaQueryStrings {\n const isXS = useMediaQuery(MediaQueryStrings.XS);\n const isSM = useMediaQuery(MediaQueryStrings.SM);\n const isMD = useMediaQuery(MediaQueryStrings.MD);\n const isLG = useMediaQuery(MediaQueryStrings.LG);\n const isXL = useMediaQuery(MediaQueryStrings.XL);\n const isXXL = useMediaQuery(MediaQueryStrings.XXL);\n\n let currentString = MediaQueryStrings.LG; // default\n if (isXS) currentString = MediaQueryStrings.XS;\n if (isSM) currentString = MediaQueryStrings.SM;\n if (isMD) currentString = MediaQueryStrings.MD;\n if (isLG) currentString = MediaQueryStrings.LG;\n if (isXL) currentString = MediaQueryStrings.XL;\n if (isXXL) currentString = MediaQueryStrings.XXL;\n\n return currentString;\n}","import { LocalPermissionName, PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ProductId } from 'libs/shared/enums/ProductId';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useProducts } from 'libs/shared/hooks/UseProducts';\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}\n\nexport function useVideoFeatureAccess() {\n const { hasPermissions, hasLocalPermissions } = usePermissions();\n const { hasProduct } = useProducts();\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 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 };\n}","import React from 'react';\nimport Scrollbars from 'react-custom-scrollbars-2';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { EntityType, LocationContext, PresentationDescriptor, UserAction } from 'libs/analytics/interfaces';\n\nimport { PartialCurriculumLinks } from 'libs/shared/components/curriculum-links/partial-loading/PartialCurriculumLinks';\nimport { CurriculumLinksV2 } from 'libs/shared/components/play-page-v2/curriculum-links/CurriculumLinksV2';\nimport { CurriculumsWidget } from 'libs/shared/components/play-page-v2/curriculum-links/CurriculumsWidget';\nimport { VideoAtAGlanceV2 } from 'libs/shared/components/play-page-v2/glance/VideoAtAGlanceV2';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { Clip, CurriculumData, PointOfInterest, PopupViewProps, Presentation, Tag, Video } from 'libs/shared/interfaces';\nimport { GetVideoAppLinkOptions } from 'libs/shared/interfaces/VideoAppLinkOptions';\n\nconst namespace = 'shared.videoGuidanceClassroomGuidePopup';\n\nconst MIN_MAX_HEIGHT = 350;\n\ninterface VideoGuidanceClassroomGuidePopupProps extends PopupViewProps {\n isLoading: boolean;\n video: Video | Clip;\n onClickClose: () => void;\n onClickViewVideo: () => void;\n pointsOfInterest: PointOfInterest[];\n curriculums: CurriculumData;\n curriculumLinksEmptyStateUrl: string;\n\n getTagAppLink?: (tag: Tag) => Core.AppLink;\n getVideoAppLink: (video: Video | Clip, opts: GetVideoAppLinkOptions) => Core.AppLink;\n\n canViewPublicLayout: boolean;\n canViewCurriculumLinks: boolean;\n canViewGlance: boolean;\n}\n\nexport function VideoGuidanceClassroomGuidePopup(props: VideoGuidanceClassroomGuidePopupProps): JSX.Element {\n const [ selectedCurriculum, setSelectedCurriculum ] = React.useState<Presentation>();\n\n const alerts = useAlerts();\n\n React.useEffect(() => {\n if (props.isLoading || !props.curriculums)\n return;\n\n if (!selectedCurriculum) {\n const currentCurriculum = props.curriculums.activeCurriculum\n ? props.curriculums.activeCurriculum\n : ArrayHelper.first(props.curriculums.availableCurriculums);\n setSelectedCurriculum(currentCurriculum);\n }\n }, [ props.isLoading, props.curriculums?.activeCurriculum?.id ]);\n\n async function onChangeCurriculum(curriculumId: string): Promise<boolean> {\n const newCurriculum = props.curriculums.availableCurriculums.find(c => c.id.toString() === curriculumId);\n\n if (!newCurriculum?.id)\n return false;\n\n if (props.curriculums.activeCurriculum?.id?.toString() === newCurriculum?.id?.toString())\n return false;\n\n setSelectedCurriculum(newCurriculum);\n\n try {\n await props.curriculums.updateCurriculum(newCurriculum);\n\n AnalyticsHelper.logUserAction({\n id: newCurriculum.id,\n name: newCurriculum.id,\n description: newCurriculum.description,\n videoId: props.video.id,\n videoName: props.video.name\n }, {\n entity: EntityType.Presentation,\n actionType: UserAction.Select,\n descriptor: PresentationDescriptor.Curriculum,\n location: LocationContext.ClassroomGuidancePopup\n });\n } catch {\n setSelectedCurriculum(selectedCurriculum);\n alerts.error(LanguageService.getPhrase(namespace, 'updateCurriculumFailed'));\n }\n }\n\n const hasCurriculumLinks = props.canViewCurriculumLinks && props.curriculums?.customerHasCurriculumLinks;\n\n return (\n <Popup\n closePopup={props.onClickClose}\n showLoadingSpinner={props.isLoading}\n title={LanguageService.getPhrase(namespace, 'classroomGuide')}\n size='lg'\n >\n {!props.isLoading && (\n <>\n <Scrollbars\n autoHeightMax={MIN_MAX_HEIGHT}\n autoHeightMin={MIN_MAX_HEIGHT}\n autoHeight\n className='pb-3'\n // move vertical scrollbar to the top\n renderThumbVertical={({ style, ...props }) => <div {...props} style={{ ...style, borderRadius: 'inherit', backgroundColor: 'rgba(0, 0, 0, 0.2)', zIndex: 5 }} className='thumb-vertical'/>}\n >\n <div className={hasCurriculumLinks ? 'mb-4' : ''}>\n <VideoAtAGlanceV2\n video={props.video}\n pointsOfInterest={props.pointsOfInterest}\n setStartTime={startTime => {\n Core.AppLinkHelper.trigger(props.getVideoAppLink(props.video, { t: startTime }));\n props.closePopup();\n }}\n getTagAppLink={props.getTagAppLink}\n suppressInteractivity={props.canViewPublicLayout}\n onClickTag={props.closePopup}\n canViewGlance={props.canViewGlance}\n hideScrollbar\n />\n </div>\n\n {hasCurriculumLinks && (\n <>\n <h2 className='h6'>\n <Text namespace={namespace} phrase='curriculumLinks' />\n </h2>\n \n <div className='mb-2'>\n <CurriculumsWidget\n curriculums={props.curriculums}\n selectedCurriculum={selectedCurriculum}\n onChangeCurriculum={onChangeCurriculum}\n noNegativePadding\n />\n </div>\n \n {!props.curriculums?.hasLoaded\n ? <PartialCurriculumLinks />\n : (\n <CurriculumLinksV2\n curriculumLinks={props.curriculums?.curriculumLinks}\n emptyStateUrl={props.curriculumLinksEmptyStateUrl}\n />\n )}\n </>\n )}\n </Scrollbars>\n\n <PopupButtons>\n <PopupButtons.Cancel\n onClick={props.onClickClose}\n text={LanguageService.getPhrase(namespace, 'close')}\n />\n <PopupButtons.Submit\n text={LanguageService.getPhrase(namespace, 'viewVideo')}\n variant='dark'\n onClick={props.onClickViewVideo}\n />\n </PopupButtons>\n </>\n )}\n </Popup>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { Flight } from 'libs/common/react/index';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { EntityType, LocationContext, UserAction, VideoGuidanceDescriptor } from 'libs/analytics/interfaces';\n\nimport { VideoGuidanceClassroomGuidePopup } from 'libs/shared/components/video-guidance/classroom-guide/popup/VideoGuidanceClassroomGuidePopup';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { ClipRequests } from 'libs/shared/flight-requests/ClipRequests';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { Clip, PopupViewProps, Video } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { useCurriculums } from 'shared/hooks/useCurriculums';\nimport { useFetchPointsOfInterest } from 'shared/hooks/useFetchPointsOfInterest';\nimport { useVideoFeatureAccess } from 'shared/hooks/useVideoFeatureAccess';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\n\ninterface VideoGuidanceClassroomGuideViewProps extends PopupViewProps {\n id: string;\n type: MasterType;\n}\n\nexport function VideoGuidanceClassroomGuideView(props: VideoGuidanceClassroomGuideViewProps): JSX.Element {\n function getRequest(): Flight.Request {\n return props.type === MasterType.Video\n ? VideoRequests.video(props.id)\n : ClipRequests.clip(props.id);\n }\n\n const video = Flight.useBasicFetch<Clip | Video>(getRequest());\n const pointsOfInterest = useFetchPointsOfInterest(props.id, true);\n const curriculums = useCurriculums(props.id, true);\n const featureAccess = useVideoFeatureAccess();\n\n function onClickClose(): void {\n AnalyticsHelper.logUserAction({\n id: video.data.id,\n name: video.data.name\n }, {\n entity: VideoHelper.isVideo(video.data)\n ? EntityType.Video\n : EntityType.Clip,\n location: LocationContext.ClassroomGuidancePopup,\n actionType: UserAction.Click,\n descriptor: VideoGuidanceDescriptor.Close\n });\n\n props.closePopup();\n }\n\n function onClickViewVideo(): void {\n AnalyticsHelper.logUserAction({\n id: video.data.id,\n name: video.data.name\n }, {\n entity: VideoHelper.isVideo(video.data)\n ? EntityType.Video\n : EntityType.Clip,\n location: LocationContext.ClassroomGuidancePopup,\n actionType: UserAction.Click,\n descriptor: VideoGuidanceDescriptor.ViewVideo\n });\n\n if (VideoHelper.isVideo(video.data)) {\n Core.AppLinkHelper.trigger({\n application: AppChannels.VIDEOS,\n action: Actions.Videos.PLAY_VIDEO,\n args: [ video.data.id, TextHelper.slugify(video.data.name) ]\n });\n\n props.closePopup();\n\n return;\n }\n\n Core.AppLinkHelper.trigger({\n application: AppChannels.CLIPS,\n action: Actions.Clips.PLAY_CLIP,\n args: [ video.data.id, TextHelper.slugify(video.data.name) ]\n });\n\n props.closePopup();\n }\n\n return (\n <VideoGuidanceClassroomGuidePopup\n isLoading={!video.hasCompleted || !pointsOfInterest.hasCompleted}\n video={video.data}\n pointsOfInterest={pointsOfInterest.items}\n curriculums={curriculums}\n onClickClose={onClickClose}\n onClickViewVideo={onClickViewVideo}\n curriculumLinksEmptyStateUrl={ImageUrls.EmptyStates.CURRICULUM_LINKS}\n getVideoAppLink={VideoAppLinkHelper.getAppLink}\n getTagAppLink={tag => ({\n application: AppChannels.SEARCH,\n action: Actions.Search.HOME,\n params: { tagOrClassification: tag.name }\n })}\n canViewCurriculumLinks={featureAccess.canViewCurriculumLinks}\n canViewPublicLayout={featureAccess.canViewPublicLayout}\n canViewGlance={featureAccess.canViewGlance}\n closePopup={props.closePopup}\n />\n );\n}","\"use strict\";\n\nvar deselectCurrent = require(\"toggle-selection\");\n\nvar clipboardToIE11Formatting = {\n \"text/plain\": \"Text\",\n \"text/html\": \"Url\",\n \"default\": \"Text\"\n}\n\nvar defaultMessage = \"Copy to clipboard: #{key}, Enter\";\n\nfunction format(message) {\n var copyKey = (/mac os x/i.test(navigator.userAgent) ? \"⌘\" : \"Ctrl\") + \"+C\";\n return message.replace(/#{\\s*key\\s*}/g, copyKey);\n}\n\nfunction copy(text, options) {\n var debug,\n message,\n reselectPrevious,\n range,\n selection,\n mark,\n success = false;\n if (!options) {\n options = {};\n }\n debug = options.debug || false;\n try {\n reselectPrevious = deselectCurrent();\n\n range = document.createRange();\n selection = document.getSelection();\n\n mark = document.createElement(\"span\");\n mark.textContent = text;\n // avoid screen readers from reading out loud the text\n mark.ariaHidden = \"true\"\n // reset user styles for span element\n mark.style.all = \"unset\";\n // prevents scrolling to the end of the page\n mark.style.position = \"fixed\";\n mark.style.top = 0;\n mark.style.clip = \"rect(0, 0, 0, 0)\";\n // used to preserve spaces and line breaks\n mark.style.whiteSpace = \"pre\";\n // do not inherit user-select (it may be `none`)\n mark.style.webkitUserSelect = \"text\";\n mark.style.MozUserSelect = \"text\";\n mark.style.msUserSelect = \"text\";\n mark.style.userSelect = \"text\";\n mark.addEventListener(\"copy\", function(e) {\n e.stopPropagation();\n if (options.format) {\n e.preventDefault();\n if (typeof e.clipboardData === \"undefined\") { // IE 11\n debug && console.warn(\"unable to use e.clipboardData\");\n debug && console.warn(\"trying IE specific stuff\");\n window.clipboardData.clearData();\n var format = clipboardToIE11Formatting[options.format] || clipboardToIE11Formatting[\"default\"]\n window.clipboardData.setData(format, text);\n } else { // all other browsers\n e.clipboardData.clearData();\n e.clipboardData.setData(options.format, text);\n }\n }\n if (options.onCopy) {\n e.preventDefault();\n options.onCopy(e.clipboardData);\n }\n });\n\n document.body.appendChild(mark);\n\n range.selectNodeContents(mark);\n selection.addRange(range);\n\n var successful = document.execCommand(\"copy\");\n if (!successful) {\n throw new Error(\"copy command was unsuccessful\");\n }\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using execCommand: \", err);\n debug && console.warn(\"trying IE specific stuff\");\n try {\n window.clipboardData.setData(options.format || \"text\", text);\n options.onCopy && options.onCopy(window.clipboardData);\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using clipboardData: \", err);\n debug && console.error(\"falling back to prompt\");\n message = format(\"message\" in options ? options.message : defaultMessage);\n window.prompt(message, text);\n }\n } finally {\n if (selection) {\n if (typeof selection.removeRange == \"function\") {\n selection.removeRange(range);\n } else {\n selection.removeAllRanges();\n }\n }\n\n if (mark) {\n document.body.removeChild(mark);\n }\n reselectPrevious();\n }\n\n return success;\n}\n\nmodule.exports = copy;\n","// extracted by mini-css-extract-plugin\nexport default {\"curriculumSubject\":\"GvGYH\",\"curriculumSet\":\"d7RK0\",\"areaLeafSet\":\"XRTAe\",\"closeButton\":\"N3l5Q\",\"heading\":\"hAxR4\",\"leafDescriptionOnly\":\"h66ke\",\"dropdown\":\"CsG6G\",\"tag\":\"rdLqY\",\"cover\":\"etwaD\",\"active\":\"aDLMe\",\"selected\":\"BMrSd\"};","// extracted by mini-css-extract-plugin\nexport default {\"learningIntention\":\"MHM6O\",\"highlightPoi\":\"U7Q6x\",\"icon\":\"H1xbT\"};","// extracted by mini-css-extract-plugin\nexport default {\"tagList\":\"Zw6d9\",\"disabled\":\"jlL1c\",\"partialTag\":\"too_N\",\"badge\":\"OjtN8\",\"close\":\"X9joI\"};","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CopyToClipboard = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _copyToClipboard = _interopRequireDefault(require(\"copy-to-clipboard\"));\n\nvar _excluded = [\"text\", \"onCopy\", \"options\", \"children\"];\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar CopyToClipboard = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(CopyToClipboard, _React$PureComponent);\n\n var _super = _createSuper(CopyToClipboard);\n\n function CopyToClipboard() {\n var _this;\n\n _classCallCheck(this, CopyToClipboard);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"onClick\", function (event) {\n var _this$props = _this.props,\n text = _this$props.text,\n onCopy = _this$props.onCopy,\n children = _this$props.children,\n options = _this$props.options;\n\n var elem = _react[\"default\"].Children.only(children);\n\n var result = (0, _copyToClipboard[\"default\"])(text, options);\n\n if (onCopy) {\n onCopy(text, result);\n } // Bypass onClick if it was present\n\n\n if (elem && elem.props && typeof elem.props.onClick === 'function') {\n elem.props.onClick(event);\n }\n });\n\n return _this;\n }\n\n _createClass(CopyToClipboard, [{\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n _text = _this$props2.text,\n _onCopy = _this$props2.onCopy,\n _options = _this$props2.options,\n children = _this$props2.children,\n props = _objectWithoutProperties(_this$props2, _excluded);\n\n var elem = _react[\"default\"].Children.only(children);\n\n return /*#__PURE__*/_react[\"default\"].cloneElement(elem, _objectSpread(_objectSpread({}, props), {}, {\n onClick: this.onClick\n }));\n }\n }]);\n\n return CopyToClipboard;\n}(_react[\"default\"].PureComponent);\n\nexports.CopyToClipboard = CopyToClipboard;\n\n_defineProperty(CopyToClipboard, \"defaultProps\", {\n onCopy: undefined,\n options: undefined\n});","\"use strict\";\n\nvar _require = require('./Component'),\n CopyToClipboard = _require.CopyToClipboard;\n\nCopyToClipboard.CopyToClipboard = CopyToClipboard;\nmodule.exports = CopyToClipboard;","\nmodule.exports = function () {\n var selection = document.getSelection();\n if (!selection.rangeCount) {\n return function () {};\n }\n var active = document.activeElement;\n\n var ranges = [];\n for (var i = 0; i < selection.rangeCount; i++) {\n ranges.push(selection.getRangeAt(i));\n }\n\n switch (active.tagName.toUpperCase()) { // .toUpperCase handles XHTML\n case 'INPUT':\n case 'TEXTAREA':\n active.blur();\n break;\n\n default:\n active = null;\n break;\n }\n\n selection.removeAllRanges();\n return function () {\n selection.type === 'Caret' &&\n selection.removeAllRanges();\n\n if (!selection.rangeCount) {\n ranges.forEach(function(range) {\n selection.addRange(range);\n });\n }\n\n active &&\n active.focus();\n };\n};\n"],"names":["useEventsServiceSubscribe","event","callback","once","shouldSubscribe","unsubscribe","useEffect","EventsService","listeners","this","registerListener","deregisterListener","args","triggerCallbacks","executionLimit","Error","push","idxToRemove","findIndex","e","splice","length","callbacksToRemove","forEach","listener","executionCount","apply","getPhrase","CurriculumLinkItem","props","curriculumTag","data","key","id","className","selected","onClick","onChangeCurriculum","toString","name","src","cover","url","size","alt","namespace","CurriculumLinksEmptyState","emptyStateUrl","altText","phrase","PartialCurriculumLinkSection","PartialCurriculumLinks","BRACKET_SEGMENT_REGEX","BASE_PILL_CLASS","CurriculumLeaf","getCurriculumCodeClass","baseClass","leaf","uiContainsCodes","codeRef","current","width","getBoundingClientRect","trySetMaxCodeWidth","description","style","minWidth","codeWidth","ref","Text","dangerouslySetInnerHTML","__html","CurriculumSubject","audienceSegment","subjectSegment","audienceBracketSegments","areaAndLeafSets","getLeafStyleClass","linkSet","areasAndLeaves","areaAndLeafSet","areaText","CurriculumType","map","ca","join","find","l","match","Object","keys","i","CurriculumLinksV2","setCodeWidth","currentVal","curriculumLinkSets","newSet","curriculumLinks","subject","audience","areas","leaves","curriculumObj","type","linkSetKey","CurriculumsWidget","collection","selectedCurriculum","curriculums","nonEmptyCurriculums","childClassName","childComponent","_props","partialLoadingComponent","widgetDataDeps","noNegativePadding","POI_LINK_LINE","useLearningIntentionMarkdown","video","hasGlanceData","useState","markdownHTML","setMarkdownHTML","content","glance","learningIntention","replace","format","useHighlightPointOfInterest","pointOfInterest","shouldHighlight","useRef","onGlancePoiMouseOver","onGlancePoiMouseLeave","hoveredPoi","classList","add","remove","addEventListener","removeEventListener","PointOfInterest","timeStamp","DurationHelper","poi","startTime","suppressInteractivity","wideBadge","DivButton","onClickPoiItem","PointOfInterestList","sortedPointsOfInterest","pointsOfInterest","sort","a","b","hasTimePointOverHours","some","LanguageService","SCROLL_HEIGHT_MAX","ScrollbarWrapper","hideScrollbar","children","autoHeight","autoHeightMax","VideoAtAGlanceV2","learningIntentionMarkdownHTML","canViewGlance","textToCopy","setTextToCopy","tags","VideoHelper","filter","tag","tagType","TagType","getTags","innerText","Tooltip","title","spanHack","spanHackClassName","text","SvgContainer","svgName","S","analyticsData","videoId","videoName","analyticsOptions","actionType","entity","location","AnalyticsHelper","TagList","TagHelper","getTagAppLink","onClickTag","time","setStartTime","PartialTagItem","tagClass","classNames","getTagActionProps","renderAsSpan","appLink","getAppLink","TagItem","disabled","toLowerCase","hasThemeColour","themeColours","secondary","getTagTypeClass","onRemove","backgroundColor","role","getTagSortValue","sortedTags","SeeMore","AppLink","descriptor","WidgetHeader","hasDescription","showSeeMoreLink","SLIDER_ANIMATION_TIME","useWidgetKeyboard","options","state","containerRef","mediaQuery","isTabbing","setIsTabbing","dynamicAttributes","setDynamicAttributes","focusedWidgetIndex","setFocusedWidgetIndex","isTouch","containerLeftPosition","setTimeout","dynamicWidgetState","focusableItems","Array","from","reduce","acc","item","rect","isItemVisable","left","containerRightPosition","right","getDynamicAttributes","offset","onFocusWidget","index","document","querySelector","onBlurWidget","getFixedAttributes","fixedWidgetState","viewableItems","focusNext","items","querySelectorAll","nextFocusableElement","focus","focusPrev","prevFocusableElement","blankImage","Image","DragHelper","dataTransfer","setDragImage","FunctionHelper","isTouchScreen","UserAgentHelper","SlidingListContainer","listenerProps","xPosition","measurement","dragPercentage","positionType","onDrag","onDragEnd","onTouchMove","onTouchEnd","percentageDragged","position","CssMeasurement","C","transform","transition","draggable","onDragStart","onDragOver","onTouchMoveCapture","onTouchEndCapture","WidgetButtonDirection","WidgetButton","isLeft","direction","Left","arrowSvg","hide","contents","paddingBottom","height","useGradientBackdrop","leftGradientClassName","rightGradientClassName","hideExtendedClickableArea","tabIndex","leftButtonClassName","rightButtonClassName","hoverText","TagTypeNumber","WidgetInteraction","useGetMediaQueryString","isXS","isSM","isMD","isLG","isXL","isXXL","currentString","useVideoFeatureAccess","hasPermissions","hasLocalPermissions","hasNP","hasProduct","canViewResources","canViewInteractives","canViewClips","canViewCurriculumLinks","canUseActions","canViewPublicLayout","canViewResourceItems","canNavigate","MIN_MAX_HEIGHT","VideoGuidanceClassroomGuidePopup","setSelectedCurriculum","alerts","isLoading","currentCurriculum","activeCurriculum","ArrayHelper","availableCurriculums","hasCurriculumLinks","customerHasCurriculumLinks","Popup","closePopup","onClickClose","showLoadingSpinner","autoHeightMin","renderThumbVertical","borderRadius","zIndex","getVideoAppLink","t","curriculumId","newCurriculum","c","updateCurriculum","error","hasLoaded","curriculumLinksEmptyStateUrl","PopupButtons","variant","onClickViewVideo","VideoGuidanceClassroomGuideView","MasterType","VideoRequests","ClipRequests","useFetchPointsOfInterest","useCurriculums","featureAccess","hasCompleted","application","action","TextHelper","ImageUrls","VideoAppLinkHelper","params","tagOrClassification","deselectCurrent","clipboardToIE11Formatting","module","exports","debug","message","reselectPrevious","range","selection","mark","success","createRange","getSelection","createElement","textContent","ariaHidden","all","top","clip","whiteSpace","webkitUserSelect","MozUserSelect","msUserSelect","userSelect","stopPropagation","preventDefault","clipboardData","console","warn","window","clearData","setData","onCopy","body","appendChild","selectNodeContents","addRange","execCommand","err","copyKey","test","navigator","userAgent","prompt","removeRange","removeAllRanges","removeChild","_typeof","obj","Symbol","iterator","constructor","prototype","defineProperty","value","CopyToClipboard","_react","_interopRequireDefault","_copyToClipboard","_excluded","__esModule","ownKeys","object","enumerableOnly","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","enumerable","_objectSpread","target","arguments","source","_defineProperty","getOwnPropertyDescriptors","defineProperties","_defineProperties","configurable","writable","_setPrototypeOf","o","p","setPrototypeOf","__proto__","_assertThisInitialized","self","ReferenceError","_getPrototypeOf","getPrototypeOf","_React$PureComponent","subClass","superClass","TypeError","create","_inherits","Constructor","protoProps","Derived","hasNativeReflectConstruct","_super","Reflect","construct","sham","Proxy","Boolean","valueOf","call","_isNativeReflectConstruct","result","Super","NewTarget","_possibleConstructorReturn","_this","instance","_classCallCheck","_len","_key","concat","_this$props","elem","Children","only","_this$props2","excluded","sourceKeys","indexOf","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","_objectWithoutProperties","cloneElement","PureComponent","undefined","rangeCount","active","activeElement","ranges","getRangeAt","tagName","toUpperCase","blur"],"sourceRoot":""}
@@ -0,0 +1,3 @@
1
+ /*! For license information please see 537-6efb9bc099-lite.chunk.js.LICENSE.txt */
2
+ "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[537],{2192:(e,t,n)=>{n.d(t,{M:()=>E,Q:()=>y});var r=n(32735),a=n(45157),o=n(36848),c=n(60376),l=n(5465),i=n(83914),s=n(83345),u=n(54610),m=n(67453),d=n(45778),f=n(35223),h=n(92038),v="shared.subjectWidgetItem",p=function(e){var t=e.name,n=e.multiline,a=e.noUnderLine,o="".concat(h.Z.comingSoonPanel," \n d-flex flex-column align-items-center justify-content-center px-3 text-center"),c="";return n?c+=" ".concat(h.Z.clamped," clamp-2"):(o+=" text-nowrap",c+=" text-truncate"),r.createElement("div",{className:o},r.createElement("small",{className:"text-secondary"},r.createElement(s.x,{namespace:v,phrase:"comingSoon"})),r.createElement("p",{className:"".concat(a?"":h.Z.name," h6")},r.createElement("span",{className:c},t)))},g=function(e){var t=e.name,n=e.multiline,a=e.subtitle,o=e.noUnderLine,c=e.newVideosCount,l="px-3 d-flex flex-column justify-content-center",i="".concat(o?"":h.Z.name," h6");return n?i+=" ".concat(c?"clamp-2":"clamp-3"," text-start"):(l+=" text-nowrap text-truncate",i+=" text-truncate mb-0"),r.createElement("div",{className:l},a&&r.createElement("div",{className:"text-secondary clamp-1 ".concat(h.Z.text)},a),r.createElement("div",{className:i,title:t},t),!!c&&r.createElement("div",{className:"fw-semibold d-inline-block rounded-pill px-2 mt-1 bg-light-green w-fit h-fit text-green ".concat(h.Z.newVideos)},r.createElement(s.x,{namespace:v,phrase:"newVideos",options:{smartCount:c}})))};function E(e){var t,n=m.j.createUrl(e.coverUrl,{size:e.isLarge?u.h2.Medium:u.h2.Small}),o=void 0;d.G.isClassification(e.data)&&(o=e.data);var s={name:e.data.name,multiline:e.isLarge||e.multiline,subtitle:e.subtitle,noUnderLine:e.highlightOnHover,newVideosCount:e.showNewVideosCount?null===(t=null==o?void 0:o.externalMetadata)||void 0===t?void 0:t.childDashboardNewVideoCount:0};return r.createElement("div",{className:"".concat(e.themeColor?h.Z.hasThemeColor:"border"," d-flex position-relative ").concat(e.className," ").concat(h.Z.widgetItem," ").concat(e.isSelected?"border-success border-2":""," ").concat(e.highlightOnHover&&!e.themeColor?"bg-light-blue-hover":""),style:e.themeColor?{"--themeColor":e.themeColor}:{},id:"".concat(e.data.id,"-").concat(a.Y.getRandomInt())},e.isSelected&&r.createElement("div",{className:"".concat(h.Z.selectedMask," border-2")}),r.createElement("div",{className:"".concat(h.Z.imagePanel," ").concat(e.isLarge?h.Z.large:"")},e.isSelected&&!e.hideCheckmark&&r.createElement("div",{className:h.Z.selected},r.createElement(c.f,{svgName:f.vn.Check,svgSize:i.S.Large,textVariant:"white",variant:"green"})),r.createElement("div",{className:"".concat(h.Z.image," ").concat(e.imageClassName),style:e.coverUrl?{backgroundImage:"url('".concat(n,"')")}:{}}),!e.hideFallback&&r.createElement(l.oy,{type:l.mS.Subject,extraClasses:e.isLarge?h.Z.large:""})),e.isComingSoon?r.createElement(p,Object.assign({},s)):r.createElement(g,Object.assign({},s)))}function y(e){var t,n=e.getChildAppLink?e.getChildAppLink(e.data):null;return r.createElement(r.Fragment,null,n?r.createElement(o.F,{className:h.Z.appLink,appLink:n,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,appLinkOptions:null===(t=e.getChildAppLinkOptions)||void 0===t?void 0:t.call(e)},r.createElement(E,Object.assign({},e))):r.createElement(E,Object.assign({},e)))}},75919:(e,t,n)=>{n.d(t,{N:()=>o});var r=n(32735);const a={annotation:"LkdHB",above:"ROdbm",below:"OzyHx",left:"W9EBF",right:"zhio2",divider:"cdR_p",imageContainer:"QZZMF"};function o(e){return r.createElement("div",{className:(t="d-flex align-items-center text-center position-relative w-100 ".concat(a.imageContainer),"center"===e.contentPosition&&(t+=" px-5 justify-content-center"),"right"===e.contentPosition&&(t+=" me-n5 justify-content-end"),t)},!!e.annotationUrl&&r.createElement("div",{className:function(){var t=a.annotation;switch(e.annotationPosition){case"top-left":t+=" ".concat(a.above," ").concat(a.left);break;case"top-right":t+=" ".concat(a.above," ").concat(a.right);break;case"bottom-left":t+=" ".concat(a.below," ").concat(a.left);break;case"bottom-right":t+=" ".concat(a.below," ").concat(a.right)}return e.annotationClassName&&(t+=" ".concat(e.annotationClassName)),t}()},r.createElement("img",{className:"img-fluid",src:e.annotationUrl})),e.children,"right"===e.contentPosition&&r.createElement("div",{className:a.divider}));var t}o.defaultProps={contentPosition:"center"}},39375:(e,t,n)=>{n.d(t,{Y:()=>u});var r=n(32735),a=n(54610),o=n(67453),c=n(2248);const l={magicTab:"H5jzm",subjectPlaceholder:"r1L6T",placeholderCover:"z9CFT",promotedTopicPlaceholder:"PbYs6",promotedTopicPlaceholderText:"hZ8Nf"};function i(e){return r.createElement("li",{className:"col-4"},r.createElement("div",{className:"d-flex border rounded-3 overflow-hidden ".concat(l.subjectPlaceholder)},e.coverUrl?r.createElement("div",{className:l.placeholderCover},r.createElement("img",{className:"img-fluid",src:o.j.createUrl(e.coverUrl,{size:a.h2.Small})})):r.createElement("div",{className:"".concat(l.placeholderCover," bg-light-blue")})))}function s(){return r.createElement("li",{className:"col-4"},r.createElement("div",{className:"bg-light-blue rounded-3 w-100 p-1 ".concat(l.promotedTopicPlaceholder)}))}function u(e){var t,n,a,o=Math.max(12-(null!==(n=null===(t=e.subjects)||void 0===t?void 0:t.length)&&void 0!==n?n:0),0);return r.createElement(c.L,{presentation:e.presentation,curriculum:e.curriculum,editingCurriculum:e.editingCurriculum},r.createElement("div",{className:"px-3 pt-3 w-100 d-flex flex-column align-items-center"},r.createElement("div",{className:"rounded-3 border overflow-hidden d-flex mb-2"},r.createElement("div",{className:"bg-light ".concat(l.magicTab)}),r.createElement("div",{className:"".concat(l.magicTab)})),r.createElement("ul",{className:"list-unstyled mb-0 row w-100 g-xl-2 g-lg-1 mb-2"},null===(a=e.subjects)||void 0===a?void 0:a.map((function(e){var t;return r.createElement(i,{key:e.id,coverUrl:null===(t=e.cover)||void 0===t?void 0:t.url})})),new Array(o).fill(0).map((function(e,t){return r.createElement(i,{key:t})}))),r.createElement("ul",{className:"list-unstyled mb-0 row w-100 g-xl-2 g-lg-1"},r.createElement(s,null),r.createElement(s,null),r.createElement(s,null),r.createElement(s,null),r.createElement(s,null),r.createElement(s,null),r.createElement(s,null),r.createElement(s,null),r.createElement(s,null))))}},2248:(e,t,n)=>{n.d(t,{L:()=>v});var r=n(32735),a=n(60376),o=n(83914),c=n(2786),l=n(83345),i=n(72639),s=n(79967),u=n(35223),m=n(87114);const d={dot:"AlRQD",logo:"L42gR",blackBar:"ESCxm",topNav:"a3G_4",leftNav:"YxGVV",belowHeader:"jc_cg",leftNavIcon:"U6i6r",leftNavText:"LnYlW",presentationPlaceholderIcon:"Ljaju",presentationIcon:"QdwPq",presentationPlaceholderText:"af06V",curriculumIcon:"N7T4T",curriculumIconSmall:"_6xrUg",curriculumContainer:"Z65qX",iconPlaceholder:"CKOXL",shadow:"zygeJ",presentationName:"Oj7Dt"};var f="onboarding.mockLayout";function h(){return r.createElement("div",{className:"d-flex align-items-center justify-content-center mb-2 px-3"},r.createElement("div",{className:"".concat(d.leftNavIcon," rounded-circle")}),r.createElement("div",{className:"".concat(d.leftNavText," rounded-pill")}))}function v(e){var t,n,v=(0,s.k)();return r.createElement("div",{className:"border border-dark border-2 bg-white rounded-3 user-select-none overflow-hidden position-relative h-100 w-100"},!!e.editingCurriculum&&r.createElement("div",{className:"w-100 h-100 position-absolute ".concat(d.shadow)},r.createElement("div",{className:"d-flex align-items-center h-100 w-50 ".concat(d.curriculumContainer)},r.createElement("div",{className:"bg-white rounded-3 border p-3 w-100"},r.createElement("h2",{className:"h6 text-start"},r.createElement(l.x,{namespace:f,phrase:"curriculum"})),e.curriculum?r.createElement("div",{className:"d-flex align-items-center"},r.createElement("div",{className:"".concat(d.curriculumIcon," rounded-circle me-2 border")},r.createElement(a.f,{imageUrl:null===(t=e.curriculum.cover)||void 0===t?void 0:t.url})),r.createElement("div",{className:"text-start"},e.curriculum.name)):r.createElement("div",{className:"d-flex align-items-center text-secondary"},r.createElement("div",{className:"me-2 rounded-circle p-1 ".concat(d.iconPlaceholder)},r.createElement(a.f,{svgSize:o.S.Large,textVariant:"secondary",svgName:u.vn.GraduationCap})),r.createElement(l.x,{namespace:f,phrase:"selectCurriculum"}))))),r.createElement("div",{className:"bg-dark d-flex px-3 py-2 ".concat(d.blackBar)},r.createElement("div",{className:"rounded-circle me-2 ".concat(d.dot)}),r.createElement("div",{className:"rounded-circle me-2 ".concat(d.dot)}),r.createElement("div",{className:"rounded-circle ".concat(d.dot)})),r.createElement("div",{className:"border-bottom px-3 py-2 d-flex align-items-center ".concat(d.topNav)},r.createElement("div",{className:"".concat(d.logo," me-4")},v.xs?r.createElement(c.bc,null):r.createElement(c.$S,null)),r.createElement("div",{className:"form-control w-75 d-flex justify-content-start"},r.createElement(o.x,{svgName:u.vn.Search})),!!e.curriculum&&r.createElement("div",{className:"".concat(d.curriculumIconSmall," rounded-circle ms-2 me-n1 border")},r.createElement(a.f,{imageUrl:null===(n=e.curriculum.cover)||void 0===n?void 0:n.url}))),r.createElement("div",{className:"d-flex ".concat(d.belowHeader)},r.createElement("div",{className:"".concat(d.leftNav," border-end")},r.createElement("div",{className:"d-flex flex-column pt-3 h-100"},r.createElement(h,null),r.createElement(h,null),r.createElement(h,null),r.createElement(h,null),r.createElement(h,null),r.createElement("div",{className:"d-flex align-items-end h-100 w-100"},r.createElement("div",{className:"border-top p-3 w-100"},r.createElement("div",{className:"d-flex align-items-center"},r.createElement("div",{className:"".concat(function(){if(!e.presentation)return d.presentationPlaceholderIcon;switch(m.i.getMappedPresentationLevel(e.presentation.learningLevel)){case i.p.Level_1:return"bg-indigo ".concat(d.presentationIcon);case i.p.Level_3:return"bg-blue ".concat(d.presentationIcon);default:case i.p.Level_2:return"bg-green ".concat(d.presentationIcon)}}()," text-white rounded")},r.createElement(o.x,{svgName:u.vn.School,size:o.S.Large})),e.presentation?r.createElement("span",{className:"fw-semibold text-truncate ".concat(d.presentationName)},e.presentation.name):r.createElement("div",{className:"".concat(d.presentationPlaceholderText," fw-semibold")},r.createElement(l.x,{namespace:f,phrase:"schoolLevel"}))))))),r.createElement("div",{className:"w-100 h-100 overflow-hidden"},e.children)))}},1039:(e,t,n)=>{n.r(t),n.d(t,{OnboardingSchoolLevelView:()=>j});var r=n(32735),a=n(57900),o=n(2948),c=n(20354),l=n(65858),i=n(11607),s=n(83345),u=n(2192),m=n(38143),d=n(19808),f=n(72639),h=n(31949),v=n(84703),p=n(87114),g=n(99742),E=n(86698),y=n(75359),b=n(12058),N=n(40695),x=n(75919),w=n(39375),L=n(73190),_=n(90815);const O={cover:"p3PFT",presentationList:"PT_ec"};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 k(){k=function(){return t};var e,t={},n=Object.prototype,r=n.hasOwnProperty,a=Object.defineProperty||function(e,t,n){e[t]=n.value},o="function"==typeof Symbol?Symbol:{},c=o.iterator||"@@iterator",l=o.asyncIterator||"@@asyncIterator",i=o.toStringTag||"@@toStringTag";function s(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{s({},"")}catch(e){s=function(e,t,n){return e[t]=n}}function u(e,t,n,r){var o=t&&t.prototype instanceof g?t:g,c=Object.create(o.prototype),l=new I(r||[]);return a(c,"_invoke",{value:O(e,n,l)}),c}function m(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}t.wrap=u;var d="suspendedStart",f="suspendedYield",h="executing",v="completed",p={};function g(){}function E(){}function y(){}var b={};s(b,c,(function(){return this}));var N=Object.getPrototypeOf,x=N&&N(N(j([])));x&&x!==n&&r.call(x,c)&&(b=x);var w=y.prototype=g.prototype=Object.create(b);function L(e){["next","throw","return"].forEach((function(t){s(e,t,(function(e){return this._invoke(t,e)}))}))}function _(e,t){function n(a,o,c,l){var i=m(e[a],e,o);if("throw"!==i.type){var s=i.arg,u=s.value;return u&&"object"==C(u)&&r.call(u,"__await")?t.resolve(u.__await).then((function(e){n("next",e,c,l)}),(function(e){n("throw",e,c,l)})):t.resolve(u).then((function(e){s.value=e,c(s)}),(function(e){return n("throw",e,c,l)}))}l(i.arg)}var o;a(this,"_invoke",{value:function(e,r){function a(){return new t((function(t,a){n(e,r,t,a)}))}return o=o?o.then(a,a):a()}})}function O(t,n,r){var a=d;return function(o,c){if(a===h)throw Error("Generator is already running");if(a===v){if("throw"===o)throw c;return{value:e,done:!0}}for(r.method=o,r.arg=c;;){var l=r.delegate;if(l){var i=S(l,r);if(i){if(i===p)continue;return i}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(a===d)throw a=v,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);a=h;var s=m(t,n,r);if("normal"===s.type){if(a=r.done?v:f,s.arg===p)continue;return{value:s.arg,done:r.done}}"throw"===s.type&&(a=v,r.method="throw",r.arg=s.arg)}}}function S(t,n){var r=n.method,a=t.iterator[r];if(a===e)return n.delegate=null,"throw"===r&&t.iterator.return&&(n.method="return",n.arg=e,S(t,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),p;var o=m(a,t.iterator,n.arg);if("throw"===o.type)return n.method="throw",n.arg=o.arg,n.delegate=null,p;var c=o.arg;return c?c.done?(n[t.resultName]=c.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,p):c:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,p)}function P(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function T(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function I(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(P,this),this.reset(!0)}function j(t){if(t||""===t){var n=t[c];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var a=-1,o=function n(){for(;++a<t.length;)if(r.call(t,a))return n.value=t[a],n.done=!1,n;return n.value=e,n.done=!0,n};return o.next=o}}throw new TypeError(C(t)+" is not iterable")}return E.prototype=y,a(w,"constructor",{value:y,configurable:!0}),a(y,"constructor",{value:E,configurable:!0}),E.displayName=s(y,i,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===E||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,y):(e.__proto__=y,s(e,i,"GeneratorFunction")),e.prototype=Object.create(w),e},t.awrap=function(e){return{__await:e}},L(_.prototype),s(_.prototype,l,(function(){return this})),t.AsyncIterator=_,t.async=function(e,n,r,a,o){void 0===o&&(o=Promise);var c=new _(u(e,n,r,a),o);return t.isGeneratorFunction(n)?c:c.next().then((function(e){return e.done?e.value:c.next()}))},L(w),s(w,i,"Generator"),s(w,c,(function(){return this})),s(w,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},t.values=j,I.prototype={constructor:I,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(T),!t)for(var n in this)"t"===n.charAt(0)&&r.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var n=this;function a(r,a){return l.type="throw",l.arg=t,n.next=r,a&&(n.method="next",n.arg=e),!!a}for(var o=this.tryEntries.length-1;o>=0;--o){var c=this.tryEntries[o],l=c.completion;if("root"===c.tryLoc)return a("end");if(c.tryLoc<=this.prev){var i=r.call(c,"catchLoc"),s=r.call(c,"finallyLoc");if(i&&s){if(this.prev<c.catchLoc)return a(c.catchLoc,!0);if(this.prev<c.finallyLoc)return a(c.finallyLoc)}else if(i){if(this.prev<c.catchLoc)return a(c.catchLoc,!0)}else{if(!s)throw Error("try statement without catch or finally");if(this.prev<c.finallyLoc)return a(c.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var a=this.tryEntries[n];if(a.tryLoc<=this.prev&&r.call(a,"finallyLoc")&&this.prev<a.finallyLoc){var o=a;break}}o&&("break"===e||"continue"===e)&&o.tryLoc<=t&&t<=o.finallyLoc&&(o=null);var c=o?o.completion:{};return c.type=e,c.arg=t,o?(this.method="next",this.next=o.finallyLoc,p):this.complete(c)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),p},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),T(n),p}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var a=r.arg;T(n)}return a}}throw Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:j(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),p}},t}function S(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,o,c,l=[],i=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;i=!1}else for(;!(i=(r=o.call(n)).done)&&(l.push(r.value),l.length!==t);i=!0);}catch(e){s=!0,a=e}finally{try{if(!i&&null!=n.return&&(c=n.return(),Object(c)!==c))return}finally{if(s)throw a}}return l}}(e,t)||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}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function P(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var T=function(e,t,n,r){return new(n||(n=Promise))((function(a,o){function c(e){try{i(r.next(e))}catch(e){o(e)}}function l(e){try{i(r.throw(e))}catch(e){o(e)}}function i(e){var t;e.done?a(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(c,l)}i((r=r.apply(e,t||[])).next())}))},I="onboarding.schoolLevel";function j(e){var t=(0,L.Q)(e.redirectUrl),n=t.onClickBack,C=t.exitOnboarding,P=t.completeStepAsync,j=t.onSaveError,A=(0,_.H)().logEvent,U=(0,E.y)(),V=U.availablePresentations,Z=U.setPresentation,F=c.a.useBasicFetch(h.N.currentUser()),z=(0,v.n)(),G=S((0,o.D)(m.g.AUDIENCE_FILTER,void 0,{storage:a.Z1.SessionStorage}),2)[1],D=S(r.useState(),2),M=D[0],R=D[1];return r.createElement(N.z,{namespace:I},r.createElement(N.z.Left,{className:"bg-dark-blue d-flex flex-column align-items-end justify-content-center"},r.createElement(x.N,{contentPosition:"right",annotationUrl:function(){var e,t=g.W.OnboardingV2.SchoolLevel,n=(null===(e=F.data)||void 0===e?void 0:e.instanceRegion)===d.b.US;if(!M)return t.ANNOTATION_NONE_SELECTED;switch(p.i.getMappedPresentationLevel(M.learningLevel)){case f.p.Level_1:return z?t.ANNOTATION_LEVEL_1_ICP:t.ANNOTATION_LEVEL_1;case f.p.Level_2:return z?t.ANNOTATION_LEVEL_2_ICP:n?t.ANNOTATION_LEVEL_2_US:t.ANNOTATION_LEVEL_2;case f.p.Level_3:return z?n?t.ANNOTATION_LEVEL_3_ICP_US:t.ANNOTATION_LEVEL_3_ICP:n?t.ANNOTATION_LEVEL_3_US:t.ANNOTATION_LEVEL_3;default:return t.ANNOTATION_LEVEL_1}}(),annotationPosition:"bottom-left"},r.createElement(w.Y,{presentation:M}))),r.createElement(N.z.Right,{hasCustomButtons:!1,onClickNext:function(){return T(this,void 0,void 0,k().mark((function e(){return k().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return A(l.Vw.Click,l.Ix.Next,{presentationId:M.id,presentationName:M.name,presentationDescription:M.description},{preferredPresentationOverride:M}),G(null),e.prev=2,e.next=5,Z(M,"activeAndPreferred");case 5:return e.next=7,P({preferredPresentationOverride:M});case 7:e.next=13;break;case 9:return e.prev=9,e.t0=e.catch(2),j(),e.abrupt("return",Promise.reject());case 13:case"end":return e.stop()}}),e,null,[[2,9]])})))},onClickBack:n,onClickComeBackLater:C,disableNext:!M},r.createElement(y.W,null,r.createElement(s.x,{phrase:z?"headingKdm":"heading"})),r.createElement(b.X,null,r.createElement(s.x,{phrase:"info"})),r.createElement("ul",{className:"list-unstyled mb-1 ".concat(O.presentationList)},V.map((function(e){var t;return r.createElement("li",{key:e.id,className:"mb-2"},r.createElement(i.L,{onClick:function(){return function(e){A(l.Vw.Select,l.Ix.SelectPresentation,{presentationId:e.id,presentationName:e.name,presentationDescription:e.description}),R(e)}(e)}},r.createElement(u.M,{data:e,coverUrl:null===(t=e.cover)||void 0===t?void 0:t.url,imageClassName:O.cover,isSelected:e.id===(null==M?void 0:M.id)})))}))),r.createElement(b.X,null,r.createElement(s.x,{phrase:"dontWorry"}))))}},92038:(e,t,n)=>{n.d(t,{Z:()=>r});const r={appLink:"fFjKN",name:"A_by9",selectedMask:"xSQtR",widgetItem:"Ys9W_",hasThemeColor:"DX2ua",text:"JfAoy",imagePanel:"aUNDc",partialLargeImage:"RuLxv",selected:"BViJb",image:"LkTep",dragHandle:"CJqvP",large:"R5clw",comingSoonPanel:"Wa2PG",newVideos:"s61h8",editSubjectsItem:"gGNFD",allSubjectsItem:"IHdlJ",logoContainer:"Nzaes",draggingItem:"zUOye",partialLargeFallback:"FmJP9",partialIcon:"sdZuo"}}}]);
3
+ //# sourceMappingURL=537-6efb9bc099-lite.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scripts/537-6efb9bc099-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/components/widgets/items/subject-widget-item/CoverPill.tsx","file:///app/packages/projects/lite/src/apps/onboarding/components/left-panel-item/left-panel-item.scss","file:///app/packages/projects/lite/src/apps/onboarding/components/left-panel-item/LeftPanelItem.tsx","file:///app/packages/projects/lite/src/apps/onboarding/components/mock-views/discover/mock-discover.scss","file:///app/packages/projects/lite/src/apps/onboarding/components/mock-views/discover/MockDiscover.tsx","file:///app/packages/projects/lite/src/apps/onboarding/components/mock-views/layout/mock-layout.scss","file:///app/packages/projects/lite/src/apps/onboarding/components/mock-views/layout/MockLayout.tsx","file:///app/packages/projects/lite/src/apps/onboarding/views/school-level/school-level.scss","file:///app/packages/projects/lite/src/apps/onboarding/views/school-level/OnboardingSchoolLevelView.tsx","file:///app/packages/libs/shared/src/components/widgets/items/subject-widget-item/cover-pill.scss"],"sourcesContent":["import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { RandomHelper } from 'libs/common/react/utils/RandomHelper';\n\nimport { AnalyticsOptions, HashObject } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { IconCircle } from 'libs/shared/components/icon-circle/IconCircle';\nimport { ImageFallback, ImageFallbackType } from 'libs/shared/components/image/ImageFallback';\nimport { SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { ImageSize } from 'libs/shared/enums/Images';\nimport { BaseObject, Classification, Presentation } from 'libs/shared/interfaces';\nimport { ImageHelper } from 'libs/shared/utils/ImageHelper';\nimport { MasterTypeHelper } from 'libs/shared/utils/MasterTypeHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './cover-pill.scss';\n\nconst namespace = 'shared.subjectWidgetItem';\n\ninterface NamePanelProps {\n name: string;\n multiline?: boolean;\n subtitle?: string;\n noUnderLine?: boolean;\n newVideosCount?: number;\n}\n\nconst ComingSoonNamePanel = ({ name, multiline, noUnderLine }: NamePanelProps) => {\n let wrapperClassName = `${styles.comingSoonPanel} \n d-flex flex-column align-items-center justify-content-center px-3 text-center`;\n\n let textClassName = '';\n\n if (!multiline) {\n wrapperClassName += ' text-nowrap';\n textClassName += ' text-truncate';\n } else {\n textClassName += ` ${styles.clamped} clamp-2`;\n }\n\n return (\n <div className={wrapperClassName}>\n <small className='text-secondary'><Text namespace={namespace} phrase='comingSoon' /></small>\n <p className={`${noUnderLine ? '' : styles.name} h6`}><span className={textClassName}>{name}</span></p>\n </div>\n );\n};\n\nconst NormalNamePanel = ({ name, multiline, subtitle, noUnderLine, newVideosCount }: NamePanelProps) => {\n let wrapperClassName = 'px-3 d-flex flex-column justify-content-center';\n let textClassName = `${noUnderLine ? '' : styles.name} h6`;\n\n if (!multiline) {\n wrapperClassName += ' text-nowrap text-truncate';\n textClassName += ' text-truncate mb-0';\n } else {\n textClassName += ` ${newVideosCount ? 'clamp-2' : 'clamp-3'} text-start`;\n }\n\n return (\n <div className={wrapperClassName}>\n {subtitle && <div className={`text-secondary clamp-1 ${styles.text}`}>{subtitle}</div>}\n <div className={textClassName} title={name}>{name}</div>\n {!!newVideosCount && (\n <div className={`fw-semibold d-inline-block rounded-pill px-2 mt-1 bg-light-green w-fit h-fit text-green ${styles.newVideos}`}>\n <Text namespace={namespace} phrase='newVideos' options={{ smartCount: newVideosCount }} />\n </div>\n )}\n </div>\n );\n};\n\nexport interface CoverPillWidgetItemProps<T extends BaseObject> {\n data: T;\n getChildAppLink?: (data: T) => Core.AppLink;\n getChildAppLinkOptions?: () => Core.AppLinkOptions;\n isLarge?: boolean;\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n availablePresentations?: Presentation[];\n getSubtitle?: (data: T) => string;\n multiline?: boolean;\n // set to true it will highlight on hover and also remove the hover text underline\n highlightOnHover?: boolean;\n showNewVideosCount?: boolean;\n themeColor?: string;\n}\n\ninterface CoverPillWidgetContentProps<T> extends CoverPillWidgetItemProps<T> {\n coverUrl?: string;\n subtitle?: string;\n isComingSoon?: boolean;\n className?: string;\n imageClassName?: string;\n isSelected?: boolean;\n hideFallback?: boolean;\n hideCheckmark?: boolean;\n themeColor?: string;\n}\n\nexport function CoverPillWidgetContent(props: CoverPillWidgetContentProps<BaseObject>): JSX.Element {\n const coverUrl = ImageHelper.createUrl(props.coverUrl, { size: props.isLarge ? ImageSize.Medium : ImageSize.Small });\n\n let classification: Classification | undefined = undefined;\n if (MasterTypeHelper.isClassification(props.data)) {\n classification = props.data;\n }\n\n const childProps = {\n name: props.data.name,\n multiline: props.isLarge || props.multiline,\n subtitle: props.subtitle,\n noUnderLine: props.highlightOnHover,\n newVideosCount: props.showNewVideosCount ? classification?.externalMetadata?.childDashboardNewVideoCount : 0\n };\n\n return (\n <div\n className={`${props.themeColor ? styles.hasThemeColor : 'border'} d-flex position-relative ${props.className} ${styles.widgetItem} ${props.isSelected ? 'border-success border-2' : ''} ${props.highlightOnHover && !props.themeColor ? 'bg-light-blue-hover' : ''}`}\n style={props.themeColor ? { '--themeColor': props.themeColor } as unknown as React.CSSProperties : {}}\n id={`${props.data.id}-${RandomHelper.getRandomInt()}`}\n >\n {props.isSelected && (\n <div className={`${styles.selectedMask} border-2`} />\n )}\n\n <div className={`${styles.imagePanel} ${props.isLarge ? styles.large : ''}`}>\n {props.isSelected && !props.hideCheckmark && (\n <div className={styles.selected}>\n <IconCircle svgName={cvSvgLibrary.Check} svgSize={SvgContainerSize.Large} textVariant='white' variant='green' />\n </div>\n )}\n\n <div\n className={`${styles.image} ${props.imageClassName}`}\n style={props.coverUrl ? { backgroundImage: `url('${coverUrl}')` } : {}}\n />\n {!props.hideFallback && (\n <ImageFallback\n type={ImageFallbackType.Subject}\n extraClasses={props.isLarge ? styles.large : ''}\n />\n )}\n </div>\n\n {props.isComingSoon\n ? <ComingSoonNamePanel {...childProps} />\n : <NormalNamePanel {...childProps} />\n }\n </div>\n );\n}\n\nexport function CoverPillWidgetContentWrapper(props: CoverPillWidgetContentProps<BaseObject>) {\n const appLink = props.getChildAppLink ? props.getChildAppLink(props.data) : null;\n\n return (\n <>\n {appLink ? (\n <AppLink\n className={styles.appLink}\n appLink={appLink}\n analyticsData={props.analyticsData}\n analyticsOptions={props.analyticsOptions}\n appLinkOptions={props.getChildAppLinkOptions?.()}\n >\n <CoverPillWidgetContent {...props} />\n </AppLink>\n ) : (<CoverPillWidgetContent {...props} />)\n }\n </>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"annotation\":\"LkdHB\",\"above\":\"ROdbm\",\"below\":\"OzyHx\",\"left\":\"W9EBF\",\"right\":\"zhio2\",\"divider\":\"cdR_p\",\"imageContainer\":\"QZZMF\"};","import React from 'react';\n\nimport styles from './left-panel-item.scss';\n\ninterface LeftPanelItemProps {\n contentPosition?: 'center' | 'right';\n annotationUrl?: string;\n annotationPosition?: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';\n annotationClassName?: string;\n}\n\nLeftPanelItem.defaultProps = {\n contentPosition: 'center'\n};\n\nexport function LeftPanelItem(props: React.PropsWithChildren<LeftPanelItemProps>): JSX.Element {\n function getAnnotationClassName(): string {\n let className = styles.annotation;\n\n switch (props.annotationPosition) {\n case 'top-left': {\n className += ` ${styles.above} ${styles.left}`;\n break;\n }\n\n case 'top-right': {\n className += ` ${styles.above} ${styles.right}`;\n break;\n }\n\n case 'bottom-left': {\n className += ` ${styles.below} ${styles.left}`;\n break;\n }\n\n case 'bottom-right': {\n className += ` ${styles.below} ${styles.right}`;\n break;\n }\n }\n\n if (props.annotationClassName)\n className += ` ${props.annotationClassName}`;\n\n return className;\n }\n\n function getContainerClassName(): string {\n let className = `d-flex align-items-center text-center position-relative w-100 ${styles.imageContainer}`;\n\n if (props.contentPosition === 'center')\n className += ' px-5 justify-content-center';\n\n if (props.contentPosition === 'right')\n className += ' me-n5 justify-content-end';\n\n return className;\n }\n\n return (\n <div className={getContainerClassName()}>\n {!!props.annotationUrl && (\n <div className={getAnnotationClassName()}>\n <img className={`img-fluid`} src={props.annotationUrl} />\n </div>\n )}\n\n {props.children}\n {props.contentPosition === 'right' && (\n <div className={styles.divider} />\n )}\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"magicTab\":\"H5jzm\",\"subjectPlaceholder\":\"r1L6T\",\"placeholderCover\":\"z9CFT\",\"promotedTopicPlaceholder\":\"PbYs6\",\"promotedTopicPlaceholderText\":\"hZ8Nf\"};","import React from 'react';\n\nimport { ImageSize } from 'libs/shared/enums/Images';\nimport { Classification, Presentation } from 'libs/shared/interfaces';\nimport { ImageHelper } from 'libs/shared/utils/ImageHelper';\n\nimport { MockLayout } from 'apps/onboarding/components/mock-views/layout/MockLayout';\n\nimport styles from './mock-discover.scss';\n\ninterface SubjectPlaceholderProps {\n coverUrl?: string;\n}\n\nfunction SubjectPlaceholder(props: SubjectPlaceholderProps): JSX.Element {\n return (\n <li className='col-4'>\n <div className={`d-flex border rounded-3 overflow-hidden ${styles.subjectPlaceholder}`}>\n {props.coverUrl ? (\n <div className={styles.placeholderCover}>\n <img className='img-fluid' src={ImageHelper.createUrl(props.coverUrl, { size: ImageSize.Small })} />\n </div>\n ) : (\n <div className={`${styles.placeholderCover} bg-light-blue`} />\n )}\n </div>\n </li>\n );\n}\n\nfunction PromotedTopicPlaceholder(): JSX.Element {\n return (\n <li className='col-4'>\n <div className={`bg-light-blue rounded-3 w-100 p-1 ${styles.promotedTopicPlaceholder}`} />\n </li>\n );\n}\n\ninterface MockDiscoverProps {\n subjects?: Classification[];\n presentation?: Presentation;\n curriculum?: Presentation;\n editingCurriculum?: boolean;\n}\n\nexport function MockDiscover(props: MockDiscoverProps): JSX.Element {\n const placeholderSubjects = Math.max(12 - (props.subjects?.length ?? 0), 0);\n\n return (\n <MockLayout\n presentation={props.presentation}\n curriculum={props.curriculum}\n editingCurriculum={props.editingCurriculum}\n >\n <div className='px-3 pt-3 w-100 d-flex flex-column align-items-center'>\n {/* Magic tabs */}\n <div className='rounded-3 border overflow-hidden d-flex mb-2'>\n <div className={`bg-light ${styles.magicTab}`} />\n <div className={`${styles.magicTab}`} />\n </div>\n\n {/* Subjects */}\n <ul className='list-unstyled mb-0 row w-100 g-xl-2 g-lg-1 mb-2'>\n {props.subjects?.map(subject => {\n return (\n <SubjectPlaceholder key={subject.id} coverUrl={subject.cover?.url} />\n );\n })}\n {new Array(placeholderSubjects).fill(0).map((_, index) => {\n return (\n <SubjectPlaceholder key={index} />\n );\n })}\n </ul>\n\n {/* Promoted topics */}\n <ul className='list-unstyled mb-0 row w-100 g-xl-2 g-lg-1'>\n <PromotedTopicPlaceholder />\n <PromotedTopicPlaceholder />\n <PromotedTopicPlaceholder />\n <PromotedTopicPlaceholder />\n <PromotedTopicPlaceholder />\n <PromotedTopicPlaceholder />\n <PromotedTopicPlaceholder />\n <PromotedTopicPlaceholder />\n <PromotedTopicPlaceholder />\n </ul>\n </div>\n </MockLayout>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"dot\":\"AlRQD\",\"logo\":\"L42gR\",\"blackBar\":\"ESCxm\",\"topNav\":\"a3G_4\",\"leftNav\":\"YxGVV\",\"belowHeader\":\"jc_cg\",\"leftNavIcon\":\"U6i6r\",\"leftNavText\":\"LnYlW\",\"presentationPlaceholderIcon\":\"Ljaju\",\"presentationIcon\":\"QdwPq\",\"presentationPlaceholderText\":\"af06V\",\"curriculumIcon\":\"N7T4T\",\"curriculumIconSmall\":\"_6xrUg\",\"curriculumContainer\":\"Z65qX\",\"iconPlaceholder\":\"CKOXL\",\"shadow\":\"zygeJ\",\"presentationName\":\"Oj7Dt\"};","import React from 'react';\n\nimport { IconCircle } from 'libs/shared/components/icon-circle/IconCircle';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { ClickViewLogo, ClickViewPrimaryLogo } from 'libs/shared/components/svgs/clickview-logo/ClickViewLogo';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { PresentationLearningLevel } from 'libs/shared/enums/PresentationLearningLevel';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { Presentation } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\nimport { TopicsHelper } from 'libs/shared/utils/topics-helper/TopicsHelper';\n\nimport styles from './mock-layout.scss';\n\nconst namespace = 'onboarding.mockLayout';\n\nfunction LeftNavItem(): JSX.Element {\n return (\n <div className='d-flex align-items-center justify-content-center mb-2 px-3'>\n <div className={`${styles.leftNavIcon} rounded-circle`} />\n <div className={`${styles.leftNavText} rounded-pill`} />\n </div>\n );\n}\n\ninterface MockLayoutProps {\n editingCurriculum?: boolean;\n curriculum?: Presentation;\n presentation?: Presentation;\n}\n\nexport function MockLayout(props: React.PropsWithChildren<MockLayoutProps>): JSX.Element {\n const breakpoints = useBreakpoints();\n \n function getPresentationClass(): string {\n if (!props.presentation)\n return styles.presentationPlaceholderIcon;\n\n switch (TopicsHelper.getMappedPresentationLevel(props.presentation.learningLevel)) {\n case PresentationLearningLevel.Level_1:\n return `bg-indigo ${styles.presentationIcon}`;\n\n case PresentationLearningLevel.Level_3:\n return `bg-blue ${styles.presentationIcon}`;\n\n default:\n case PresentationLearningLevel.Level_2:\n return `bg-green ${styles.presentationIcon}`;\n }\n }\n\n return (\n <div className={`border border-dark border-2 bg-white rounded-3 user-select-none overflow-hidden position-relative h-100 w-100`}>\n {!!props.editingCurriculum && (\n <div className={`w-100 h-100 position-absolute ${styles.shadow}`}>\n <div className={`d-flex align-items-center h-100 w-50 ${styles.curriculumContainer}`}>\n <div className='bg-white rounded-3 border p-3 w-100'>\n <h2 className='h6 text-start'><Text namespace={namespace} phrase='curriculum' /></h2>\n\n {props.curriculum ? (\n <div className='d-flex align-items-center'>\n <div className={`${styles.curriculumIcon} rounded-circle me-2 border`}>\n <IconCircle imageUrl={props.curriculum.cover?.url} />\n </div>\n <div className='text-start'>{props.curriculum.name}</div>\n </div>\n ) : (\n <div className='d-flex align-items-center text-secondary'>\n <div className={`me-2 rounded-circle p-1 ${styles.iconPlaceholder}`}>\n <IconCircle svgSize={SvgContainerSize.Large} textVariant='secondary' svgName={cvSvgLibrary.GraduationCap} />\n </div>\n <Text namespace={namespace} phrase='selectCurriculum' />\n </div>\n )}\n </div>\n </div>\n </div>\n )}\n\n {/* Black bar */}\n <div className={`bg-dark d-flex px-3 py-2 ${styles.blackBar}`}>\n <div className={`rounded-circle me-2 ${styles.dot}`} />\n <div className={`rounded-circle me-2 ${styles.dot}`} />\n <div className={`rounded-circle ${styles.dot}`} />\n </div>\n\n {/* Header */}\n <div className={`border-bottom px-3 py-2 d-flex align-items-center ${styles.topNav}`}>\n <div className={`${styles.logo} me-4`}>\n {breakpoints.xs ? (\n <ClickViewPrimaryLogo />\n ) : (\n <ClickViewLogo />\n )}\n </div>\n <div className='form-control w-75 d-flex justify-content-start'>\n <SvgContainer svgName={cvSvgLibrary.Search} />\n </div>\n {!!props.curriculum && (\n <div className={`${styles.curriculumIconSmall} rounded-circle ms-2 me-n1 border`}>\n <IconCircle imageUrl={props.curriculum.cover?.url} />\n </div>\n )}\n </div>\n\n <div className={`d-flex ${styles.belowHeader}`}>\n {/* Left nav */}\n <div className={`${styles.leftNav} border-end`}>\n <div className='d-flex flex-column pt-3 h-100'>\n <LeftNavItem />\n <LeftNavItem />\n <LeftNavItem />\n <LeftNavItem />\n <LeftNavItem />\n\n {/* Presentation */}\n <div className='d-flex align-items-end h-100 w-100'>\n <div className='border-top p-3 w-100'>\n <div className='d-flex align-items-center'>\n <div className={`${getPresentationClass()} text-white rounded`}>\n <SvgContainer svgName={cvSvgLibrary.School} size={SvgContainerSize.Large} />\n </div>\n\n {!props.presentation ? (\n <div className={`${styles.presentationPlaceholderText} fw-semibold`}>\n <Text namespace={namespace} phrase='schoolLevel' />\n </div>\n ) : (\n <span className={`fw-semibold text-truncate ${styles.presentationName}`}>{props.presentation.name}</span>\n )}\n </div>\n </div>\n </div>\n </div>\n </div>\n\n {/* Main content */}\n <div className={`w-100 h-100 overflow-hidden`}>\n {props.children}\n </div>\n </div>\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"cover\":\"p3PFT\",\"presentationList\":\"PT_ec\"};","import React from 'react';\n\nimport { StorageType } from 'libs/common/backbone/utils/LocalStorageHelper';\nimport { useViewModel } from 'libs/common/react/hooks/UseViewModel';\nimport { Flight } from 'libs/common/react/index';\n\nimport { OnboardingDescriptor, UserAction } from 'libs/analytics/interfaces';\n\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { CoverPillWidgetContent } from 'libs/shared/components/widgets/items/subject-widget-item/CoverPill';\nimport { SharedViewModelKeys } from 'libs/shared/constants/SharedViewModelKeys';\nimport { InstanceRegion } from 'libs/shared/enums/InstanceRegion';\nimport { PresentationLearningLevel } from 'libs/shared/enums/PresentationLearningLevel';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useIsKDM } from 'libs/shared/hooks/UseIsKdm';\nimport { CurrentUser, Presentation, PresentationAudience } from 'libs/shared/interfaces';\nimport { TopicsHelper } from 'libs/shared/utils/topics-helper/TopicsHelper';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { usePresentation } from 'shared/hooks/usePresentation';\n\nimport { OnboardingScreenHeading } from 'apps/onboarding/components/heading/OnboardingScreenHeading';\nimport { OnboardingScreenInfo } from 'apps/onboarding/components/info/OnboardingScreenInfo';\nimport { OnboardingLayout } from 'apps/onboarding/components/layout/OnboardingLayout';\nimport { LeftPanelItem } from 'apps/onboarding/components/left-panel-item/LeftPanelItem';\nimport { MockDiscover } from 'apps/onboarding/components/mock-views/discover/MockDiscover';\nimport { useOnboardingCallbacks } from 'apps/onboarding/hooks/useOnboardingCallbacks';\nimport { useOnboardingEventLogger } from 'apps/onboarding/hooks/useOnboardingEventLogger';\nimport { OnboardingViewProps } from 'apps/onboarding/interfaces/OnboardingViewProps';\n\nimport styles from './school-level.scss';\n\nconst namespace = 'onboarding.schoolLevel';\n\nexport function OnboardingSchoolLevelView(props: OnboardingViewProps): JSX.Element {\n const {\n onClickBack,\n exitOnboarding,\n completeStepAsync,\n onSaveError\n } = useOnboardingCallbacks(props.redirectUrl);\n const { logEvent } = useOnboardingEventLogger();\n const { availablePresentations, setPresentation } = usePresentation();\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n\n const isKDM = useIsKDM();\n\n const [ , setActiveAudiences ] = useViewModel<PresentationAudience[]>(\n SharedViewModelKeys.AUDIENCE_FILTER,\n undefined,\n { storage: StorageType.SessionStorage }\n );\n\n const [ selectedPresentation, setSelectedPresentation ] = React.useState<Presentation>();\n\n function onSelectPresentation(presentation: Presentation): void {\n logEvent(UserAction.Select, OnboardingDescriptor.SelectPresentation, {\n presentationId: presentation.id,\n presentationName: presentation.name,\n presentationDescription: presentation.description\n });\n\n setSelectedPresentation(presentation);\n }\n\n async function onClickNext(): Promise<void> {\n logEvent(UserAction.Click, OnboardingDescriptor.Next, {\n presentationId: selectedPresentation.id,\n presentationName: selectedPresentation.name,\n presentationDescription: selectedPresentation.description\n }, {\n preferredPresentationOverride: selectedPresentation\n });\n\n setActiveAudiences(null);\n \n try {\n await setPresentation(selectedPresentation, 'activeAndPreferred');\n await completeStepAsync({ preferredPresentationOverride: selectedPresentation });\n } catch {\n onSaveError();\n return Promise.reject();\n }\n }\n\n function getAnnotation(): string {\n const imageUrls = ImageUrls.OnboardingV2.SchoolLevel;\n const isUS = currentUser.data?.instanceRegion === InstanceRegion.US;\n\n if (!selectedPresentation)\n return imageUrls.ANNOTATION_NONE_SELECTED;\n\n switch (TopicsHelper.getMappedPresentationLevel(selectedPresentation.learningLevel)) {\n case PresentationLearningLevel.Level_1:\n return isKDM ? imageUrls.ANNOTATION_LEVEL_1_ICP : imageUrls.ANNOTATION_LEVEL_1;\n \n case PresentationLearningLevel.Level_2: {\n if (isKDM) {\n return imageUrls.ANNOTATION_LEVEL_2_ICP;\n }\n\n return isUS ? imageUrls.ANNOTATION_LEVEL_2_US : imageUrls.ANNOTATION_LEVEL_2;\n }\n\n case PresentationLearningLevel.Level_3: {\n if (isKDM) {\n return isUS\n ? imageUrls.ANNOTATION_LEVEL_3_ICP_US\n : imageUrls.ANNOTATION_LEVEL_3_ICP;\n }\n\n return isUS ? imageUrls.ANNOTATION_LEVEL_3_US : imageUrls.ANNOTATION_LEVEL_3;\n }\n\n default:\n return imageUrls.ANNOTATION_LEVEL_1;\n }\n }\n\n return (\n <OnboardingLayout namespace={namespace}>\n <OnboardingLayout.Left className='bg-dark-blue d-flex flex-column align-items-end justify-content-center'>\n <LeftPanelItem\n contentPosition='right'\n annotationUrl={getAnnotation()}\n annotationPosition='bottom-left'\n >\n <MockDiscover presentation={selectedPresentation} />\n </LeftPanelItem>\n </OnboardingLayout.Left>\n\n <OnboardingLayout.Right\n hasCustomButtons={false}\n onClickNext={onClickNext}\n onClickBack={onClickBack}\n onClickComeBackLater={exitOnboarding}\n disableNext={!selectedPresentation}\n >\n <OnboardingScreenHeading>\n <Text phrase={isKDM ? 'headingKdm' : 'heading'} />\n </OnboardingScreenHeading>\n\n <OnboardingScreenInfo>\n <Text phrase='info' />\n </OnboardingScreenInfo>\n\n <ul className={`list-unstyled mb-1 ${styles.presentationList}`}>\n {availablePresentations.map(presentation => {\n return (\n <li key={presentation.id} className='mb-2'>\n <DivButton\n onClick={() => onSelectPresentation(presentation)}\n >\n <CoverPillWidgetContent\n data={presentation}\n coverUrl={presentation.cover?.url}\n imageClassName={styles.cover}\n isSelected={presentation.id === selectedPresentation?.id}\n />\n </DivButton>\n </li>\n );\n })}\n </ul>\n\n <OnboardingScreenInfo>\n <Text phrase='dontWorry' />\n </OnboardingScreenInfo>\n </OnboardingLayout.Right>\n </OnboardingLayout>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"appLink\":\"fFjKN\",\"name\":\"A_by9\",\"selectedMask\":\"xSQtR\",\"widgetItem\":\"Ys9W_\",\"hasThemeColor\":\"DX2ua\",\"text\":\"JfAoy\",\"imagePanel\":\"aUNDc\",\"partialLargeImage\":\"RuLxv\",\"selected\":\"BViJb\",\"image\":\"LkTep\",\"dragHandle\":\"CJqvP\",\"large\":\"R5clw\",\"comingSoonPanel\":\"Wa2PG\",\"newVideos\":\"s61h8\",\"editSubjectsItem\":\"gGNFD\",\"allSubjectsItem\":\"IHdlJ\",\"logoContainer\":\"Nzaes\",\"draggingItem\":\"zUOye\",\"partialLargeFallback\":\"FmJP9\",\"partialIcon\":\"sdZuo\"};"],"names":["namespace","ComingSoonNamePanel","name","multiline","noUnderLine","wrapperClassName","textClassName","className","phrase","NormalNamePanel","subtitle","newVideosCount","title","options","smartCount","CoverPillWidgetContent","props","coverUrl","size","isLarge","classification","undefined","data","childProps","highlightOnHover","showNewVideosCount","externalMetadata","childDashboardNewVideoCount","themeColor","isSelected","style","id","hideCheckmark","svgName","svgSize","S","textVariant","variant","imageClassName","backgroundImage","hideFallback","type","extraClasses","isComingSoon","CoverPillWidgetContentWrapper","appLink","getChildAppLink","analyticsData","analyticsOptions","appLinkOptions","getChildAppLinkOptions","LeftPanelItem","contentPosition","annotationUrl","annotationPosition","annotationClassName","getAnnotationClassName","src","children","defaultProps","SubjectPlaceholder","ImageHelper","PromotedTopicPlaceholder","MockDiscover","placeholderSubjects","Math","max","subjects","length","MockLayout","presentation","curriculum","editingCurriculum","map","subject","key","cover","url","Array","fill","_","index","LeftNavItem","breakpoints","useBreakpoints","Text","IconCircle","imageUrl","SvgContainer","xs","ClickViewLogo","TopicsHelper","learningLevel","PresentationLearningLevel","getPresentationClass","OnboardingSchoolLevelView","useOnboardingCallbacks","redirectUrl","onClickBack","exitOnboarding","completeStepAsync","onSaveError","logEvent","useOnboardingEventLogger","usePresentation","availablePresentations","setPresentation","currentUser","UserRequests","isKDM","setActiveAudiences","SharedViewModelKeys","storage","selectedPresentation","setSelectedPresentation","OnboardingLayout","imageUrls","ImageUrls","isUS","instanceRegion","InstanceRegion","ANNOTATION_NONE_SELECTED","ANNOTATION_LEVEL_1_ICP","ANNOTATION_LEVEL_1","ANNOTATION_LEVEL_2_ICP","ANNOTATION_LEVEL_2_US","ANNOTATION_LEVEL_2","ANNOTATION_LEVEL_3_ICP_US","ANNOTATION_LEVEL_3_ICP","ANNOTATION_LEVEL_3_US","ANNOTATION_LEVEL_3","getAnnotation","hasCustomButtons","onClickNext","presentationId","presentationName","presentationDescription","description","preferredPresentationOverride","Promise","reject","onClickComeBackLater","disableNext","OnboardingScreenHeading","OnboardingScreenInfo","DivButton","onClick","onSelectPresentation","CoverPill"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[5660],{94644:(e,t,a)=>{a.d(t,{r:()=>d});var i=a(50242),n=a(81886),r=a(67058),o=a(14553),c=a(49267),s=a(49075),l={notFound:r.d,forbidden:{rating:o.q,yearLevel:o.q,region:c.a,privacy:o.q},badRequest:s._};function d(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e){var r;r="number"==typeof e?e:e.status;var o=Object.assign(Object.assign({},l),t);r&&n.Q.Ry.isStatusCodeError(r)&&(r!==i.o.NotFound?r!==i.o.Forbidden?a.badRequest||n.Q.Ry.throw(new o.badRequest):a.forbidden||n.Q.Ry.throw(new o.forbidden.privacy):a.notFound||n.Q.Ry.throw(new o.notFound))}}},91286:(e,t,a)=>{a.d(t,{v:()=>o});var i=a(32735),n=a(94644);function r(e){return e.map((function(e){return e.statusCode})).join(":")}function o(e,t,a){var o=Array.isArray(e)?e:[e];(0,i.useEffect)((function(){o.forEach((function(e){(0,n.r)(e.statusCode,t,a)}))}),[r(o),t,a])}},56871:(e,t,a)=>{a.d(t,{N:()=>D});var i=a(32735),n=a(23481),r=a(28400),o=a(65858),c=a(83345),s=a(19670),l=a(80385),d=a(73804),u=a(92805),p=a(13231),v=a(11518),m=a(15446),g=a(47862),f=a(26733),y=a(10439),h=a(35429),I=a(51365),C=a(4594),P=a(16714),E=a(12754),A=a(58704),b=a(22902),V=a(76196),k=a(59598),w=a(31908),O=a(26492),T=a(91479),F=a(99092),L=a(47938),R=a(81024),x=a(78166),S=a(99742),N=a(14070),q=a(97291),U=a(10671),G=a(10741),_=a(22490);function j(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,i=Array(t);a<t;a++)i[a]=e[a];return i}var M=function(e,t,a){return function(i){return a?{application:q.O.VIDEOS,action:N.e.Videos.PREVIEW_PDF,args:[i.id],params:{videoId:e,shareId:t}}:{application:q.O.SIGN_UP,action:N.e.SignUp.SIGN_UP}}},B="shared.playClip",W=n.T.encloseNamespace(B);function D(e){var t,a,n,D,H,Q,z,K,Y,Z,X,$,J=(0,h.g)(),ee=(0,b.T)().hasPermissions,te=w.M.getCanBeConsumed(e.clip).canConsume,ae=(0,U._)({location:U.i.VideoItem}),ie=i.useRef(null),ne=i.useRef(null);(0,V.P)([ie.current,ne.current],e.tableOfContentsId);var re,oe,ce=w.M.isVideoTypeArchived(e.clip),se=ee(P.C.StudentExperience),le=i.useRef(!1),de=(0,l.Wp)(e.clip,e.glanceTheme)&&e.featureAccess.canViewGlance,ue=(re=i.useState({view:"loading",referrer:null}),oe=2,function(e){if(Array.isArray(e))return e}(re)||function(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var i,n,r,o,c=[],s=!0,l=!1;try{if(r=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;s=!1}else for(;!(s=(i=r.call(a)).done)&&(c.push(i.value),c.length!==t);s=!0);}catch(e){l=!0,n=e}finally{try{if(!s&&null!=a.return&&(o=a.return(),Object(o)!==o))return}finally{if(l)throw n}}return c}}(re,oe)||function(e,t){if(e){if("string"==typeof e)return j(e,t);var a={}.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?j(e,t):void 0}}(re,oe)||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.")}()),pe=ue[0],ve=ue[1];function me(){var t;return!(null===(t=e.currentUser)||void 0===t?void 0:t.isAuthenticated)||!e.hasProduct(E.x.Primary)||!!se}i.useEffect((function(){e.glanceLoaded&&ve({view:e.glanceTheme?"v@g":"details",referrer:null})}),[e.glanceLoaded,e.glanceTheme]);var ge=e.originalVideo&&!me()&&!!(null===(t=e.clip._canBeConsumed)||void 0===t?void 0:t.value),fe="picture-in-picture"===J.mode||e.featureAccess.canViewPublicLayout,ye=(0,F.jh)(e.clip,se),he=null!==(n=null===(a=e.clips)||void 0===a?void 0:a.filter((function(t){return t.id.toString()!==e.clip.id.toString()})))&&void 0!==n?n:[];return i.createElement("div",{className:"px-4"},i.createElement(L.W,{restrictions:e.clip._restrictions,yearGroups:e.yearGroups,objectId:e.clip.id,objectTypeId:C.E.Clip,canManageVideoAccess:e.canManageVideoAccess}),ce&&i.createElement(O.T,{typeId:e.clip.typeId,hasStudentExperience:se}),i.createElement("section",{className:"mb-2"},te&&i.createElement(y.r,{key:e.clip.id,objectId:e.clip.id,objectTypeId:e.clip.typeId,shareId:e.shareId,context:null===(D=e.queryParams)||void 0===D?void 0:D.context,contextId:null===(H=e.queryParams)||void 0===H?void 0:H.contextId,moviesAndTv:null===(Q=e.queryParams)||void 0===Q?void 0:Q.mtv,playNext:null===(z=e.queryParams)||void 0===z?void 0:z.playNext,startTime:null!==(Y=null===(K=e.queryParams)||void 0===K?void 0:K.t)&&void 0!==Y?Y:null===(Z=e.queryParams)||void 0===Z?void 0:Z.startTime,mode:"default",location:"play-page"}),i.createElement("div",{className:fe?"":"d-none"},i.createElement(R.S,{video:e.clip,type:"pip"}))),i.createElement(T.v,{media:e.clip,yearGroups:e.yearGroups,audiences:e.audiences,originalVideoAppLink:ge?{application:q.O.VIDEOS,action:N.e.Videos.PLAY_VIDEO,args:[e.originalVideo.id,r.m.slugify(e.originalVideo.name)]}:null,featureAccess:e.featureAccess,shareId:e.shareId}),i.createElement("section",{className:"".concat("v@g"===pe.view?"d-block":"d-none")},i.createElement(s.o,{theme:e.glanceTheme,video:e.clip,pointsOfInterest:e.pointsOfInterest,onClickShowDescription:function(){return ve({view:"details",referrer:"v@g"})},setStartTime:function(e){var t;return null===(t=J.playerRef.current)||void 0===t?void 0:t.currentTime(e)},getTagAppLink:function(e){return{application:q.O.SEARCH,action:N.e.Search.HOME,params:{tagOrClassification:e.name}}},suppressInteractivity:e.featureAccess.canViewPublicLayout})),i.createElement("section",{className:"".concat("details"===pe.view?"d-block":"d-none")},i.createElement(d.X,{video:e.clip,currentUser:e.currentUser,onLaunchImmersiveReader:function(){var e,t,a,i;le.current=!(null===(t=null===(e=null==J?void 0:J.playerRef)||void 0===e?void 0:e.current)||void 0===t?void 0:t.isPaused()),null===(i=null===(a=null==J?void 0:J.playerRef)||void 0===a?void 0:a.current)||void 0===i||i.pause()},onExitImmersiveReader:function(){var e,t;le.current&&(null===(t=null===(e=null==J?void 0:J.playerRef)||void 0===e?void 0:e.current)||void 0===t||t.play())},onClickClose:de&&function(){return ve({view:"v@g",referrer:"details"})},getTagAppLink:function(e){return{application:q.O.SEARCH,action:N.e.Search.HOME,params:{tagOrClassification:e.name}}},hideTags:de,suppressInteractivity:e.featureAccess.canViewPublicLayout})),i.createElement("section",{className:"".concat("loading"===pe.view?"d-block":"d-none")},i.createElement(u.H,null)),!!(null==ye?void 0:ye.length)&&i.createElement("section",{className:"pb-3",id:k.K.Resources,ref:ie},i.createElement(v.kM,{name:W("resources",{count:ye.length}),contents:A.z.PlayPageResources,collection:ye,prefetched:!0,childComponent:f.R,extraChildComponentProps:{imageCdnUrl:e.imageCdnUrl,imageErrorFallbackUrl:S.W.Fallbacks.RESOURCE_THUMBNAIL,actionBehaviour:e.featureAccess.canViewResourceItems?"normal":"public",location:"play-page",titlePosition:"above",hideTypeBadge:!0},getChildAppLink:M(null===(X=e.clip)||void 0===X?void 0:X.id,e.shareId,e.featureAccess.canViewResourceItems),analyticsOptions:e.featureAccess.canViewResourceItems?{}:{workflowPhase:o.eu.Start,descriptor:o.Yu.SignUp},analyticsData:{widgetId:"resources"}})),!(!(null==he?void 0:he.length)||me())&&i.createElement("div",{className:"pb-3"},i.createElement(v.kM,{name:W("otherClips",{count:he.length}),contents:A.z.Clips,collection:he,prefetched:!0,getChildAppLink:function(e){return{application:q.O.CLIPS,action:N.e.Clips.PLAY_CLIP,args:[e.id,r.m.slugify(e.name)]}},childComponent:m.C,extraChildComponentProps:{video:e.originalVideo,imageCdnUrl:e.imageCdnUrl},analyticsData:{widgetId:"clips"}})),!(!(null===($=e.interactives)||void 0===$?void 0:$.length)||me())&&i.createElement("div",{className:"pb-3",id:k.K.Interactives,ref:ne},i.createElement(v.kM,{name:W("interactives",{count:e.interactives.length}),contents:A.z.Interactives,collection:e.interactives,prefetched:!0,getChildAppLink:function(e){return{application:q.O.INTERACTIVES,action:N.e.Interactives.VIEW_INTERACTIVE,args:[e.id,r.m.slugify(e.name)]}},childComponent:g.K,extraChildComponentProps:{video:e.clip,questionsAppLink:{application:q.O.INTERACTIVES,action:N.e.Interactives.PREVIEW_QUESTIONS},imageCdnUrl:e.imageCdnUrl},analyticsData:{widgetId:"interactives"}})),!!ge&&i.createElement("section",{className:"pb-2 pt-1"},i.createElement("h2",{className:"h4 mb-0"},i.createElement(c.x,{namespace:B,phrase:"clippedFrom"})),i.createElement(I.M.Provider,{value:ae},i.createElement(p.E4,{videos:[e.originalVideo],yearGroups:e.yearGroups,setFavourite:e.setFavourite,canFavourite:e.canFavourite,getVideoAppLink:function(t,a){return _.W.getAppLink(t,Object.assign(Object.assign({},a),{context:e.queryParams.context,contextId:e.queryParams.contextId,playNext:e.queryParams.playNext,shareId:e.shareId,moviesAndTv:e.queryParams.mtv}))},hasPermissions:ee,presentationAudiences:e.audiences,getPreviewQuestionsAppLink:function(e){return G.j.getPreviewQuestionsAppLink(e)},isPlugin:e.isPlugin,getClassroomGuideAppLink:_.W.getClassroomGuideAppLink,getInteractiveGuidanceAppLink:_.W.getInteractiveGuidanceAppLink,getResourceGuidanceAppLink:_.W.getResourceGuidanceAppLink}))),i.createElement("section",null,i.createElement(x.Z,{currentVideo:e.clip,yearGroups:e.yearGroups,relatedVideos:e.relatedVideos,setFavourite:e.setFavourite,canFavourite:e.canFavourite,currentUser:e.currentUser,audiences:e.audiences,getVideoAppLink:function(t,a){return _.W.getAppLink(t,Object.assign(Object.assign({},a),{context:e.queryParams.context,contextId:e.queryParams.contextId,playNext:e.queryParams.playNext,shareId:e.shareId,moviesAndTv:e.queryParams.mtv}))},moviesAndTv:e.queryParams.mtv,isPlugin:e.isPlugin})))}},44110:(e,t,a)=>{a.d(t,{i:()=>o});var i=a(20354),n=a(89454),r=a(86698),o=function(){var e=(0,r.y)({redirectOnError:!0}),t=e.activePresentation,a=e.getFallbackPresentation,o=t||a();return i.a.useBasicFetch(!!o&&n.O.presentationAudiences(o.id))}},27478:(e,t,a)=>{a.r(t),a.d(t,{PlayClipView:()=>q});var i=a(32735),n=a(50242),r=a(23481),o=a(20354),c=a(65858),s=a(78417),l=a(16714),d=a(67058),u=a(33803),p=a(43012),v=a(39151),m=a(1666),g=a(20768),f=a(28907),y=a(31949),h=a(1575),I=a(26304),C=a(91286),P=a(22902),E=a(15311),A=a(79612),b=a(76753),V=a(56871),k=a(51855),w=a(7179),O=a(49948),T=a(36873),F=a(27638),L=a(44110),R=a(35014),x=a(97816),S=r.T.encloseNamespace("shared.playClip"),N={notFound:d.d,forbidden:{privacy:u.G}};function q(e){var t,a,r,d,u,q,U,G=e.queryParams,_=G.context,j=G.contextId,M=G.mtv,B=(0,E.r)().hasProduct,W=(0,F.u)(c.LZ.PlayClip),D=W.setFavourite,H=W.canFavourite,Q=(0,k.G)().isPlugin,z=(0,P.T)().hasPermissions,K=(0,R.I)(),Y=o.a.useBasicFetch(y.N.currentUser()),Z=o.a.useBasicFetch(v.L.config()),X=o.a.useBasicFetch(p.e.clip(e.id)),$=o.a.useBasicFetch(K.canViewInteractives&&g.b.videoInteractives(e.id)),J=o.a.useBasicFetch(!!(null===(t=X.data)||void 0===t?void 0:t._parentVideo)&&h.R.video(X.data._parentVideo.id));(0,x.V)([J.data]);var ee=o.a.useBasicFetch(!!(null===(a=X.data)||void 0===a?void 0:a._parentVideo)&&K.canViewClips&&p.e.videoClips(X.data._parentVideo.id)),te=o.a.useBasicFetch(X.statusCode===n.o.Forbidden&&p.e.clip(e.id,s.r.StripMetadata)),ae=(0,T.k)({video:J.data,context:_,contextId:j,moviesAndTv:M,currentUser:Y.data}),ie=(0,L.i)(),ne=o.a.useBasicFetch((null===(r=Y.data)||void 0===r?void 0:r.isAuthenticated)&&m.h.yearGroups(Y.data.customerId)),re=z(l.C.ViewVideoGlance)&&(null===(u=null===(d=X.data)||void 0===d?void 0:d.glance)||void 0===u?void 0:u.theme),oe=o.a.useBasicFetch(re&&f.r.themeImages(X.data.glance.theme,X.data.glance.type)),ce=(0,O.l)(e.id,!0);return(0,A.M)(b.CG.getClipMetadata({content:X.data,phraseContext:{phraseHandler:S,titlePhrase:"pageTitle",descriptionPhrase:"pageDescription"}})),(0,C.v)(X,N,{forbidden:!0}),(0,x.V)(null!==(q=ae.videos)&&void 0!==q?q:[]),(0,I.b)(te),(0,w.P)({id:e.id,app:"clips"}),X.data&&Y.hasCompleted&&Z.hasCompleted&&ce.hasCompleted?i.createElement(V.N,{clip:X.data,interactives:$.data,clips:ee.data,originalVideo:J.data,currentUser:Y.data,yearGroups:ne.data,relatedVideos:"playlist"===_?ae:Object.assign(Object.assign({},ae),{videos:[]}),canFavourite:H,setFavourite:D,hasProduct:B,queryParams:e.queryParams,audiences:ie.data,imageCdnUrl:Z.data.imageCdnUrl,canManageVideoAccess:z(l.C.ManageVideoAccess),pointsOfInterest:ce.items,glanceTheme:oe.data,glanceLoaded:!re||oe.hasCompleted,featureAccess:K,tableOfContentsId:null===(U=e.queryParams)||void 0===U?void 0:U.tocId,isPlugin:Q}):i.createElement(i.Fragment,null)}q.defaultProps={queryParams:{}}}}]);
2
+ //# sourceMappingURL=5660-6711768c20-lite.chunk.js.map