@clickview/lite 0.50.1-rc.0 → 0.50.1-rc.2

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 (201) hide show
  1. package/dist/bundles.json +2 -2
  2. package/dist/css/{1313-lite-b05099b818.chunk.css → 1313-lite-6b1a20b3fe.chunk.css} +1 -1
  3. package/dist/css/{1402-lite-9489903efd.chunk.css → 1402-lite-8a07733b96.chunk.css} +1 -1
  4. package/dist/css/{3588-lite-f083d46330.chunk.css → 1407-lite-be6668ef3a.chunk.css} +1 -1
  5. package/dist/css/{5725-lite-789978250c.chunk.css → 1539-lite-a5772fefdb.chunk.css} +1 -1
  6. package/dist/css/{5769-lite-16efb24b77.chunk.css → 1567-lite-2ab4d6f863.chunk.css} +1 -1
  7. package/dist/css/{1602-lite-90df7cca5c.chunk.css → 1602-lite-8fb6cea449.chunk.css} +1 -1
  8. package/dist/css/{1820-lite-ebb89eab7a.chunk.css → 1820-lite-8008c78ef7.chunk.css} +1 -1
  9. package/dist/css/{9818-lite-dca6b9e86d.chunk.css → 1850-lite-e9e8c03964.chunk.css} +1 -1
  10. package/dist/css/{2120-lite-dd1595051d.chunk.css → 2120-lite-b1876117b4.chunk.css} +1 -1
  11. package/dist/css/{2137-lite-7045732fc8.chunk.css → 2137-lite-6e9d11bd5b.chunk.css} +1 -1
  12. package/dist/css/{2446-lite-6b11bdfdc1.chunk.css → 2446-lite-dfc41ecbea.chunk.css} +1 -1
  13. package/dist/css/{9211-lite-f00eb0266e.chunk.css → 2507-lite-9516182bdb.chunk.css} +1 -1
  14. package/dist/css/{2724-lite-24da60896e.chunk.css → 2724-lite-669b5b8120.chunk.css} +1 -1
  15. package/dist/css/{2795-lite-1641e6fbf9.chunk.css → 2795-lite-34f8ca5018.chunk.css} +1 -1
  16. package/dist/css/{3070-lite-c0909f46f3.chunk.css → 3070-lite-6af4bd0c76.chunk.css} +1 -1
  17. package/dist/css/{3397-lite-dfab7385b6.chunk.css → 3397-lite-5b25e3a686.chunk.css} +1 -1
  18. package/dist/css/{3403-lite-4b92798a0c.chunk.css → 3403-lite-89bcc16133.chunk.css} +1 -1
  19. package/dist/css/{458-lite-c8a3139b8b.chunk.css → 3515-lite-10695a1950.chunk.css} +2 -2
  20. package/dist/css/{1407-lite-f083d46330.chunk.css → 3588-lite-be6668ef3a.chunk.css} +1 -1
  21. package/dist/css/{3895-lite-b05099b818.chunk.css → 3895-lite-6b1a20b3fe.chunk.css} +1 -1
  22. package/dist/css/{4151-lite-fcc0fc8753.chunk.css → 4151-lite-9cbe9bba57.chunk.css} +1 -1
  23. package/dist/css/{3515-lite-c8a3139b8b.chunk.css → 458-lite-10695a1950.chunk.css} +2 -2
  24. package/dist/css/{5114-lite-38330c6187.chunk.css → 5114-lite-06a1ac179b.chunk.css} +1 -1
  25. package/dist/css/{5242-lite-58cdcd1ec4.chunk.css → 5242-lite-30642a9642.chunk.css} +2 -2
  26. package/dist/css/{5364-lite-93bfe767eb.chunk.css → 5364-lite-e8c416fe79.chunk.css} +1 -1
  27. package/dist/css/{5446-lite-ae2395342f.chunk.css → 5446-lite-2e956685f4.chunk.css} +1 -1
  28. package/dist/css/{1539-lite-789978250c.chunk.css → 5725-lite-a5772fefdb.chunk.css} +1 -1
  29. package/dist/css/{6759-lite-16efb24b77.chunk.css → 5769-lite-2ab4d6f863.chunk.css} +1 -1
  30. package/dist/css/{5803-lite-d1315afce2.chunk.css → 5803-lite-625e484692.chunk.css} +1 -1
  31. package/dist/css/{5810-lite-ba174cfe3d.chunk.css → 5810-lite-1224500e4d.chunk.css} +1 -1
  32. package/dist/css/{6181-lite-7558375a74.chunk.css → 6181-lite-ca9f6aeba1.chunk.css} +1 -1
  33. package/dist/css/{6189-lite-4c33c1b5c4.chunk.css → 6189-lite-20e4d47423.chunk.css} +1 -1
  34. package/dist/css/{6309-lite-a23dc59ecd.chunk.css → 6309-lite-bd0968a2c8.chunk.css} +1 -1
  35. package/dist/css/{6531-lite-9431296610.chunk.css → 6531-lite-1f6f3c392c.chunk.css} +1 -1
  36. package/dist/css/{1567-lite-16efb24b77.chunk.css → 6759-lite-2ab4d6f863.chunk.css} +1 -1
  37. package/dist/css/{6803-lite-16efb24b77.chunk.css → 6803-lite-2ab4d6f863.chunk.css} +1 -1
  38. package/dist/css/{6850-lite-769c93cb9e.chunk.css → 6850-lite-0bf8514497.chunk.css} +3 -3
  39. package/dist/css/{7533-lite-d0ae59ec54.chunk.css → 7533-lite-206fce5dbd.chunk.css} +1 -1
  40. package/dist/css/{7777-lite-8067dea624.chunk.css → 7777-lite-48d916f95c.chunk.css} +1 -1
  41. package/dist/css/{7987-lite-94679244a2.chunk.css → 7987-lite-fd431fbaf2.chunk.css} +1 -1
  42. package/dist/css/{8218-lite-fe8c54917b.chunk.css → 8218-lite-f54139cf27.chunk.css} +1 -1
  43. package/dist/css/{8316-lite-9083a6565c.chunk.css → 8316-lite-6036f465f0.chunk.css} +1 -1
  44. package/dist/css/{8354-lite-bc431d9d01.chunk.css → 8354-lite-8228cb401d.chunk.css} +1 -1
  45. package/dist/css/{8987-lite-95b3d79328.chunk.css → 8987-lite-6cd15b48d2.chunk.css} +1 -1
  46. package/dist/css/{9068-lite-c0341005e4.chunk.css → 9068-lite-c3a9ace963.chunk.css} +1 -1
  47. package/dist/css/{2507-lite-f00eb0266e.chunk.css → 9211-lite-9516182bdb.chunk.css} +1 -1
  48. package/dist/css/{9329-lite-a259b19412.chunk.css → 9329-lite-5f15379e31.chunk.css} +1 -1
  49. package/dist/css/{9417-lite-9083a6565c.chunk.css → 9417-lite-6036f465f0.chunk.css} +1 -1
  50. package/dist/css/{9620-lite-d77e9ad59b.chunk.css → 9620-lite-111c825071.chunk.css} +1 -1
  51. package/dist/css/{1850-lite-dca6b9e86d.chunk.css → 9818-lite-e9e8c03964.chunk.css} +1 -1
  52. package/dist/css/{lite-app-28b7b96628.css → lite-app-212404ee3a.css} +1 -1
  53. package/dist/scripts/1169-5a0d974a94-lite.chunk.js +2 -0
  54. package/dist/scripts/1169-5a0d974a94-lite.chunk.js.map +1 -0
  55. package/dist/scripts/{1313-455608bc46-lite.chunk.js → 1313-5a7170fb69-lite.chunk.js} +1 -1
  56. package/dist/scripts/{1313-455608bc46-lite.chunk.js.map → 1313-5a7170fb69-lite.chunk.js.map} +1 -1
  57. package/dist/scripts/{1402-d40dc88741-lite.chunk.js → 1402-39cb29d725-lite.chunk.js} +1 -1
  58. package/dist/scripts/{1402-d40dc88741-lite.chunk.js.map → 1402-39cb29d725-lite.chunk.js.map} +1 -1
  59. package/dist/scripts/{1407-3592ec24f2-lite.chunk.js → 1407-3bab3f00f6-lite.chunk.js} +1 -1
  60. package/dist/scripts/{1407-3592ec24f2-lite.chunk.js.map → 1407-3bab3f00f6-lite.chunk.js.map} +1 -1
  61. package/dist/scripts/{1567-edcff759b1-lite.chunk.js → 1567-b3141bc14f-lite.chunk.js} +1 -1
  62. package/dist/scripts/{1567-edcff759b1-lite.chunk.js.map → 1567-b3141bc14f-lite.chunk.js.map} +1 -1
  63. package/dist/scripts/{1602-173a4f272a-lite.chunk.js → 1602-dfe6928d65-lite.chunk.js} +1 -1
  64. package/dist/scripts/{1602-173a4f272a-lite.chunk.js.map → 1602-dfe6928d65-lite.chunk.js.map} +1 -1
  65. package/dist/scripts/{1820-68114ca994-lite.chunk.js → 1820-9a1f618969-lite.chunk.js} +2 -2
  66. package/dist/scripts/1820-9a1f618969-lite.chunk.js.map +1 -0
  67. package/dist/scripts/{2120-88f6dd6652-lite.chunk.js → 2120-82a7b90997-lite.chunk.js} +1 -1
  68. package/dist/scripts/{2120-88f6dd6652-lite.chunk.js.map → 2120-82a7b90997-lite.chunk.js.map} +1 -1
  69. package/dist/scripts/{2137-093f479ff9-lite.chunk.js → 2137-2e78e535ad-lite.chunk.js} +1 -1
  70. package/dist/scripts/{2137-093f479ff9-lite.chunk.js.map → 2137-2e78e535ad-lite.chunk.js.map} +1 -1
  71. package/dist/scripts/{2446-acc94130ed-lite.chunk.js → 2446-eaa1d2ee7d-lite.chunk.js} +2 -2
  72. package/dist/scripts/{2446-acc94130ed-lite.chunk.js.map → 2446-eaa1d2ee7d-lite.chunk.js.map} +1 -1
  73. package/dist/scripts/{2507-bb4e17b1b3-lite.chunk.js → 2507-fc744cab62-lite.chunk.js} +1 -1
  74. package/dist/scripts/{2507-bb4e17b1b3-lite.chunk.js.map → 2507-fc744cab62-lite.chunk.js.map} +1 -1
  75. package/dist/scripts/{2724-ee3a51e0c9-lite.chunk.js → 2724-060fdde41c-lite.chunk.js} +1 -1
  76. package/dist/scripts/{2724-ee3a51e0c9-lite.chunk.js.map → 2724-060fdde41c-lite.chunk.js.map} +1 -1
  77. package/dist/scripts/{2795-0616748349-lite.chunk.js → 2795-eb3a51adc2-lite.chunk.js} +1 -1
  78. package/dist/scripts/{2795-0616748349-lite.chunk.js.map → 2795-eb3a51adc2-lite.chunk.js.map} +1 -1
  79. package/dist/scripts/3070-63e0a6b63e-lite.chunk.js +2 -0
  80. package/dist/scripts/3070-63e0a6b63e-lite.chunk.js.map +1 -0
  81. package/dist/scripts/{3397-bb32e2287f-lite.chunk.js → 3397-cd6acb96c4-lite.chunk.js} +1 -1
  82. package/dist/scripts/{3397-bb32e2287f-lite.chunk.js.map → 3397-cd6acb96c4-lite.chunk.js.map} +1 -1
  83. package/dist/scripts/{3403-12c460d3f6-lite.chunk.js → 3403-d42b7125ae-lite.chunk.js} +1 -1
  84. package/dist/scripts/{3403-12c460d3f6-lite.chunk.js.map → 3403-d42b7125ae-lite.chunk.js.map} +1 -1
  85. package/dist/scripts/{3515-4de2fd7070-lite.chunk.js → 3515-72a31e0bbd-lite.chunk.js} +1 -1
  86. package/dist/scripts/{3515-4de2fd7070-lite.chunk.js.map → 3515-72a31e0bbd-lite.chunk.js.map} +1 -1
  87. package/dist/scripts/{3588-62e61bc526-lite.chunk.js → 3588-1c1c264291-lite.chunk.js} +2 -2
  88. package/dist/scripts/{3588-62e61bc526-lite.chunk.js.map → 3588-1c1c264291-lite.chunk.js.map} +1 -1
  89. package/dist/scripts/{3895-a54621a8c4-lite.chunk.js → 3895-cbeb003a0a-lite.chunk.js} +1 -1
  90. package/dist/scripts/{3895-a54621a8c4-lite.chunk.js.map → 3895-cbeb003a0a-lite.chunk.js.map} +1 -1
  91. package/dist/scripts/{4151-ad0c6f107f-lite.chunk.js → 4151-bb1e8aafcb-lite.chunk.js} +1 -1
  92. package/dist/scripts/{4151-ad0c6f107f-lite.chunk.js.map → 4151-bb1e8aafcb-lite.chunk.js.map} +1 -1
  93. package/dist/scripts/{458-35c635a2ce-lite.chunk.js → 458-1ca8abf829-lite.chunk.js} +1 -1
  94. package/dist/scripts/{458-35c635a2ce-lite.chunk.js.map → 458-1ca8abf829-lite.chunk.js.map} +1 -1
  95. package/dist/scripts/4718-b3cfb276a7-lite.chunk.js +2 -0
  96. package/dist/scripts/4718-b3cfb276a7-lite.chunk.js.map +1 -0
  97. package/dist/scripts/{5114-fcfd260e0b-lite.chunk.js → 5114-15c4180b16-lite.chunk.js} +1 -1
  98. package/dist/scripts/{5114-fcfd260e0b-lite.chunk.js.map → 5114-15c4180b16-lite.chunk.js.map} +1 -1
  99. package/dist/scripts/{5242-2d752ff85e-lite.chunk.js → 5242-e5cc8311eb-lite.chunk.js} +1 -1
  100. package/dist/scripts/{5242-2d752ff85e-lite.chunk.js.map → 5242-e5cc8311eb-lite.chunk.js.map} +1 -1
  101. package/dist/scripts/{5364-b081f5e1ca-lite.chunk.js → 5364-fe4a00711f-lite.chunk.js} +1 -1
  102. package/dist/scripts/{5364-b081f5e1ca-lite.chunk.js.map → 5364-fe4a00711f-lite.chunk.js.map} +1 -1
  103. package/dist/scripts/{5446-1ef1639ef6-lite.chunk.js → 5446-5a2f719a6f-lite.chunk.js} +1 -1
  104. package/dist/scripts/{5446-1ef1639ef6-lite.chunk.js.map → 5446-5a2f719a6f-lite.chunk.js.map} +1 -1
  105. package/dist/scripts/{5725-6792ca3e92-lite.chunk.js → 5725-1592727a8f-lite.chunk.js} +1 -1
  106. package/dist/scripts/{5725-6792ca3e92-lite.chunk.js.map → 5725-1592727a8f-lite.chunk.js.map} +1 -1
  107. package/dist/scripts/{5769-34ad224f5f-lite.chunk.js → 5769-e9f596e2b2-lite.chunk.js} +1 -1
  108. package/dist/scripts/{5769-34ad224f5f-lite.chunk.js.map → 5769-e9f596e2b2-lite.chunk.js.map} +1 -1
  109. package/dist/scripts/{5803-0005a9eb66-lite.chunk.js → 5803-7db6af5411-lite.chunk.js} +1 -1
  110. package/dist/scripts/{5803-0005a9eb66-lite.chunk.js.map → 5803-7db6af5411-lite.chunk.js.map} +1 -1
  111. package/dist/scripts/{5810-a652483b8e-lite.chunk.js → 5810-c81d69aea8-lite.chunk.js} +2 -2
  112. package/dist/scripts/{5810-a652483b8e-lite.chunk.js.map → 5810-c81d69aea8-lite.chunk.js.map} +1 -1
  113. package/dist/scripts/{5940-511beff2ee-lite.chunk.js → 5940-5731abccf3-lite.chunk.js} +2 -2
  114. package/dist/scripts/5940-5731abccf3-lite.chunk.js.map +1 -0
  115. package/dist/scripts/{6102-f1851eca08-lite.chunk.js → 6102-38e3abf2fa-lite.chunk.js} +3 -3
  116. package/dist/scripts/{6102-f1851eca08-lite.chunk.js.map → 6102-38e3abf2fa-lite.chunk.js.map} +1 -1
  117. package/dist/scripts/{6181-7a4fc8e1e1-lite.chunk.js → 6181-55d2689d74-lite.chunk.js} +1 -1
  118. package/dist/scripts/{6181-7a4fc8e1e1-lite.chunk.js.map → 6181-55d2689d74-lite.chunk.js.map} +1 -1
  119. package/dist/scripts/{6189-ce9f0eeb31-lite.chunk.js → 6189-b45080fab7-lite.chunk.js} +1 -1
  120. package/dist/scripts/{6189-ce9f0eeb31-lite.chunk.js.map → 6189-b45080fab7-lite.chunk.js.map} +1 -1
  121. package/dist/scripts/6309-f5bb1c14dc-lite.chunk.js +3 -0
  122. package/dist/scripts/6309-f5bb1c14dc-lite.chunk.js.map +1 -0
  123. package/dist/scripts/{6415-9d8b88c713-lite.chunk.js → 6415-5ac1a71471-lite.chunk.js} +1 -1
  124. package/dist/scripts/{6415-9d8b88c713-lite.chunk.js.map → 6415-5ac1a71471-lite.chunk.js.map} +1 -1
  125. package/dist/scripts/6450-2745feb746-lite.chunk.js +2 -0
  126. package/dist/scripts/6450-2745feb746-lite.chunk.js.map +1 -0
  127. package/dist/scripts/{6531-597262a181-lite.chunk.js → 6531-1325be9fb1-lite.chunk.js} +1 -1
  128. package/dist/scripts/{6531-597262a181-lite.chunk.js.map → 6531-1325be9fb1-lite.chunk.js.map} +1 -1
  129. package/dist/scripts/{6759-3f36472a49-lite.chunk.js → 6759-a7e1119553-lite.chunk.js} +1 -1
  130. package/dist/scripts/{6759-3f36472a49-lite.chunk.js.map → 6759-a7e1119553-lite.chunk.js.map} +1 -1
  131. package/dist/scripts/{6803-2275c83d96-lite.chunk.js → 6803-222bfeea55-lite.chunk.js} +1 -1
  132. package/dist/scripts/{6803-2275c83d96-lite.chunk.js.map → 6803-222bfeea55-lite.chunk.js.map} +1 -1
  133. package/dist/scripts/6850-393de993b8-lite.chunk.js +3 -0
  134. package/dist/scripts/6850-393de993b8-lite.chunk.js.map +1 -0
  135. package/dist/scripts/{6948-84a5f8d76f-lite.chunk.js → 6948-23ec6a6370-lite.chunk.js} +2 -2
  136. package/dist/scripts/6948-23ec6a6370-lite.chunk.js.map +1 -0
  137. package/dist/scripts/{7533-e079b2af18-lite.chunk.js → 7533-9edee544c6-lite.chunk.js} +1 -1
  138. package/dist/scripts/{7533-e079b2af18-lite.chunk.js.map → 7533-9edee544c6-lite.chunk.js.map} +1 -1
  139. package/dist/scripts/{7777-f0937ef1f5-lite.chunk.js → 7777-1c3490134e-lite.chunk.js} +1 -1
  140. package/dist/scripts/{7777-f0937ef1f5-lite.chunk.js.map → 7777-1c3490134e-lite.chunk.js.map} +1 -1
  141. package/dist/scripts/{7987-db0037709c-lite.chunk.js → 7987-ff7de6531f-lite.chunk.js} +1 -1
  142. package/dist/scripts/{7987-db0037709c-lite.chunk.js.map → 7987-ff7de6531f-lite.chunk.js.map} +1 -1
  143. package/dist/scripts/{8218-f3b81c7287-lite.chunk.js → 8218-088530bdf7-lite.chunk.js} +1 -1
  144. package/dist/scripts/{8218-f3b81c7287-lite.chunk.js.map → 8218-088530bdf7-lite.chunk.js.map} +1 -1
  145. package/dist/scripts/8316-ba6bae1f29-lite.chunk.js +2 -0
  146. package/dist/scripts/8316-ba6bae1f29-lite.chunk.js.map +1 -0
  147. package/dist/scripts/{8354-e30261b594-lite.chunk.js → 8354-d07c3bef5a-lite.chunk.js} +1 -1
  148. package/dist/scripts/{8354-e30261b594-lite.chunk.js.map → 8354-d07c3bef5a-lite.chunk.js.map} +1 -1
  149. package/dist/scripts/{8987-32190552fa-lite.chunk.js → 8987-c0c2790aab-lite.chunk.js} +1 -1
  150. package/dist/scripts/{8987-32190552fa-lite.chunk.js.map → 8987-c0c2790aab-lite.chunk.js.map} +1 -1
  151. package/dist/scripts/9016-0c078a39cb-lite.chunk.js +3 -0
  152. package/dist/scripts/9016-0c078a39cb-lite.chunk.js.map +1 -0
  153. package/dist/scripts/{9068-562c30f718-lite.chunk.js → 9068-554aa0d22b-lite.chunk.js} +1 -1
  154. package/dist/scripts/{9068-562c30f718-lite.chunk.js.map → 9068-554aa0d22b-lite.chunk.js.map} +1 -1
  155. package/dist/scripts/{9211-d4c7016679-lite.chunk.js → 9211-0381d3e715-lite.chunk.js} +1 -1
  156. package/dist/scripts/{9211-d4c7016679-lite.chunk.js.map → 9211-0381d3e715-lite.chunk.js.map} +1 -1
  157. package/dist/scripts/{9329-5cf6baab9d-lite.chunk.js → 9329-798d826fc4-lite.chunk.js} +1 -1
  158. package/dist/scripts/{9329-5cf6baab9d-lite.chunk.js.map → 9329-798d826fc4-lite.chunk.js.map} +1 -1
  159. package/dist/scripts/9417-aa8d198d40-lite.chunk.js +2 -0
  160. package/dist/scripts/9417-aa8d198d40-lite.chunk.js.map +1 -0
  161. package/dist/scripts/9620-d0f04eeccd-lite.chunk.js +3 -0
  162. package/dist/scripts/9620-d0f04eeccd-lite.chunk.js.map +1 -0
  163. package/dist/scripts/{9818-f63bdbbac4-lite.chunk.js → 9818-a2fa140139-lite.chunk.js} +1 -1
  164. package/dist/scripts/{9818-f63bdbbac4-lite.chunk.js.map → 9818-a2fa140139-lite.chunk.js.map} +1 -1
  165. package/dist/scripts/bundle-815f926b0f.min.js +3 -0
  166. package/dist/scripts/bundle-815f926b0f.min.js.map +1 -0
  167. package/package.json +1 -1
  168. package/dist/scripts/1169-3df974a8eb-lite.chunk.js +0 -2
  169. package/dist/scripts/1169-3df974a8eb-lite.chunk.js.map +0 -1
  170. package/dist/scripts/1820-68114ca994-lite.chunk.js.map +0 -1
  171. package/dist/scripts/3070-fb8eb47716-lite.chunk.js +0 -2
  172. package/dist/scripts/3070-fb8eb47716-lite.chunk.js.map +0 -1
  173. package/dist/scripts/4718-2b58aa560d-lite.chunk.js +0 -2
  174. package/dist/scripts/4718-2b58aa560d-lite.chunk.js.map +0 -1
  175. package/dist/scripts/5940-511beff2ee-lite.chunk.js.map +0 -1
  176. package/dist/scripts/6309-dd3a8e7f21-lite.chunk.js +0 -3
  177. package/dist/scripts/6309-dd3a8e7f21-lite.chunk.js.map +0 -1
  178. package/dist/scripts/6450-6819d42c15-lite.chunk.js +0 -2
  179. package/dist/scripts/6450-6819d42c15-lite.chunk.js.map +0 -1
  180. package/dist/scripts/6850-8770bfeefb-lite.chunk.js +0 -3
  181. package/dist/scripts/6850-8770bfeefb-lite.chunk.js.map +0 -1
  182. package/dist/scripts/6948-84a5f8d76f-lite.chunk.js.map +0 -1
  183. package/dist/scripts/8316-dad1824a5f-lite.chunk.js +0 -2
  184. package/dist/scripts/8316-dad1824a5f-lite.chunk.js.map +0 -1
  185. package/dist/scripts/9016-c359251f82-lite.chunk.js +0 -3
  186. package/dist/scripts/9016-c359251f82-lite.chunk.js.map +0 -1
  187. package/dist/scripts/9417-70c6489c67-lite.chunk.js +0 -2
  188. package/dist/scripts/9417-70c6489c67-lite.chunk.js.map +0 -1
  189. package/dist/scripts/9620-630f9e6344-lite.chunk.js +0 -3
  190. package/dist/scripts/9620-630f9e6344-lite.chunk.js.map +0 -1
  191. package/dist/scripts/bundle-d20cb66d1a.min.js +0 -3
  192. package/dist/scripts/bundle-d20cb66d1a.min.js.map +0 -1
  193. /package/dist/scripts/{2446-acc94130ed-lite.chunk.js.LICENSE.txt → 2446-eaa1d2ee7d-lite.chunk.js.LICENSE.txt} +0 -0
  194. /package/dist/scripts/{3588-62e61bc526-lite.chunk.js.LICENSE.txt → 3588-1c1c264291-lite.chunk.js.LICENSE.txt} +0 -0
  195. /package/dist/scripts/{5810-a652483b8e-lite.chunk.js.LICENSE.txt → 5810-c81d69aea8-lite.chunk.js.LICENSE.txt} +0 -0
  196. /package/dist/scripts/{6102-f1851eca08-lite.chunk.js.LICENSE.txt → 6102-38e3abf2fa-lite.chunk.js.LICENSE.txt} +0 -0
  197. /package/dist/scripts/{6309-dd3a8e7f21-lite.chunk.js.LICENSE.txt → 6309-f5bb1c14dc-lite.chunk.js.LICENSE.txt} +0 -0
  198. /package/dist/scripts/{6850-8770bfeefb-lite.chunk.js.LICENSE.txt → 6850-393de993b8-lite.chunk.js.LICENSE.txt} +0 -0
  199. /package/dist/scripts/{9016-c359251f82-lite.chunk.js.LICENSE.txt → 9016-0c078a39cb-lite.chunk.js.LICENSE.txt} +0 -0
  200. /package/dist/scripts/{9620-630f9e6344-lite.chunk.js.LICENSE.txt → 9620-d0f04eeccd-lite.chunk.js.LICENSE.txt} +0 -0
  201. /package/dist/scripts/{bundle-d20cb66d1a.min.js.LICENSE.txt → bundle-815f926b0f.min.js.LICENSE.txt} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"scripts/2120-88f6dd6652-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/components/curriculum-links/CurriculumLinkItem.tsx","file:///app/packages/libs/shared/src/components/curriculum-links/CurriculumLinks.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/tags/PartialTagItem.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/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/WidgetInteraction.ts","file:///app/packages/libs/shared/src/hooks/UseGetMediaQueryString.ts","file:///app/packages/projects/lite/src/shared/views/view-curriculum-links/ViewCurriculumLinksView.tsx","file:///app/packages/libs/shared/src/components/curriculum-links/curriculum-links.scss","file:///app/packages/libs/shared/src/components/tags/tags.scss"],"sourcesContent":["import React from 'react';\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\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 >\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 { 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 { ImageSize } from 'libs/shared/enums/Images';\nimport { Curriculum, Presentation } from 'libs/shared/interfaces';\nimport { ImageHelper } from 'libs/shared/utils/ImageHelper';\n\nimport { CurriculumLinksEmptyState } from './CurriculumLinksEmptyState';\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';\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 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 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 CurriculumLinksProps {\n curriculumLinks: Curriculum[][];\n emptyStateUrl?: string;\n checkAllCurriculums?: () => Promise<Presentation[]>;\n onChangeCurriculum?: (id: string) => void;\n}\n\nexport function CurriculumLinks(props: CurriculumLinksProps): JSX.Element {\n const [ codeWidth, setCodeWidth ] = React.useState(0);\n const [ showOtherCurriculums, setShowOtherCurriculums ] = React.useState(false);\n const [ loadingOther, setLoadingOther ] = React.useState(false);\n const [ curriculumTags, setCurriculumTags ] = React.useState<Presentation[]>([]);\n\n React.useEffect(() => {\n if (props.checkAllCurriculums && !props.curriculumLinks?.length) {\n setLoadingOther(true);\n // only fetch other curriculums when this curriculum is displayed\n props.checkAllCurriculums().then(data => {\n if (data.length) {\n setShowOtherCurriculums(true);\n }\n\n setCurriculumTags(data);\n }).finally(() => setLoadingOther(false));\n }\n }, [props.curriculumLinks?.length]);\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 (loadingOther) {\n return <PartialCurriculumLinks />;\n }\n\n if (!props.curriculumLinks?.length) {\n // only if all other curriculums don't have links we render the empty state\n if (props.emptyStateUrl && !showOtherCurriculums && !loadingOther)\n return <CurriculumLinksEmptyState emptyStateUrl={props.emptyStateUrl} />;\n }\n\n if (showOtherCurriculums) {\n return (\n <div>\n <div className='mb-3'>\n <Text namespace={namespace} phrase='currentEmpty' />\n </div>\n <div className='mb-3'>\n <Text namespace={namespace} phrase='currentEmptyInfo' />\n </div>\n <ul className='list-unstyled mb-0'>\n {curriculumTags.map(t => (\n <li\n key={t.id}\n className={`p-1 pe-2 rounded-pill d-inline-flex align-items-center cursor-pointer ${styles.tag} me-2`}\n onClick={() => props.onChangeCurriculum(t.id.toString())}\n >\n <div className={`bg-white ${styles.cover} rounded-circle`}>\n <img\n src={ImageHelper.createUrl(t.cover.url, { size: ImageSize.Small })}\n alt={t.name}\n className='rounded-circle'\n />\n </div>\n {t.name}\n </li>\n ))}\n </ul>\n </div>\n );\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 { 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\"};","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});","// 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('seeMore')}</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 { 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 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<HTMLDivElement>) => void;\n onDragEnd?: () => void;\n\n onTouchMove?: (event: React.TouchEvent<HTMLDivElement>) => void;\n onTouchEnd?: () => void;\n\n percentageDragged?: number;\n}\n\nexport const SlidingListContainer = React.forwardRef((\n props: SlidingListContainerProps,\n ref: React.MutableRefObject<HTMLDivElement>\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 <div\n className='d-flex flex-nowrap position-relative w-100'\n style={getPositionStyling(position, positionType, percentageDragged)}\n ref={ref}\n {...getEventListeners()}\n >\n {children}\n </div>\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 { 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\nexport enum WidgetButtonDirection {\n Left,\n Right\n}\n\ninterface WidgetButtonProps {\n onClick: (event: React.MouseEvent<HTMLDivElement, 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 <div\n role='button'\n onClick={props.onClick}\n className={`${styles.extendedClickableArea} ${isLeft ? styles.left : styles.right}`}\n />\n )}\n\n <div\n role='button'\n className={`${getPositionClass()} ${styles.button} ${props.className || ''}`}\n onClick={props.onClick}\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 </div>\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 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 React from 'react';\nimport { Spinner } from 'react-bootstrap';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/react/index';\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 { CurriculumLinkItem } from 'libs/shared/components/curriculum-links/CurriculumLinkItem';\nimport { CurriculumLinks } from 'libs/shared/components/curriculum-links/CurriculumLinks';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { PartialTagItem } from 'libs/shared/components/tags/PartialTagItem';\nimport { DynamicWidget } from 'libs/shared/components/widgets/dynamic-widget';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { PopupViewProps, Presentation, Video } from 'libs/shared/interfaces';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { useCurriculums } from 'shared/hooks/useCurriculums';\n\nconst getPhrase = LanguageService.encloseNamespace('shared.viewCurriculumLinks');\n\ninterface ViewCurriculumLinksViewProps extends PopupViewProps {\n id: string;\n}\n\nexport function ViewCurriculumLinksView(props: ViewCurriculumLinksViewProps): React.ReactElement {\n const {\n hasLoaded,\n preferredCurriculum,\n availableCurriculums,\n nonEmptyCurriculums,\n curriculumLinks,\n updateCurriculum\n } = useCurriculums(props.id);\n\n const [ showLoadingSpinner, setShowLoadingSpinner ] = React.useState(!hasLoaded);\n const [ selectedCurriculum, setSelectedCurriculum ] = React.useState<Presentation>();\n\n const video = Flight.useBasicFetch<Video>(VideoRequests.video(props.id));\n\n const alerts = useAlerts();\n function onChangeCurriculum(curriculumId: string): void {\n const newCurriculum = availableCurriculums.find(c => c.id.toString() === curriculumId);\n\n if (!newCurriculum?.id)\n return;\n\n if (selectedCurriculum?.id?.toString() === newCurriculum?.id?.toString())\n return;\n\n setSelectedCurriculum(newCurriculum);\n setShowLoadingSpinner(true);\n\n const onSuccess = () => {\n AnalyticsHelper.logUserAction({\n id: newCurriculum.id,\n name: newCurriculum.id,\n description: newCurriculum.description,\n videoId: video.data?.id,\n videoName: video.data?.name\n }, {\n entity: EntityType.Presentation,\n actionType: UserAction.Select,\n descriptor: PresentationDescriptor.Curriculum,\n location: LocationContext.PlayPage\n });\n };\n\n const onError = () => {\n // If the request to change curriculum fails, we reset the select state and alert the user\n setSelectedCurriculum(selectedCurriculum);\n setShowLoadingSpinner(false);\n alerts.error(getPhrase('updateFailed'));\n };\n\n updateCurriculum(newCurriculum, onSuccess, onError);\n }\n\n React.useEffect(() => {\n if (!hasLoaded)\n return;\n\n if (!selectedCurriculum)\n setSelectedCurriculum(preferredCurriculum ?? ArrayHelper.first(availableCurriculums));\n\n setShowLoadingSpinner(false);\n }, [ preferredCurriculum?.id, hasLoaded ]);\n\n return (\n <Popup\n title={getPhrase('heading')}\n closePopup={props.closePopup}\n size='lg'\n >\n <div className='mb-3 mx-2'>\n {!!nonEmptyCurriculums?.length && (\n <DynamicWidget\n collection={nonEmptyCurriculums}\n childClassName='flex-shrink-0'\n childComponent={props => {\n return (\n <CurriculumLinkItem\n {...props}\n selected={selectedCurriculum?.id?.toString() === props.data.id.toString()}\n onChangeCurriculum={onChangeCurriculum}\n />\n );\n }}\n partialLoadingComponent={() => <PartialTagItem />}\n widgetDataDeps={[selectedCurriculum?.id?.toString()]}\n />\n )}\n </div>\n\n {!showLoadingSpinner ? (\n <div className='pb-3'>\n <CurriculumLinks\n curriculumLinks={curriculumLinks}\n emptyStateUrl={ImageUrls.EmptyStates.CURRICULUM_LINKS}\n onChangeCurriculum={onChangeCurriculum}\n />\n </div>\n ) : (\n <div className='d-flex justify-content-center align-items-center py-5'>\n <Spinner as='div' animation='border' role='status' />\n </div>\n )}\n\n <PopupButtons>\n <PopupButtons.Submit variant='dark' onClick={props.closePopup} text={getPhrase('close')} />\n </PopupButtons>\n </Popup>\n );\n}\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 {\"tagList\":\"Zw6d9\",\"disabled\":\"jlL1c\",\"partialTag\":\"too_N\",\"badge\":\"OjtN8\",\"close\":\"X9joI\"};"],"names":["CurriculumLinkItem","props","curriculumTag","data","key","id","className","selected","onClick","onChangeCurriculum","toString","src","cover","url","size","alt","name","BRACKET_SEGMENT_REGEX","namespace","BASE_PILL_CLASS","CurriculumLeaf","getCurriculumCodeClass","baseClass","leaf","uiContainsCodes","codeRef","current","width","getBoundingClientRect","trySetMaxCodeWidth","description","style","minWidth","codeWidth","ref","phrase","dangerouslySetInnerHTML","__html","CurriculumSubject","audienceSegment","subjectSegment","audienceBracketSegments","areaAndLeafSets","getLeafStyleClass","linkSet","areasAndLeaves","forEach","areaAndLeafSet","areaText","map","ca","join","push","match","Object","keys","i","CurriculumLinks","setCodeWidth","showOtherCurriculums","setShowOtherCurriculums","loadingOther","setLoadingOther","curriculumTags","setCurriculumTags","currentVal","checkAllCurriculums","curriculumLinks","length","then","curriculumLinkSets","newSet","subject","audience","areas","leaves","curriculumObj","type","emptyStateUrl","t","linkSetKey","getPhrase","CurriculumLinksEmptyState","altText","PartialCurriculumLinkSection","PartialCurriculumLinks","PartialTagItem","tagClass","classNames","LanguageService","SeeMore","AppLink","appLink","analyticsData","analyticsOptions","descriptor","WidgetHeader","hasDescription","showSeeMoreLink","blankImage","Image","DragHelper","event","dataTransfer","setDragImage","FunctionHelper","isTouchScreen","UserAgentHelper","SlidingListContainer","listenerProps","xPosition","measurement","dragPercentage","children","positionType","onDrag","onDragEnd","onTouchMove","onTouchEnd","percentageDragged","position","CssMeasurement","C","transform","transition","draggable","onDragStart","onDragOver","onTouchMoveCapture","onTouchEndCapture","WidgetButtonDirection","WidgetButton","isLeft","direction","Left","arrowSvg","hide","state","contents","paddingBottom","viewableItems","height","useGradientBackdrop","leftGradientClassName","rightGradientClassName","hideExtendedClickableArea","role","leftButtonClassName","rightButtonClassName","hoverText","SvgContainer","svgName","S","CurriculumType","WidgetInteraction","useGetMediaQueryString","isXS","isSM","isMD","isLG","isXL","isXXL","currentString","ViewCurriculumLinksView","hasLoaded","preferredCurriculum","availableCurriculums","nonEmptyCurriculums","updateCurriculum","showLoadingSpinner","setShowLoadingSpinner","selectedCurriculum","setSelectedCurriculum","video","alerts","curriculumId","newCurriculum","find","c","videoId","videoName","entity","actionType","location","error","title","closePopup","collection","childClassName","childComponent","partialLoadingComponent","widgetDataDeps","as","animation","variant","text"],"sourceRoot":""}
1
+ {"version":3,"file":"scripts/2120-82a7b90997-lite.chunk.js","mappings":"8LAeM,SAAUA,EAAmBC,GACjC,IAAcC,EAAkBD,EAAxBE,KAER,OACE,gBAAC,IAAS,CACRC,IAAKF,EAAcG,GACnBC,UAAS,gFAA2E,QAAU,YAAIL,EAAMM,SAAW,aAAkB,IACrIC,QAAS,kBAAMP,EAAMQ,mBAAmBP,EAAcG,GAAGK,WAAW,GAEpE,uBAAKJ,UAAS,mBAAc,UAAY,2BACtC,uBACEK,IAAK,cAAsBT,EAAcU,MAAMC,IAAK,CAAEC,KAAM,aAC5DC,IAAKb,EAAcc,KACnBV,UAAU,oBAGd,uBAAKA,UAAU,QACZJ,EAAcc,MAIvB,C,ovDCvBA,IAAMC,EAAwB,mBAExBC,EAAY,yBAEZC,EAAkB,0EAkBxB,SAASC,EAAenB,GACtB,SAASoB,IACP,IAAMC,EAAYH,EAAkB,mBAGpC,OAAKlB,EAAMsB,KAAKP,MAAQf,EAAMuB,gBACrBF,EAAY,mCAEdA,EAAY,cACrB,CAEA,IAAMG,EAAU,WAWhB,OATA,aAAgB,WACd,GAAKA,EAAQC,QAAb,CAGA,IAAQC,EAAUF,EAAQC,QAAQE,wBAA1BD,MAER1B,EAAM4B,mBAAmBF,EAJjB,CAKV,GAAG,CAACF,EAAQC,UAGV,uBAAKpB,UAAU,UAENL,EAAMsB,KAAKO,aAOX7B,EAAMsB,KAAKP,MAAQf,EAAMuB,gBAE1B,gCACE,uBACElB,UAAU,wBACVyB,MAAO,CAAEC,SAAU/B,EAAMgC,UAAY,GAAH,OAAMhC,EAAMgC,UAAS,MAAO,SAE9D,sBAAIC,IAAKT,EAASnB,UAAWe,KAC3B,gBAAC,IAAI,CAACH,UAAWA,EAAWiB,OAAO,aAGvC,qBAAG7B,UAAU,wBAAwB8B,wBAAyB,CAAEC,OAAQpC,EAAMsB,KAAKO,gBASpF7B,EAAMsB,KAAKP,MAASf,EAAMuB,gBAI7B,gCACE,uBACElB,UAAU,wBACVyB,MAAO,CAAEC,SAAU/B,EAAMgC,UAAY,GAAH,OAAMhC,EAAMgC,UAAS,MAAO,SAE9D,sBAAIC,IAAKT,EAASnB,UAAWe,KAA2BpB,EAAMsB,KAAKP,OAErE,qBAAGV,UAAU,wBAAwB8B,wBAAyB,CAAEC,OAAQpC,EAAMsB,KAAKO,gBAV9E,qBAAGxB,UAAU,MAAM8B,wBAAyB,CAAEC,OAAQpC,EAAMsB,KAAKO,eA3BjE,qBAAGxB,UAAU,MAAM8B,wBAAyB,CAAEC,OAAQpC,EAAMsB,KAAKP,QA2ClF,CAQA,SAASsB,EAAkBrC,GACzB,IAuBQsC,EACAC,EAOAC,EA/BFC,EAA8E,CAAC,EAEjFlB,GAAkB,EAqCtB,SAASmB,EAAkBpB,GACzB,IAAMjB,EAAY,OAElB,OAAKiB,EAAKP,MAASQ,EAGZlB,EAFEA,EAAY,SAAW,uBAGlC,CAEA,OA5CAL,EAAM2C,QAAQC,eAAeC,SAAQ,SAAAC,GACnC,IAAMC,EAAWD,EAAe,UAAqBE,KAAI,SAAAC,GAAE,OAAIA,EAAGlC,IAAI,IAAEmC,KAAK,OAEzET,EAAgBM,GAClBD,EAAe,UAAqBD,SAAQ,SAAAvB,GAC1CmB,EAAgBM,GAAUI,KAAK7B,GAG3BA,EAAKP,OACPQ,GAAkB,EACtB,IAKFkB,EAAgBM,GAAYD,EAAe,SAC7C,IA6BE,gCACE,sBAAIzC,UAAS,UAAKa,EAAe,kDA3B7BoB,EAAkBtC,EAAM2C,QAAQ,cAAyB5B,KACzDwB,EAAiBvC,EAAM2C,QAAQ,aAAwB5B,MAOvDyB,EAA0BF,EAAgBc,MAAMpC,IAG7C,GAAP,OAAUwB,EAAwB,GAAE,cAAMA,EAAwB,GAAE,cAAMD,GAErE,GAAP,OAAUD,EAAe,cAAMC,KAkB7B,uBAAKlC,UAAS,eAAU,wBACrBgD,OAAOC,KAAKb,GAAiBO,KAAI,SAACD,EAAUQ,GAC3C,OACE,uBAAKpD,IAAKoD,EAAGlD,UAAW,iBACrB0C,GAAY,sBAAI1C,UAAU,yBAAyB0C,GACpD,sBAAI1C,UAAU,iBACXoC,EAAgBM,GAAUC,KAAI,SAAA1B,GAAI,OACjC,sBAAInB,IAAKmB,EAAKlB,GAAIC,UAAWqC,EAAkBpB,IAC7C,gBAACH,EAAc,CACbG,KAAMA,EACNU,UAAWhC,EAAMgC,UACjBJ,mBAAoB5B,EAAM4B,mBAC1BL,gBAAiBA,IAEhB,KAKf,KAIR,CAaM,SAAUiC,EAAgBxD,G,QACuB,IAAjB,WAAe,GAAE,GAA7CgC,EAAS,KAAEyB,EAAY,KACgD,IAArB,YAAe,GAAM,GAAvEC,EAAoB,KAAEC,EAAuB,KACU,IAArB,YAAe,GAAM,GAAvDC,EAAY,KAAEC,EAAe,KAC2C,IAAlC,WAA+B,IAAG,GAAxEC,EAAc,KAAEC,EAAiB,KAgBzC,SAASnC,EAAmBF,GAW1B+B,GAAa,SAAAO,GACX,OAAIA,GAActC,EACTsC,EAEFtC,CACT,GACF,CA/BA,aAAgB,W,MACV1B,EAAMiE,uBAA6C,QAArB,EAAAjE,EAAMkE,uBAAe,eAAEC,UACvDN,GAAgB,GAEhB7D,EAAMiE,sBAAsBG,MAAK,SAAAlE,GAC3BA,EAAKiE,QACPR,GAAwB,GAG1BI,EAAkB7D,EACpB,IAAE,SAAS,kBAAM2D,GAAgB,EAAM,IAE3C,GAAG,CAAsB,QAArB,EAAA7D,EAAMkE,uBAAe,eAAEC,SA6B3B,IAAME,EAAqB,WAAc,WACvC,IAAMC,EAA6B,CAAC,EAgDpC,OA9CAtE,EAAMkE,gBAAgBrB,SAAQ,SAAAF,GAC5B,IAAI4B,EAA8C,KAC9CC,EAAgD,KAC9CC,EAA2C,GAC3CC,EAA4C,GAElD/B,EAAQE,SAAQ,SAAA8B,GACd,OAAQA,EAAcC,MACpB,KAAK,YACHL,EAAUI,EACV,MACF,KAAK,aACHH,EAAWG,EACX,MACF,KAAK,SACHF,EAAMtB,KAAKwB,GACX,MACF,KAAK,SACHD,EAAOvB,KAAKwB,GAKlB,IAEA,IAAMxE,EAAM,GAAH,OAAMoE,EAAQnE,GAAE,YAAIoE,EAASpE,IAElCkE,EAAOnE,GACTmE,EAAOnE,GAAKyC,eAAeO,KAAK,EAAD,KAC5B,SAAsBsB,GACtB,SAAsBC,IAM3BJ,EAAOnE,GAAO,EAAH,OACR,YAAyBoE,GACzB,aAA0BC,GAAQ,iBACnB,CAAC,EAAD,KACb,SAAsBC,GACtB,SAAsBC,IAG7B,IAEOJ,CACT,GAAG,CAACtE,EAAMkE,kBAEV,OAAIN,EACK,gBAAC,IAAsB,OAGN,QAArB,EAAA5D,EAAMkE,uBAAe,eAAEC,UAEtBnE,EAAM6E,eAAkBnB,GAAyBE,EAInDF,EAEA,2BACE,uBAAKrD,UAAU,QACb,gBAAC,IAAI,CAACY,UAAWA,EAAWiB,OAAO,kBAErC,uBAAK7B,UAAU,QACb,gBAAC,IAAI,CAACY,UAAWA,EAAWiB,OAAO,sBAErC,sBAAI7B,UAAU,sBACXyD,EAAed,KAAI,SAAA8B,GAAC,OACnB,sBACE3E,IAAK2E,EAAE1E,GACPC,UAAS,gFAA2E,QAAU,SAC9FE,QAAS,kBAAMP,EAAMQ,mBAAmBsE,EAAE1E,GAAGK,WAAW,GAExD,uBAAKJ,UAAS,mBAAc,UAAY,oBACtC,uBACEK,IAAK,cAAsBoE,EAAEnE,MAAMC,IAAK,CAAEC,KAAM,aAChDC,IAAKgE,EAAE/D,KACPV,UAAU,oBAGbyE,EAAE/D,KACA,MAQb,sBAAIV,UAAU,qBACXgD,OAAOC,KAAKe,GAAoBrB,KAAI,SAAC+B,EAAYxB,GAAC,OACjD,sBAAIpD,IAAG,kBAAaoD,GAAKlD,UAAW,mBAClC,gBAACgC,EAAiB,CAChBM,QAAS0B,EAAmBU,GAC5BnD,mBAAoBA,EACpBI,UAAWA,IAEV,KA3CA,gBAAC,IAAyB,CAAC6C,cAAe7E,EAAM6E,eA+C7D,C,mFC7VM5D,EAAY,yBACZ+D,EAAY,qBAAiC/D,GAM7C,SAAUgE,EAA0BjF,GACxC,OACE,gBAAC,IAAU,CAACK,UAAU,QACpB,gBAAC,UAAgB,CAACK,IAAKV,EAAM6E,cAAeK,QAASF,EAAU,aAAcnE,KAAK,UAClF,gBAAC,YAAkB,KACjB,gBAAC,IAAI,CAACI,UAAWA,EAAWiB,OAAO,kBAErC,gBAAC,SAAe,KACd,gBAAC,IAAI,CAACjB,UAAWA,EAAWiB,OAAO,eAI3C,C,kDCtBA,IAAMiD,EAA+B,WAAH,OAChC,gCACE,uBAAK9E,UAAS,qFCLS,WDMvB,2BACE,uBAAKA,UAAS,0CCPsB,WDSpC,uBAAKA,UAAU,eACb,uBAAKA,UAAS,gCCVmC,UDW/C,uBAAKA,UAAS,kFAGhB,uBAAKA,UAAS,qCCdyD,aDiB1E,EAGC,SAAU+E,IACd,OACE,2BACE,uBAAK/E,UAAU,QACb,gBAAC8E,EAA4B,OAG/B,uBAAK9E,UAAU,QACb,gBAAC8E,EAA4B,OAG/B,2BACE,gBAACA,EAA4B,OAIrC,C,6DE7BaE,EAAiB,QAAW,YAA+C,QAApCC,SAC5CC,EAAa,0FAAH,YAD0C,IAAG,KAAE,EACsD,YAAI,gBAEzH,OACE,uBAAKlF,UAAU,QACb,wBAAMA,UAAWkF,GAAU,KAGjC,G,mFCfA,SAAgB,QAAU,SCW1B,IACMP,EAAYQ,EAAA,mBADA,uBAclB,SAASC,EAAQzF,GACf,OACE,uBAAKK,UAAS,eAAU,YACtB,gBAACqF,EAAA,EAAO,CACNC,QAAS3F,EAAM2F,QACfC,cAAe5F,EAAM4F,cACrBC,iBAAgB,+BAAO7F,EAAM6F,kBAAgB,CAAEC,WAAY,eAC3DzF,UAAS,+BAA0BL,EAAM2F,QAAU,sBAAwB,KAE3E,qBAAGtF,UAAU,yDAAyD2E,EAAU,aAIxF,CAEM,SAAUe,EAAa/F,GAC3B,IAAMgG,IAAmBhG,EAAM6B,YAE/B,OAAK7B,EAAMe,MAASf,EAAM6B,YAIxB,uBAAKxB,UAAU,yBACb,uBAAKA,UAAU,oCACVL,EAAMe,MACP,uBAAKV,UAAW,SACd,gBAACqF,EAAA,EAAO,CACNC,QAAS3F,EAAM2F,QACfE,iBAAkB7F,EAAM6F,iBACxBD,cAAe5F,EAAM4F,cACrBvF,UAAS,+BAA0BL,EAAM2F,QAAU,sBAAwB,IAC3EpF,QAASP,EAAMO,SAEf,sBAAIF,UAAU,6BACXL,EAAMe,UAKZf,EAAM2F,UAAYK,KAAoBhG,EAAMiG,iBAAmB,gBAACR,EAAO,iBAAKzF,KAGhFgG,GACC,uBAAK3F,UAAU,kDACb,qBAAGA,UAAS,iDAA4C,gBACtD,4BAAOL,EAAM6B,gBAEZ7B,EAAM2F,WAAa3F,EAAMiG,iBAAmB,gBAACR,EAAO,iBAAKzF,MA5B3D,gCAiCX,C,2JC5EMkG,EAAa,IAAIC,MACvBD,EAAWxF,IAAM,yEAEV,IAAM0F,EAEE,SAACC,GACPA,EAAMC,aAAaC,cAAiBC,EAAA,aAA0BH,EAAMC,aAAaC,eAGtFF,EAAMC,aAAaC,aAAaL,EAAY,EAAG,EACjD,ECJIO,EAAgBC,EAAA,kBA0BTC,EAAuB,cAAiB,SACnD3G,EACAiC,GAEA,IAGQ2E,EA/BkBC,EAAmBC,EAA6BC,EA4BlEC,EAAwGhH,EAAxGgH,SAAUC,EAA8FjH,EAA9FiH,aAAcC,EAAgFlH,EAAhFkH,OAAQC,EAAwEnH,EAAxEmH,UAAWC,EAA6DpH,EAA7DoH,YAAaC,EAAgDrH,EAAhDqH,WAAYC,EAAoCtH,EAApCsH,kBAAiB,EAAmBtH,EAAjBuH,SAAAA,OAAQ,IAAG,IAAC,EAoB3G,OACE,qCACElH,UAAU,6CACVyB,OAnDsB+E,EAmDIU,EAnDeT,EAmDLG,EAnDkCF,EAmDpBO,EAjDlDR,IAAgBU,EAAAC,EAAA,YAA6BV,IAC/CF,GAAwBE,GAEnB,CACLW,UAAW,eAAF,OAAiBb,GAAS,OAAGC,EAAW,eACjDa,WAAY,8BA6CV1F,IAAKA,IArBD2E,EAA4B,CAAC,EAE/BM,GAAUC,IACZP,EAAcgB,WAAY,EAC1BhB,EAAcO,UAAYA,EAC1BP,EAAciB,YAAczB,EAC5BQ,EAAckB,WAAaZ,GAGzBE,GAAeC,GAAcZ,IAC/BG,EAAcmB,mBAAqBX,EACnCR,EAAcoB,kBAAoBX,GAG7BT,IAUJI,EAGP,G,gFCnEA,QAAiD,QAAjD,EAAiE,QCQjE,IAAYiB,GAAZ,SAAYA,GACV,mBACA,oBACD,CAHD,CAAYA,IAAAA,EAAqB,KAsB1B,IAAMC,EAAe,QAAW,SAASlI,GAC9C,IAKMK,E,IALA8H,EAASnI,EAAMoI,YAAcH,EAAsBI,KAEnDC,EAAWH,EAAS,iBAA2B,kBAqBrD,OAAInI,EAAMuI,KACD,iCAGP,uBAAKlI,UD1DyB,QC0DUyB,MAVV,YAAf,QAAX,EAAA9B,EAAMwI,aAAK,eAAEC,UACR,CAAEC,cAAgB,OAAmB,QAAX,EAAA1I,EAAMwI,aAAK,eAAEG,eAAiB,KAE1D,CAAEC,OAAQ,SAQd5I,EAAM6I,qBACL,uBAAKxI,UAAW8H,EAAS,GAAH,OD5D+L,QC4DtK,YAAInI,EAAM8I,uBAAqB,UD5DgH,QC4DpF,YAAI9I,EAAM+I,2BAGpH/I,EAAMgJ,2BACN,uBACEC,KAAK,SACL1I,QAASP,EAAMO,QACfF,UAAS,UDnE2J,QCmE1H,YAAI8H,EAAS,EAAc,KAIzE,uBACEc,KAAK,SACL5I,UAAS,WArCTA,EDpCsO,QCwCxOA,GADE8H,EACW,IAAJ,OAAQ,EAAW,YAAInI,EAAMkJ,qBAEzB,IAAJ,OAAQ,EAAY,YAAIlJ,EAAMmJ,uBA+BL,YDzE0C,QCyEzB,YAAInJ,EAAMK,WAAa,IACxEE,QAASP,EAAMO,SAEdP,EAAMoJ,WACL,wBAAM/I,UAAS,oBD7E6E,UC6EzCL,EAAMoJ,WAE3D,gBAACC,EAAA,EAAY,CACXC,QAAShB,EACTzH,KAAMwI,EAAAE,EAAA,OACNlJ,UAAS,uCDlF2H,YCuF9I,G,kBCxFA,IAAYmH,E,iBAAZ,SAAYA,GACV,iBACA,aACD,CAHD,CAAYA,IAAAA,EAAc,I,kBCA1B,IAAYgC,E,iBAAZ,SAAYA,GACV,8BACA,gCACA,wBACA,uBACD,CALD,CAAYA,IAAAA,EAAc,I,kBCA1B,IAAYC,E,iBAAZ,SAAYA,GACV,cACA,cACA,sBACA,kBACA,cACA,kBACA,6BACD,CARD,CAAYA,IAAAA,EAAiB,I,4DCOvB,SAAUC,IACd,IAAMC,GAAO,OAAc,QACrBC,GAAO,OAAc,QACrBC,GAAO,OAAc,QACrBC,GAAO,OAAc,QACrBC,GAAO,OAAc,QACrBC,GAAQ,OAAc,SAExBC,EAAgB,OAQpB,OAPIN,IAAMM,EAAgB,QACtBL,IAAMK,EAAgB,QACtBJ,IAAMI,EAAgB,QACtBH,IAAMG,EAAgB,QACtBF,IAAME,EAAgB,QACtBD,IAAOC,EAAgB,SAEpBA,CACT,C,2vCCDA,IAAMjF,EAAY,qBAAiC,8BAM7C,SAAUkF,EAAwBlK,G,MACtC,GAOI,OAAeA,EAAMI,IANvB+J,EAAS,EAATA,UACAC,EAAmB,EAAnBA,oBACAC,EAAoB,EAApBA,qBACAC,EAAmB,EAAnBA,oBACApG,EAAe,EAAfA,gBACAqG,EAAgB,EAAhBA,iBAG8E,IAA1B,YAAgBJ,GAAU,GAAxEK,EAAkB,KAAEC,EAAqB,KACmC,IAA9B,aAA8B,GAA5EC,EAAkB,KAAEC,EAAqB,KAE3CC,EAAQ,kBAA4B,UAAoB5K,EAAMI,KAE9DyK,GAAS,SACf,SAASrK,EAAmBsK,G,QACpBC,EAAgBV,EAAqBW,MAAK,SAAAC,GAAC,OAAIA,EAAE7K,GAAGK,aAAeqK,CAAY,KAEhFC,aAAa,EAAbA,EAAe3K,MAGM,QAAtB,EAAAsK,aAAkB,EAAlBA,EAAoBtK,UAAE,eAAEK,eAAgC,QAAjB,EAAAsK,aAAa,EAAbA,EAAe3K,UAAE,eAAEK,cAG9DkK,EAAsBI,GACtBN,GAAsB,GAwBtBF,EAAiBQ,GAtBC,W,QAChB,kBAA8B,CAC5B3K,GAAI2K,EAAc3K,GAClBW,KAAMgK,EAAc3K,GACpByB,YAAakJ,EAAclJ,YAC3BqJ,QAAmB,QAAV,EAAAN,EAAM1K,YAAI,eAAEE,GACrB+K,UAAqB,QAAV,EAAAP,EAAM1K,YAAI,eAAEa,MACtB,CACDqK,OAAQ,kBACRC,WAAY,YACZvF,WAAY,gBACZwF,SAAU,eAEd,IAEgB,WAEdX,EAAsBD,GACtBD,GAAsB,GACtBI,EAAOU,MAAMvG,EAAU,gBACzB,IAGF,CAYA,OAVA,aAAgB,WACTmF,IAGAO,GACHC,EAAsBP,QAAAA,EAAuB,UAAkBC,IAEjEI,GAAsB,GACxB,GAAG,CAAEL,aAAmB,EAAnBA,EAAqBhK,GAAI+J,IAG5B,gBAAC,IAAK,CACJqB,MAAOxG,EAAU,WACjByG,WAAYzL,EAAMyL,WAClB5K,KAAK,MAEL,uBAAKR,UAAU,gBACViK,aAAmB,EAAnBA,EAAqBnG,SACtB,gBAAC,KAAa,CACZuH,WAAYpB,EACZqB,eAAe,gBACfC,eAAgB,SAAA5L,G,MACd,OACE,gBAAC,IAAkB,iBACbA,EAAK,CACTM,UAAgC,QAAtB,EAAAoK,aAAkB,EAAlBA,EAAoBtK,UAAE,eAAEK,cAAeT,EAAME,KAAKE,GAAGK,WAC/DD,mBAAoBA,IAG1B,EACAqL,wBAAyB,kBAAM,gBAAC,IAAc,KAAG,EACjDC,eAAgB,CAAuB,QAAtB,EAAApB,aAAkB,EAAlBA,EAAoBtK,UAAE,eAAEK,eAK7C+J,EASA,uBAAKnK,UAAU,yDACb,gBAAC,IAAO,CAAC0L,GAAG,MAAMC,UAAU,SAAS/C,KAAK,YAT5C,uBAAK5I,UAAU,QACb,gBAAC,IAAe,CACd6D,gBAAiBA,EACjBW,cAAe,iCACfrE,mBAAoBA,KAS1B,gBAAC,IAAY,KACX,gBAAC,WAAmB,CAACyL,QAAQ,OAAO1L,QAASP,EAAMyL,WAAYS,KAAMlH,EAAU,YAIvF,C,mCCxIA,SAAgB,kBAAoB,QAAQ,cAAgB,QAAQ,YAAc,QAAQ,YAAc,QAAQ,QAAU,QAAQ,oBAAsB,QAAQ,SAAW,QAAQ,IAAM,QAAQ,MAAQ,QAAQ,OAAS,QAAQ,SAAW,Q,mCCA7O,SAAgB,QAAU,QAAQ,SAAW,QAAQ,WAAa,QAAQ,MAAQ,QAAQ,MAAQ,Q","sources":["file:///app/packages/libs/shared/src/components/curriculum-links/CurriculumLinkItem.tsx","file:///app/packages/libs/shared/src/components/curriculum-links/CurriculumLinks.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/tags/PartialTagItem.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/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/WidgetInteraction.ts","file:///app/packages/libs/shared/src/hooks/UseGetMediaQueryString.ts","file:///app/packages/projects/lite/src/shared/views/view-curriculum-links/ViewCurriculumLinksView.tsx","file:///app/packages/libs/shared/src/components/curriculum-links/curriculum-links.scss","file:///app/packages/libs/shared/src/components/tags/tags.scss"],"sourcesContent":["import React from 'react';\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\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 >\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 { 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 { ImageSize } from 'libs/shared/enums/Images';\nimport { Curriculum, Presentation } from 'libs/shared/interfaces';\nimport { ImageHelper } from 'libs/shared/utils/ImageHelper';\n\nimport { CurriculumLinksEmptyState } from './CurriculumLinksEmptyState';\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';\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 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 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 CurriculumLinksProps {\n curriculumLinks: Curriculum[][];\n emptyStateUrl?: string;\n checkAllCurriculums?: () => Promise<Presentation[]>;\n onChangeCurriculum?: (id: string) => void;\n}\n\nexport function CurriculumLinks(props: CurriculumLinksProps): JSX.Element {\n const [ codeWidth, setCodeWidth ] = React.useState(0);\n const [ showOtherCurriculums, setShowOtherCurriculums ] = React.useState(false);\n const [ loadingOther, setLoadingOther ] = React.useState(false);\n const [ curriculumTags, setCurriculumTags ] = React.useState<Presentation[]>([]);\n\n React.useEffect(() => {\n if (props.checkAllCurriculums && !props.curriculumLinks?.length) {\n setLoadingOther(true);\n // only fetch other curriculums when this curriculum is displayed\n props.checkAllCurriculums().then(data => {\n if (data.length) {\n setShowOtherCurriculums(true);\n }\n\n setCurriculumTags(data);\n }).finally(() => setLoadingOther(false));\n }\n }, [props.curriculumLinks?.length]);\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 (loadingOther) {\n return <PartialCurriculumLinks />;\n }\n\n if (!props.curriculumLinks?.length) {\n // only if all other curriculums don't have links we render the empty state\n if (props.emptyStateUrl && !showOtherCurriculums && !loadingOther)\n return <CurriculumLinksEmptyState emptyStateUrl={props.emptyStateUrl} />;\n }\n\n if (showOtherCurriculums) {\n return (\n <div>\n <div className='mb-3'>\n <Text namespace={namespace} phrase='currentEmpty' />\n </div>\n <div className='mb-3'>\n <Text namespace={namespace} phrase='currentEmptyInfo' />\n </div>\n <ul className='list-unstyled mb-0'>\n {curriculumTags.map(t => (\n <li\n key={t.id}\n className={`p-1 pe-2 rounded-pill d-inline-flex align-items-center cursor-pointer ${styles.tag} me-2`}\n onClick={() => props.onChangeCurriculum(t.id.toString())}\n >\n <div className={`bg-white ${styles.cover} rounded-circle`}>\n <img\n src={ImageHelper.createUrl(t.cover.url, { size: ImageSize.Small })}\n alt={t.name}\n className='rounded-circle'\n />\n </div>\n {t.name}\n </li>\n ))}\n </ul>\n </div>\n );\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 { 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\"};","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});","// 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('seeMore')}</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 { 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 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<HTMLDivElement>) => void;\n onDragEnd?: () => void;\n\n onTouchMove?: (event: React.TouchEvent<HTMLDivElement>) => void;\n onTouchEnd?: () => void;\n\n percentageDragged?: number;\n}\n\nexport const SlidingListContainer = React.forwardRef((\n props: SlidingListContainerProps,\n ref: React.MutableRefObject<HTMLDivElement>\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 <div\n className='d-flex flex-nowrap position-relative w-100'\n style={getPositionStyling(position, positionType, percentageDragged)}\n ref={ref}\n {...getEventListeners()}\n >\n {children}\n </div>\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 { 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\nexport enum WidgetButtonDirection {\n Left,\n Right\n}\n\ninterface WidgetButtonProps {\n onClick: (event: React.MouseEvent<HTMLDivElement, 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 <div\n role='button'\n onClick={props.onClick}\n className={`${styles.extendedClickableArea} ${isLeft ? styles.left : styles.right}`}\n />\n )}\n\n <div\n role='button'\n className={`${getPositionClass()} ${styles.button} ${props.className || ''}`}\n onClick={props.onClick}\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 </div>\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 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 React from 'react';\nimport { Spinner } from 'react-bootstrap';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/react/index';\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 { CurriculumLinkItem } from 'libs/shared/components/curriculum-links/CurriculumLinkItem';\nimport { CurriculumLinks } from 'libs/shared/components/curriculum-links/CurriculumLinks';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { PartialTagItem } from 'libs/shared/components/tags/PartialTagItem';\nimport { DynamicWidget } from 'libs/shared/components/widgets/dynamic-widget';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { PopupViewProps, Presentation, Video } from 'libs/shared/interfaces';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { useCurriculums } from 'shared/hooks/useCurriculums';\n\nconst getPhrase = LanguageService.encloseNamespace('shared.viewCurriculumLinks');\n\ninterface ViewCurriculumLinksViewProps extends PopupViewProps {\n id: string;\n}\n\nexport function ViewCurriculumLinksView(props: ViewCurriculumLinksViewProps): React.ReactElement {\n const {\n hasLoaded,\n preferredCurriculum,\n availableCurriculums,\n nonEmptyCurriculums,\n curriculumLinks,\n updateCurriculum\n } = useCurriculums(props.id);\n\n const [ showLoadingSpinner, setShowLoadingSpinner ] = React.useState(!hasLoaded);\n const [ selectedCurriculum, setSelectedCurriculum ] = React.useState<Presentation>();\n\n const video = Flight.useBasicFetch<Video>(VideoRequests.video(props.id));\n\n const alerts = useAlerts();\n function onChangeCurriculum(curriculumId: string): void {\n const newCurriculum = availableCurriculums.find(c => c.id.toString() === curriculumId);\n\n if (!newCurriculum?.id)\n return;\n\n if (selectedCurriculum?.id?.toString() === newCurriculum?.id?.toString())\n return;\n\n setSelectedCurriculum(newCurriculum);\n setShowLoadingSpinner(true);\n\n const onSuccess = () => {\n AnalyticsHelper.logUserAction({\n id: newCurriculum.id,\n name: newCurriculum.id,\n description: newCurriculum.description,\n videoId: video.data?.id,\n videoName: video.data?.name\n }, {\n entity: EntityType.Presentation,\n actionType: UserAction.Select,\n descriptor: PresentationDescriptor.Curriculum,\n location: LocationContext.PlayPage\n });\n };\n\n const onError = () => {\n // If the request to change curriculum fails, we reset the select state and alert the user\n setSelectedCurriculum(selectedCurriculum);\n setShowLoadingSpinner(false);\n alerts.error(getPhrase('updateFailed'));\n };\n\n updateCurriculum(newCurriculum, onSuccess, onError);\n }\n\n React.useEffect(() => {\n if (!hasLoaded)\n return;\n\n if (!selectedCurriculum)\n setSelectedCurriculum(preferredCurriculum ?? ArrayHelper.first(availableCurriculums));\n\n setShowLoadingSpinner(false);\n }, [ preferredCurriculum?.id, hasLoaded ]);\n\n return (\n <Popup\n title={getPhrase('heading')}\n closePopup={props.closePopup}\n size='lg'\n >\n <div className='mb-3 mx-2'>\n {!!nonEmptyCurriculums?.length && (\n <DynamicWidget\n collection={nonEmptyCurriculums}\n childClassName='flex-shrink-0'\n childComponent={props => {\n return (\n <CurriculumLinkItem\n {...props}\n selected={selectedCurriculum?.id?.toString() === props.data.id.toString()}\n onChangeCurriculum={onChangeCurriculum}\n />\n );\n }}\n partialLoadingComponent={() => <PartialTagItem />}\n widgetDataDeps={[selectedCurriculum?.id?.toString()]}\n />\n )}\n </div>\n\n {!showLoadingSpinner ? (\n <div className='pb-3'>\n <CurriculumLinks\n curriculumLinks={curriculumLinks}\n emptyStateUrl={ImageUrls.EmptyStates.CURRICULUM_LINKS}\n onChangeCurriculum={onChangeCurriculum}\n />\n </div>\n ) : (\n <div className='d-flex justify-content-center align-items-center py-5'>\n <Spinner as='div' animation='border' role='status' />\n </div>\n )}\n\n <PopupButtons>\n <PopupButtons.Submit variant='dark' onClick={props.closePopup} text={getPhrase('close')} />\n </PopupButtons>\n </Popup>\n );\n}\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 {\"tagList\":\"Zw6d9\",\"disabled\":\"jlL1c\",\"partialTag\":\"too_N\",\"badge\":\"OjtN8\",\"close\":\"X9joI\"};"],"names":["CurriculumLinkItem","props","curriculumTag","data","key","id","className","selected","onClick","onChangeCurriculum","toString","src","cover","url","size","alt","name","BRACKET_SEGMENT_REGEX","namespace","BASE_PILL_CLASS","CurriculumLeaf","getCurriculumCodeClass","baseClass","leaf","uiContainsCodes","codeRef","current","width","getBoundingClientRect","trySetMaxCodeWidth","description","style","minWidth","codeWidth","ref","phrase","dangerouslySetInnerHTML","__html","CurriculumSubject","audienceSegment","subjectSegment","audienceBracketSegments","areaAndLeafSets","getLeafStyleClass","linkSet","areasAndLeaves","forEach","areaAndLeafSet","areaText","map","ca","join","push","match","Object","keys","i","CurriculumLinks","setCodeWidth","showOtherCurriculums","setShowOtherCurriculums","loadingOther","setLoadingOther","curriculumTags","setCurriculumTags","currentVal","checkAllCurriculums","curriculumLinks","length","then","curriculumLinkSets","newSet","subject","audience","areas","leaves","curriculumObj","type","emptyStateUrl","t","linkSetKey","getPhrase","CurriculumLinksEmptyState","altText","PartialCurriculumLinkSection","PartialCurriculumLinks","PartialTagItem","tagClass","classNames","LanguageService","SeeMore","AppLink","appLink","analyticsData","analyticsOptions","descriptor","WidgetHeader","hasDescription","showSeeMoreLink","blankImage","Image","DragHelper","event","dataTransfer","setDragImage","FunctionHelper","isTouchScreen","UserAgentHelper","SlidingListContainer","listenerProps","xPosition","measurement","dragPercentage","children","positionType","onDrag","onDragEnd","onTouchMove","onTouchEnd","percentageDragged","position","CssMeasurement","C","transform","transition","draggable","onDragStart","onDragOver","onTouchMoveCapture","onTouchEndCapture","WidgetButtonDirection","WidgetButton","isLeft","direction","Left","arrowSvg","hide","state","contents","paddingBottom","viewableItems","height","useGradientBackdrop","leftGradientClassName","rightGradientClassName","hideExtendedClickableArea","role","leftButtonClassName","rightButtonClassName","hoverText","SvgContainer","svgName","S","CurriculumType","WidgetInteraction","useGetMediaQueryString","isXS","isSM","isMD","isLG","isXL","isXXL","currentString","ViewCurriculumLinksView","hasLoaded","preferredCurriculum","availableCurriculums","nonEmptyCurriculums","updateCurriculum","showLoadingSpinner","setShowLoadingSpinner","selectedCurriculum","setSelectedCurriculum","video","alerts","curriculumId","newCurriculum","find","c","videoId","videoName","entity","actionType","location","error","title","closePopup","collection","childClassName","childComponent","partialLoadingComponent","widgetDataDeps","as","animation","variant","text"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
1
  "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[2137],{38502:(e,a,t)=>{t.d(a,{r:()=>m});var n=t(32735),s=t(49985),i=t(36848),r=t(18559),c=t(11607),l=t(83914),o=t(87432);function u(e){return n.createElement(n.Fragment,null,!!e.tab.svgName&&n.createElement("div",{className:e.tab.name?"pe-1":""},n.createElement(l.x,{svgName:e.tab.svgName})),e.tab.name,"number"==typeof e.tab.count&&n.createElement("div",{className:"ps-2"},n.createElement(r.C,{type:r.g.Count,data:e.tab.count})))}function m(e){var a;return n.createElement("nav",{className:null!==(a=e.className)&&void 0!==a?a:"",ref:e.containerRef},n.createElement("ul",{className:"\n list-unstyled d-inline-block m-0 ".concat(o.Z.pillTabSelector,"\n ").concat(e.borderRadius?o.Z.radiusSmall:"","\n ").concat(e.listClassName,"\n ")},e.tabs.map((function(e,a){return n.createElement("li",{className:"\n p-0 ".concat(o.Z.tab," ").concat(e.active?"btn btn-dark":"btn btn-outline-dark","\n ").concat(e.name?o.Z.minWidth:""," ").concat(e.className,"\n "),key:a},e.appLink?n.createElement(i.F,{appLink:e.appLink,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,className:"\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ".concat(o.Z.tabLink,"\n ")},n.createElement(u,{tab:e})):n.createElement(c.L,{className:"\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset p-2 text-nowrap ".concat(o.Z.tabLink,"\n "),onClick:function(){return function(e){!e.active&&e.onSelect&&(e.onSelect(),e.analyticsData&&e.analyticsOptions&&s.k.logUserAction(e.analyticsData,e.analyticsOptions))}(e)}},n.createElement(u,{tab:e})))}))))}m.defaultProps={borderRadius:"lg"}},97990:(e,a,t)=>{t.d(a,{t:()=>p});var n=t(32735),s=t(81886),i=t(23481),r=t(65858),c=t(38502),l=t(14070),o=t(97291),u="settings.staffManagerTabs",m=i.T.encloseNamespace(u),d={staffManager:{application:o.O.USER_MANAGER,action:l.e.UserManager.STAFF},inviteRequests:{application:o.O.USER_MANAGER,action:l.e.UserManager.ACCESS_REQUESTS}};function p(e){var a=e.active;return n.createElement("div",{className:"mb-3"},n.createElement(c.r,{tabs:[{name:m("staffManager"),appLink:d.staffManager,active:"staff-manager"===a,analyticsData:{name:m("staffManager"),url:s.Q.C$.getHref(d.staffManager)},analyticsOptions:{actionType:r.Vw.Click,entity:r.py.Url,location:r.LZ.MagicTabs}},{name:m("inviteRequests"),appLink:d.inviteRequests,active:"invite-requests"===a,analyticsData:{name:i.T.getPhrase(u,"inviteRequests"),url:s.Q.C$.getHref(d.inviteRequests)},analyticsOptions:{actionType:r.Vw.Click,entity:r.py.Url,location:r.LZ.MagicTabs}}]}))}},90314:(e,a,t)=>{t.r(a),t.d(a,{StaffManagerView:()=>B});var n=t(32735),s=t(70680),i=t(23481),r=t(20354),c=t(65858),l=t(88822),o=t(46456),u=t(26055),m=t(43820),d=t(56138),p=t(39739),f=t(37395),E=t(99705),v=t(76881),g=t(39151),y=t(70145),S=t(44538),N=t(31949),h=t(69883),b=t(91286),R=t(79612),k=t(37802),T=t(12778),x=t(99742),U=t(97990),M=t(48327),A=t(47288),P=t(51180),C=t(18087),L=t(23232),q=t(83345),w=t(35223),F=t(14070),O=t(97291),_="userManager.staffManagerEmptyState",I=v.Y.Staff;function Z(){return n.createElement(q.D.Provider,{value:_},n.createElement(L.u,null,n.createElement(L.u.Image,{src:x.W.EmptyStates.UserManager.STAFF}),n.createElement(L.u.Heading,null,n.createElement(q.x,{phrase:"heading"})),n.createElement(L.u.Info,null,n.createElement(q.x,{phrase:"info"})),n.createElement("div",{className:"d-flex justify-content-center align-items-center"},n.createElement("div",{className:"px-1"},n.createElement(L.u.Cta,{text:i.T.getPhrase(_,"addNew"),icon:w.vn.Plus,appLink:{application:O.O.USER_MANAGER,action:F.e.UserManager.CREATE_USER,params:{userType:I}}})),n.createElement("div",{className:"px-1"},n.createElement(L.u.Cta,{text:i.T.getPhrase(_,"uploadAList"),icon:w.vn.Upload,appLink:{application:O.O.USER_MANAGER,action:F.e.UserManager.USER_UPLOAD_POPUP,params:{userType:I}}})))))}var V=i.T.encloseNamespace("userManager.staffManager"),D=v.Y.Staff;function B(e){var a,t,i,v,L,q,w,F;(0,R.M)({title:V("pageTitle")});var O=(0,s.I0)(),_=(0,h.Z)(),I=(0,C.Y)(D,e.queryParams),B=(0,k.r)(c.LZ.Settings).domainSettings,H=r.a.useBasicFetch(S.K.getRostering()),G=r.a.useBasicFetch(N.N.currentUser()),W=r.a.useBasicFetch(g.L.config()),Q=r.a.useBasicFetch(!!G.data&&A.N.getIdentityProviders(G.data.customerId)),j=r.a.useBasicFetch(y.h.userProducts()),Y=(null===(a=H.data)||void 0===a?void 0:a.status)&&"None"!==H.data.status,J=(0,P.T)(G.data,e.queryParams,D),$=J.data?"results"in J.data?J.data.results:J.data.data:null;r.a.useBasicFetch(A.N.authenticationMethods(null!==(i=null===(t=null==$?void 0:$.map((function(e){return e.id})))||void 0===t?void 0:t.sort())&&void 0!==i?i:[]));var z=(0,d.x)({userType:D,queryParams:e.queryParams,getUserCountRequest:A.N.userCount});(0,b.v)(J);var K=p.P.showEmptyState(J,e.queryParams);return n.createElement(u.A.Provider,{value:m.a.Primary},n.createElement("div",{className:"px-3"},n.createElement(o.g,{userType:D,appLinks:I,users:$,userCount:z.data,hasRostering:Y}),B&&!Y&&n.createElement(U.t,{active:"staff-manager"}),K?n.createElement(Z,null):n.createElement("main",{className:"py-3 clearfix"},n.createElement(l.G,{users:$,userType:D,config:W.data,currentUser:G.data,appLinks:I,searchEmptyState:x.W.EmptyStates.UserManager.SEARCH,onClickSendResetEmail:function(e){r.a.fetch(O,A.N.sendPasswordResetEmail(e.id,G.data.customerId,(function(){_.success(V("passwordResetEmailSuccess",{email:e.email,escapeText:!0}))}),(function(){_.error(V("passwordResetEmailError",{email:e.email,escapeText:!0}))})))},onClickResendActivationEmail:function(e){r.a.fetch(O,A.N.resendActivationEmail(e.id,(function(){_.success(V("resendActivationEmailSuccess",{email:e.email,escapeText:!0}))}),(function(){_.error(V("resendActivationEmailError",{email:e.email,escapeText:!0}))})))},onClickSendVerificationEmail:function(e){r.a.fetch(O,A.N.resendVerificationEmail(e.id,G.data.customerId,(function(){_.success(V("resendVerificationEmailSuccess",{email:e.email,escapeText:!0}))}),(function(){_.error(V("resendVerificationEmailError",{email:e.email,escapeText:!0}))})))},totalUsers:null===(v=z.data)||void 0===v?void 0:v.count,queryParams:e.queryParams,fetchUserIds:function(a){r.a.fetch(O,A.N.getSearchUserIds(G.data.customerId,G.data.id,D,e.queryParams,a))},ssoHelpArticle:T.o.getLiteArticle(E.b.EditSsoAccounts),hasSso:!!(null===(L=Q.data)||void 0===L?void 0:L.length),userRequest:N.N.getUserIdByQuery,selectWithSpreadsheetTemplate:M.d,hasRostering:Y,products:null!==(q=j.data.map((function(e){return e.id})))&&void 0!==q?q:[]}),!!(null===(F=null===(w=J.data)||void 0===w?void 0:w.pagination)||void 0===F?void 0:F.cursors)&&n.createElement(f.t,{appLink:I.search,cursors:J.data.pagination.cursors,buttonVariant:"outline-dark",className:"py-2 float-end"}))))}},87432:(e,a,t)=>{t.d(a,{Z:()=>n});const n={pillTabSelector:"Hdi6o",tab:"RvNxr",minWidth:"GHSz9",radiusSmall:"VhJJa",tabLink:"WFyvo"}}}]);
2
- //# sourceMappingURL=2137-093f479ff9-lite.chunk.js.map
2
+ //# sourceMappingURL=2137-2e78e535ad-lite.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scripts/2137-093f479ff9-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/components/pill-tab-selector/PillTabSelector.tsx","file:///app/packages/projects/lite/src/apps/user-manager/components/staff-manager-tabs/StaffManagerTabs.tsx","file:///app/packages/projects/lite/src/apps/user-manager/views/staff-manager/empty-state/LiteStaffManagerEmptyState.tsx","file:///app/packages/projects/lite/src/apps/user-manager/views/staff-manager/LiteStaffManagerView.tsx","file:///app/packages/libs/shared/src/components/pill-tab-selector/pill-tab-selector.scss"],"sourcesContent":["import React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Badge, BadgeType } from 'libs/shared/components/badges/Badge';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\n\nimport { SvgContainer } from '../svg-container/SvgContainer';\n\nimport styles from './pill-tab-selector.scss';\n\ninterface TabContentsProps {\n tab: PillTab;\n}\n\nfunction TabContents(props: TabContentsProps): JSX.Element {\n return (\n <>\n {!!props.tab.svgName && (\n <div className={props.tab.name ? 'pe-1' : ''}>\n <SvgContainer svgName={props.tab.svgName} />\n </div>\n )}\n\n {props.tab.name}\n\n {typeof (props.tab.count) === 'number' && (\n <div className='ps-2'>\n <Badge type={BadgeType.Count} data={props.tab.count} />\n </div>\n )}\n </>\n );\n}\n\nexport interface PillTab {\n name: string;\n active: boolean;\n svgName?: string;\n\n className?: string;\n\n appLink?: Core.AppLink;\n onSelect?: () => void;\n\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n\n count?: number;\n}\n\ninterface PillTabSelectorProps {\n tabs: PillTab[];\n containerRef?: (el: HTMLElement) => void;\n listClassName?: string;\n className?: string;\n borderRadius?: 'sm' | 'lg'\n}\n\nPillTabSelector.defaultProps = {\n borderRadius: 'lg'\n};\n\nexport function PillTabSelector(props: PillTabSelectorProps): JSX.Element {\n function onSelectTab(tab: PillTab): void {\n if (tab.active || !tab.onSelect)\n return;\n\n tab.onSelect();\n\n if (tab.analyticsData && tab.analyticsOptions)\n AnalyticsHelper.logUserAction(tab.analyticsData, tab.analyticsOptions);\n }\n\n return (\n <nav className={props.className ?? ''} ref={props.containerRef}>\n <ul className={`\n list-unstyled d-inline-block m-0 ${styles.pillTabSelector}\n ${props.borderRadius ? styles.radiusSmall : ''}\n ${props.listClassName}\n `}>\n {props.tabs.map((tab, index) => {\n return (\n <li\n className={`\n p-0 ${styles.tab} ${tab.active ? 'btn btn-dark' : 'btn btn-outline-dark'}\n ${tab.name ? styles.minWidth : ''} ${tab.className}\n `}\n key={index}\n >\n {tab.appLink ? (\n <AppLink\n appLink={tab.appLink}\n analyticsData={tab.analyticsData}\n analyticsOptions={tab.analyticsOptions}\n className={`\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ${styles.tabLink}\n `}\n >\n <TabContents tab={tab} />\n </AppLink>\n ) : (\n <DivButton\n className={`\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset p-2 text-nowrap ${styles.tabLink}\n `}\n onClick={() => onSelectTab(tab)}\n >\n <TabContents tab={tab} />\n </DivButton>\n )}\n </li>\n );\n })}\n </ul>\n </nav>\n );\n}\n","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EntityType, LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { PillTabSelector } from 'libs/shared/components/pill-tab-selector/PillTabSelector';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { StaffManagerAppLinks } from 'apps/user-manager/interfaces/StaffManagerAppLinks';\n\nconst namespace = 'settings.staffManagerTabs';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst staffManagerAppLinks: StaffManagerAppLinks = {\n staffManager: {\n application: AppChannels.USER_MANAGER,\n action: Actions.UserManager.STAFF\n },\n inviteRequests: {\n application: AppChannels.USER_MANAGER,\n action: Actions.UserManager.ACCESS_REQUESTS\n }\n};\n\ninterface StaffManagerTabsProps {\n active: 'staff-manager' | 'invite-requests'\n}\n\nexport function StaffManagerTabs(props: StaffManagerTabsProps): JSX.Element {\n const { active } = props;\n \n return (\n <div className='mb-3'>\n <PillTabSelector\n tabs={[{\n name: getPhrase('staffManager'),\n appLink: staffManagerAppLinks.staffManager,\n active: active === 'staff-manager',\n analyticsData: {\n name: getPhrase('staffManager'),\n url: Core.AppLinkHelper.getHref(staffManagerAppLinks.staffManager)\n },\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Url,\n location: LocationContext.MagicTabs\n }\n }, {\n name: getPhrase('inviteRequests'),\n appLink: staffManagerAppLinks.inviteRequests,\n active: active === 'invite-requests',\n analyticsData: {\n name: LanguageService.getPhrase(namespace, 'inviteRequests'),\n url: Core.AppLinkHelper.getHref(staffManagerAppLinks.inviteRequests)\n },\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Url,\n location: LocationContext.MagicTabs\n }\n }]}\n />\n </div>\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 { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\nimport { UserGroup } from 'libs/shared/enums/UserGroup';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nconst namespace = 'userManager.staffManagerEmptyState';\nconst userType = UserGroup.Staff;\n\nexport function StaffManagerEmptyState(): JSX.Element {\n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n <EmptyState>\n <EmptyState.Image src={ImageUrls.EmptyStates.UserManager.STAFF} />\n\n <EmptyState.Heading><Text phrase='heading' /></EmptyState.Heading>\n\n <EmptyState.Info><Text phrase='info' /></EmptyState.Info>\n\n <div className='d-flex justify-content-center align-items-center'>\n <div className='px-1'>\n <EmptyState.Cta\n text={LanguageService.getPhrase(namespace, 'addNew')}\n icon={cvSvgLibrary.Plus}\n appLink={{\n application: AppChannels.USER_MANAGER,\n action: Actions.UserManager.CREATE_USER,\n params: { userType }\n }}\n />\n </div>\n\n <div className='px-1'>\n <EmptyState.Cta\n text={LanguageService.getPhrase(namespace, 'uploadAList')}\n icon={cvSvgLibrary.Upload}\n appLink={{\n application: AppChannels.USER_MANAGER,\n action: Actions.UserManager.USER_UPLOAD_POPUP,\n params: { userType }\n }}\n />\n </div>\n </div>\n </EmptyState>\n </LanguageNamespaceContext.Provider>\n );\n}\n","import * as React from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { ManageUsers } from 'libs/shared/apps/user-manager/components/manage-users/ManageUsers';\nimport { UserManagerHeader } from 'libs/shared/apps/user-manager/components/user-manager-header/UserManagerHeader';\nimport { UserManagerClientContext } from 'libs/shared/apps/user-manager/context/UserManagerClientContext';\nimport { UserManagerClient } from 'libs/shared/apps/user-manager/enums/UserManagerClient';\nimport { useFetchUserCount } from 'libs/shared/apps/user-manager/hooks/useFetchUserCount';\nimport { GetIdentityProvidersResponse } from 'libs/shared/apps/user-manager/interfaces/GetIdentityProvidersResponse';\nimport { UserManagerQueryParams } from 'libs/shared/apps/user-manager/interfaces/query-params/UserManagerQueryParams';\nimport { UserManagerHelper } from 'libs/shared/apps/user-manager/utils/UserManagerHelper';\nimport { Pagination } from 'libs/shared/components/pagination/Pagination';\nimport { LiteSupportArticle } from 'libs/shared/enums/SupportArticle';\nimport { UserGroup } from 'libs/shared/enums/UserGroup';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { ProductRequests } from 'libs/shared/flight-requests/ProductRequests';\nimport { RosteringRequests } from 'libs/shared/flight-requests/RosteringRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { Config, CurrentUser, Product, RosteringResponse, User } from 'libs/shared/interfaces';\nimport { ArticleHelper } from 'libs/shared/utils/ArticleHelper';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nimport { StaffManagerTabs } from 'apps/user-manager/components/staff-manager-tabs/StaffManagerTabs';\nimport { SelectWithSpreadsheetTemplates } from 'apps/user-manager/constants/SelectWithSpreadsheetTemplate';\nimport { UserManagerRequests } from 'apps/user-manager/flight-requests/UserManagerRequests';\nimport { useFetchUsers } from 'apps/user-manager/hooks/useFetchUsers';\nimport { getUserManagerAppLinks } from 'apps/user-manager/utils/LiteUserManagerAppLinks';\n\nimport { StaffManagerEmptyState } from './empty-state/LiteStaffManagerEmptyState';\n\nconst getPhrase = LanguageService.encloseNamespace('userManager.staffManager');\n\nconst userType = UserGroup.Staff;\n\ninterface StaffManagerViewProps {\n queryParams: UserManagerQueryParams;\n}\n\nexport function StaffManagerView(props: StaffManagerViewProps): JSX.Element {\n useSetPageMetadata({ title: getPhrase('pageTitle') });\n const dispatch = useDispatch();\n const alerts = useAlerts();\n const appLinks = getUserManagerAppLinks(userType, props.queryParams);\n const { domainSettings } = useSettings(LocationContext.Settings);\n\n const rostering = Flight.useBasicFetch<RosteringResponse>(RosteringRequests.getRostering());\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const identityProviders = Flight.useBasicFetch<GetIdentityProvidersResponse>(!!currentUser.data &&\n UserManagerRequests.getIdentityProviders(currentUser.data.customerId));\n const products = Flight.useBasicFetch<Product[]>(ProductRequests.userProducts());\n\n const hasRostering = rostering.data?.status && rostering.data.status !== 'None';\n\n const staffResponse = useFetchUsers(\n currentUser.data,\n props.queryParams,\n userType\n );\n\n const staff = staffResponse.data ? (('results' in staffResponse.data) ? staffResponse.data.results : staffResponse.data.data) : null;\n\n Flight.useBasicFetch(UserManagerRequests.authenticationMethods(staff?.map(s => s.id)?.sort() ?? []));\n\n const userCount = useFetchUserCount({\n userType,\n queryParams: props.queryParams,\n getUserCountRequest: UserManagerRequests.userCount\n });\n\n useHandleObjectError(staffResponse);\n\n function onClickResendActivationEmail(user: User): void {\n Flight.fetch(dispatch, UserManagerRequests.resendActivationEmail(user.id, () => {\n alerts.success(getPhrase('resendActivationEmailSuccess', { email: user.email, escapeText: true }));\n }, () => {\n alerts.error(getPhrase('resendActivationEmailError', { email: user.email, escapeText: true }));\n }));\n }\n\n function onClickSendResetEmail(user: User): void {\n Flight.fetch(dispatch, UserManagerRequests.sendPasswordResetEmail(user.id, currentUser.data.customerId, () => {\n alerts.success(getPhrase('passwordResetEmailSuccess', { email: user.email, escapeText: true }));\n }, () => {\n alerts.error(getPhrase('passwordResetEmailError', { email: user.email, escapeText: true }));\n }));\n }\n\n function fetchUserIds(success: (userIds: string[]) => void): void {\n Flight.fetch(dispatch, UserManagerRequests.getSearchUserIds(\n currentUser.data.customerId,\n currentUser.data.id,\n userType,\n props.queryParams,\n success\n ));\n }\n\n function onClickResendVerificationEmail(user: User): void {\n Flight.fetch(dispatch, UserManagerRequests.resendVerificationEmail(user.id, currentUser.data.customerId, () => {\n alerts.success(getPhrase('resendVerificationEmailSuccess', { email: user.email, escapeText: true }));\n }, () => {\n alerts.error(getPhrase('resendVerificationEmailError', { email: user.email, escapeText: true }));\n }));\n }\n\n const showEmptyState = UserManagerHelper.showEmptyState(staffResponse, props.queryParams);\n\n return (\n <UserManagerClientContext.Provider value={UserManagerClient.Primary}>\n <div className='px-3'>\n <UserManagerHeader\n userType={userType}\n appLinks={appLinks}\n users={staff}\n userCount={userCount.data}\n hasRostering={hasRostering}\n />\n\n {domainSettings && !hasRostering && <StaffManagerTabs active='staff-manager'/>}\n\n {!showEmptyState ? (\n <main className='py-3 clearfix'>\n <ManageUsers\n users={staff}\n userType={userType}\n config={config.data}\n currentUser={currentUser.data}\n appLinks={appLinks}\n searchEmptyState={ImageUrls.EmptyStates.UserManager.SEARCH}\n onClickSendResetEmail={onClickSendResetEmail}\n onClickResendActivationEmail={onClickResendActivationEmail}\n onClickSendVerificationEmail={onClickResendVerificationEmail}\n totalUsers={userCount.data?.count}\n queryParams={props.queryParams}\n fetchUserIds={fetchUserIds}\n ssoHelpArticle={ArticleHelper.getLiteArticle(LiteSupportArticle.EditSsoAccounts)}\n hasSso={!!identityProviders.data?.length}\n userRequest={UserRequests.getUserIdByQuery}\n selectWithSpreadsheetTemplate={SelectWithSpreadsheetTemplates}\n hasRostering={hasRostering}\n products={products.data.map(p => p.id) ?? []}\n />\n {!!staffResponse.data?.pagination?.cursors && (\n <Pagination\n appLink={appLinks.search}\n cursors={staffResponse.data.pagination.cursors}\n buttonVariant='outline-dark'\n className='py-2 float-end'\n />\n )}\n </main>\n ) : <StaffManagerEmptyState />}\n </div>\n </UserManagerClientContext.Provider>\n );\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"pillTabSelector\":\"Hdi6o\",\"tab\":\"RvNxr\",\"minWidth\":\"GHSz9\",\"radiusSmall\":\"VhJJa\",\"tabLink\":\"WFyvo\"};"],"names":["TabContents","props","tab","svgName","className","name","count","type","data","PillTabSelector","ref","containerRef","borderRadius","listClassName","tabs","map","index","active","key","appLink","analyticsData","analyticsOptions","onClick","onSelect","onSelectTab","defaultProps","namespace","getPhrase","staffManagerAppLinks","staffManager","application","action","inviteRequests","StaffManagerTabs","url","actionType","entity","location","userType","UserGroup","StaffManagerEmptyState","value","EmptyState","src","ImageUrls","Text","phrase","text","LanguageService","icon","params","StaffManagerView","useSetPageMetadata","title","dispatch","alerts","appLinks","queryParams","domainSettings","useSettings","rostering","RosteringRequests","currentUser","UserRequests","config","ConfigRequests","identityProviders","UserManagerRequests","customerId","products","ProductRequests","hasRostering","status","staffResponse","useFetchUsers","staff","results","s","id","sort","userCount","useFetchUserCount","getUserCountRequest","showEmptyState","UserManagerHelper","UserManagerClientContext","UserManagerClient","UserManagerHeader","users","ManageUsers","searchEmptyState","onClickSendResetEmail","user","success","email","escapeText","error","onClickResendActivationEmail","onClickSendVerificationEmail","totalUsers","fetchUserIds","ssoHelpArticle","ArticleHelper","hasSso","length","userRequest","selectWithSpreadsheetTemplate","SelectWithSpreadsheetTemplate","p","pagination","cursors","Pagination","search","buttonVariant"],"sourceRoot":""}
1
+ {"version":3,"file":"scripts/2137-2e78e535ad-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/components/pill-tab-selector/PillTabSelector.tsx","file:///app/packages/projects/lite/src/apps/user-manager/components/staff-manager-tabs/StaffManagerTabs.tsx","file:///app/packages/projects/lite/src/apps/user-manager/views/staff-manager/empty-state/LiteStaffManagerEmptyState.tsx","file:///app/packages/projects/lite/src/apps/user-manager/views/staff-manager/LiteStaffManagerView.tsx","file:///app/packages/libs/shared/src/components/pill-tab-selector/pill-tab-selector.scss"],"sourcesContent":["import React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Badge, BadgeType } from 'libs/shared/components/badges/Badge';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\n\nimport { SvgContainer } from '../svg-container/SvgContainer';\n\nimport styles from './pill-tab-selector.scss';\n\ninterface TabContentsProps {\n tab: PillTab;\n}\n\nfunction TabContents(props: TabContentsProps): JSX.Element {\n return (\n <>\n {!!props.tab.svgName && (\n <div className={props.tab.name ? 'pe-1' : ''}>\n <SvgContainer svgName={props.tab.svgName} />\n </div>\n )}\n\n {props.tab.name}\n\n {typeof (props.tab.count) === 'number' && (\n <div className='ps-2'>\n <Badge type={BadgeType.Count} data={props.tab.count} />\n </div>\n )}\n </>\n );\n}\n\nexport interface PillTab {\n name: string;\n active: boolean;\n svgName?: string;\n\n className?: string;\n\n appLink?: Core.AppLink;\n onSelect?: () => void;\n\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n\n count?: number;\n}\n\ninterface PillTabSelectorProps {\n tabs: PillTab[];\n containerRef?: (el: HTMLElement) => void;\n listClassName?: string;\n className?: string;\n borderRadius?: 'sm' | 'lg'\n}\n\nPillTabSelector.defaultProps = {\n borderRadius: 'lg'\n};\n\nexport function PillTabSelector(props: PillTabSelectorProps): JSX.Element {\n function onSelectTab(tab: PillTab): void {\n if (tab.active || !tab.onSelect)\n return;\n\n tab.onSelect();\n\n if (tab.analyticsData && tab.analyticsOptions)\n AnalyticsHelper.logUserAction(tab.analyticsData, tab.analyticsOptions);\n }\n\n return (\n <nav className={props.className ?? ''} ref={props.containerRef}>\n <ul className={`\n list-unstyled d-inline-block m-0 ${styles.pillTabSelector}\n ${props.borderRadius ? styles.radiusSmall : ''}\n ${props.listClassName}\n `}>\n {props.tabs.map((tab, index) => {\n return (\n <li\n className={`\n p-0 ${styles.tab} ${tab.active ? 'btn btn-dark' : 'btn btn-outline-dark'}\n ${tab.name ? styles.minWidth : ''} ${tab.className}\n `}\n key={index}\n >\n {tab.appLink ? (\n <AppLink\n appLink={tab.appLink}\n analyticsData={tab.analyticsData}\n analyticsOptions={tab.analyticsOptions}\n className={`\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ${styles.tabLink}\n `}\n >\n <TabContents tab={tab} />\n </AppLink>\n ) : (\n <DivButton\n className={`\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset p-2 text-nowrap ${styles.tabLink}\n `}\n onClick={() => onSelectTab(tab)}\n >\n <TabContents tab={tab} />\n </DivButton>\n )}\n </li>\n );\n })}\n </ul>\n </nav>\n );\n}\n","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EntityType, LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { PillTabSelector } from 'libs/shared/components/pill-tab-selector/PillTabSelector';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { StaffManagerAppLinks } from 'apps/user-manager/interfaces/StaffManagerAppLinks';\n\nconst namespace = 'settings.staffManagerTabs';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst staffManagerAppLinks: StaffManagerAppLinks = {\n staffManager: {\n application: AppChannels.USER_MANAGER,\n action: Actions.UserManager.STAFF\n },\n inviteRequests: {\n application: AppChannels.USER_MANAGER,\n action: Actions.UserManager.ACCESS_REQUESTS\n }\n};\n\ninterface StaffManagerTabsProps {\n active: 'staff-manager' | 'invite-requests'\n}\n\nexport function StaffManagerTabs(props: StaffManagerTabsProps): JSX.Element {\n const { active } = props;\n \n return (\n <div className='mb-3'>\n <PillTabSelector\n tabs={[{\n name: getPhrase('staffManager'),\n appLink: staffManagerAppLinks.staffManager,\n active: active === 'staff-manager',\n analyticsData: {\n name: getPhrase('staffManager'),\n url: Core.AppLinkHelper.getHref(staffManagerAppLinks.staffManager)\n },\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Url,\n location: LocationContext.MagicTabs\n }\n }, {\n name: getPhrase('inviteRequests'),\n appLink: staffManagerAppLinks.inviteRequests,\n active: active === 'invite-requests',\n analyticsData: {\n name: LanguageService.getPhrase(namespace, 'inviteRequests'),\n url: Core.AppLinkHelper.getHref(staffManagerAppLinks.inviteRequests)\n },\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Url,\n location: LocationContext.MagicTabs\n }\n }]}\n />\n </div>\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 { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\nimport { UserGroup } from 'libs/shared/enums/UserGroup';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nconst namespace = 'userManager.staffManagerEmptyState';\nconst userType = UserGroup.Staff;\n\nexport function StaffManagerEmptyState(): JSX.Element {\n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n <EmptyState>\n <EmptyState.Image src={ImageUrls.EmptyStates.UserManager.STAFF} />\n\n <EmptyState.Heading><Text phrase='heading' /></EmptyState.Heading>\n\n <EmptyState.Info><Text phrase='info' /></EmptyState.Info>\n\n <div className='d-flex justify-content-center align-items-center'>\n <div className='px-1'>\n <EmptyState.Cta\n text={LanguageService.getPhrase(namespace, 'addNew')}\n icon={cvSvgLibrary.Plus}\n appLink={{\n application: AppChannels.USER_MANAGER,\n action: Actions.UserManager.CREATE_USER,\n params: { userType }\n }}\n />\n </div>\n\n <div className='px-1'>\n <EmptyState.Cta\n text={LanguageService.getPhrase(namespace, 'uploadAList')}\n icon={cvSvgLibrary.Upload}\n appLink={{\n application: AppChannels.USER_MANAGER,\n action: Actions.UserManager.USER_UPLOAD_POPUP,\n params: { userType }\n }}\n />\n </div>\n </div>\n </EmptyState>\n </LanguageNamespaceContext.Provider>\n );\n}\n","import * as React from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { ManageUsers } from 'libs/shared/apps/user-manager/components/manage-users/ManageUsers';\nimport { UserManagerHeader } from 'libs/shared/apps/user-manager/components/user-manager-header/UserManagerHeader';\nimport { UserManagerClientContext } from 'libs/shared/apps/user-manager/context/UserManagerClientContext';\nimport { UserManagerClient } from 'libs/shared/apps/user-manager/enums/UserManagerClient';\nimport { useFetchUserCount } from 'libs/shared/apps/user-manager/hooks/useFetchUserCount';\nimport { GetIdentityProvidersResponse } from 'libs/shared/apps/user-manager/interfaces/GetIdentityProvidersResponse';\nimport { UserManagerQueryParams } from 'libs/shared/apps/user-manager/interfaces/query-params/UserManagerQueryParams';\nimport { UserManagerHelper } from 'libs/shared/apps/user-manager/utils/UserManagerHelper';\nimport { Pagination } from 'libs/shared/components/pagination/Pagination';\nimport { LiteSupportArticle } from 'libs/shared/enums/SupportArticle';\nimport { UserGroup } from 'libs/shared/enums/UserGroup';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { ProductRequests } from 'libs/shared/flight-requests/ProductRequests';\nimport { RosteringRequests } from 'libs/shared/flight-requests/RosteringRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { Config, CurrentUser, Product, RosteringResponse, User } from 'libs/shared/interfaces';\nimport { ArticleHelper } from 'libs/shared/utils/ArticleHelper';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nimport { StaffManagerTabs } from 'apps/user-manager/components/staff-manager-tabs/StaffManagerTabs';\nimport { SelectWithSpreadsheetTemplates } from 'apps/user-manager/constants/SelectWithSpreadsheetTemplate';\nimport { UserManagerRequests } from 'apps/user-manager/flight-requests/UserManagerRequests';\nimport { useFetchUsers } from 'apps/user-manager/hooks/useFetchUsers';\nimport { getUserManagerAppLinks } from 'apps/user-manager/utils/LiteUserManagerAppLinks';\n\nimport { StaffManagerEmptyState } from './empty-state/LiteStaffManagerEmptyState';\n\nconst getPhrase = LanguageService.encloseNamespace('userManager.staffManager');\n\nconst userType = UserGroup.Staff;\n\ninterface StaffManagerViewProps {\n queryParams: UserManagerQueryParams;\n}\n\nexport function StaffManagerView(props: StaffManagerViewProps): JSX.Element {\n useSetPageMetadata({ title: getPhrase('pageTitle') });\n const dispatch = useDispatch();\n const alerts = useAlerts();\n const appLinks = getUserManagerAppLinks(userType, props.queryParams);\n const { domainSettings } = useSettings(LocationContext.Settings);\n\n const rostering = Flight.useBasicFetch<RosteringResponse>(RosteringRequests.getRostering());\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const identityProviders = Flight.useBasicFetch<GetIdentityProvidersResponse>(!!currentUser.data &&\n UserManagerRequests.getIdentityProviders(currentUser.data.customerId));\n const products = Flight.useBasicFetch<Product[]>(ProductRequests.userProducts());\n\n const hasRostering = rostering.data?.status && rostering.data.status !== 'None';\n\n const staffResponse = useFetchUsers(\n currentUser.data,\n props.queryParams,\n userType\n );\n\n const staff = staffResponse.data ? (('results' in staffResponse.data) ? staffResponse.data.results : staffResponse.data.data) : null;\n\n Flight.useBasicFetch(UserManagerRequests.authenticationMethods(staff?.map(s => s.id)?.sort() ?? []));\n\n const userCount = useFetchUserCount({\n userType,\n queryParams: props.queryParams,\n getUserCountRequest: UserManagerRequests.userCount\n });\n\n useHandleObjectError(staffResponse);\n\n function onClickResendActivationEmail(user: User): void {\n Flight.fetch(dispatch, UserManagerRequests.resendActivationEmail(user.id, () => {\n alerts.success(getPhrase('resendActivationEmailSuccess', { email: user.email, escapeText: true }));\n }, () => {\n alerts.error(getPhrase('resendActivationEmailError', { email: user.email, escapeText: true }));\n }));\n }\n\n function onClickSendResetEmail(user: User): void {\n Flight.fetch(dispatch, UserManagerRequests.sendPasswordResetEmail(user.id, currentUser.data.customerId, () => {\n alerts.success(getPhrase('passwordResetEmailSuccess', { email: user.email, escapeText: true }));\n }, () => {\n alerts.error(getPhrase('passwordResetEmailError', { email: user.email, escapeText: true }));\n }));\n }\n\n function fetchUserIds(success: (userIds: string[]) => void): void {\n Flight.fetch(dispatch, UserManagerRequests.getSearchUserIds(\n currentUser.data.customerId,\n currentUser.data.id,\n userType,\n props.queryParams,\n success\n ));\n }\n\n function onClickResendVerificationEmail(user: User): void {\n Flight.fetch(dispatch, UserManagerRequests.resendVerificationEmail(user.id, currentUser.data.customerId, () => {\n alerts.success(getPhrase('resendVerificationEmailSuccess', { email: user.email, escapeText: true }));\n }, () => {\n alerts.error(getPhrase('resendVerificationEmailError', { email: user.email, escapeText: true }));\n }));\n }\n\n const showEmptyState = UserManagerHelper.showEmptyState(staffResponse, props.queryParams);\n\n return (\n <UserManagerClientContext.Provider value={UserManagerClient.Primary}>\n <div className='px-3'>\n <UserManagerHeader\n userType={userType}\n appLinks={appLinks}\n users={staff}\n userCount={userCount.data}\n hasRostering={hasRostering}\n />\n\n {domainSettings && !hasRostering && <StaffManagerTabs active='staff-manager'/>}\n\n {!showEmptyState ? (\n <main className='py-3 clearfix'>\n <ManageUsers\n users={staff}\n userType={userType}\n config={config.data}\n currentUser={currentUser.data}\n appLinks={appLinks}\n searchEmptyState={ImageUrls.EmptyStates.UserManager.SEARCH}\n onClickSendResetEmail={onClickSendResetEmail}\n onClickResendActivationEmail={onClickResendActivationEmail}\n onClickSendVerificationEmail={onClickResendVerificationEmail}\n totalUsers={userCount.data?.count}\n queryParams={props.queryParams}\n fetchUserIds={fetchUserIds}\n ssoHelpArticle={ArticleHelper.getLiteArticle(LiteSupportArticle.EditSsoAccounts)}\n hasSso={!!identityProviders.data?.length}\n userRequest={UserRequests.getUserIdByQuery}\n selectWithSpreadsheetTemplate={SelectWithSpreadsheetTemplates}\n hasRostering={hasRostering}\n products={products.data.map(p => p.id) ?? []}\n />\n {!!staffResponse.data?.pagination?.cursors && (\n <Pagination\n appLink={appLinks.search}\n cursors={staffResponse.data.pagination.cursors}\n buttonVariant='outline-dark'\n className='py-2 float-end'\n />\n )}\n </main>\n ) : <StaffManagerEmptyState />}\n </div>\n </UserManagerClientContext.Provider>\n );\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"pillTabSelector\":\"Hdi6o\",\"tab\":\"RvNxr\",\"minWidth\":\"GHSz9\",\"radiusSmall\":\"VhJJa\",\"tabLink\":\"WFyvo\"};"],"names":["TabContents","props","tab","svgName","className","name","count","type","data","PillTabSelector","ref","containerRef","borderRadius","listClassName","tabs","map","index","active","key","appLink","analyticsData","analyticsOptions","onClick","onSelect","onSelectTab","defaultProps","namespace","getPhrase","staffManagerAppLinks","staffManager","application","action","inviteRequests","StaffManagerTabs","url","actionType","entity","location","userType","UserGroup","StaffManagerEmptyState","value","EmptyState","src","ImageUrls","Text","phrase","text","LanguageService","icon","params","StaffManagerView","useSetPageMetadata","title","dispatch","alerts","appLinks","queryParams","domainSettings","useSettings","rostering","RosteringRequests","currentUser","UserRequests","config","ConfigRequests","identityProviders","UserManagerRequests","customerId","products","ProductRequests","hasRostering","status","staffResponse","useFetchUsers","staff","results","s","id","sort","userCount","useFetchUserCount","getUserCountRequest","showEmptyState","UserManagerHelper","UserManagerClientContext","UserManagerClient","UserManagerHeader","users","ManageUsers","searchEmptyState","onClickSendResetEmail","user","success","email","escapeText","error","onClickResendActivationEmail","onClickSendVerificationEmail","totalUsers","fetchUserIds","ssoHelpArticle","ArticleHelper","hasSso","length","userRequest","selectWithSpreadsheetTemplate","SelectWithSpreadsheetTemplate","p","pagination","cursors","Pagination","search","buttonVariant"],"sourceRoot":""}
@@ -1,3 +1,3 @@
1
- /*! For license information please see 2446-acc94130ed-lite.chunk.js.LICENSE.txt */
1
+ /*! For license information please see 2446-eaa1d2ee7d-lite.chunk.js.LICENSE.txt */
2
2
  "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[2446],{2381:(e,t,n)=>{n.d(t,{q:()=>c});var r=n(5173),a=n(23481),o="playlists.validation",c=r.Ry().shape({name:r.Z_().max(250,(function(){return a.T.getPhrase(o,"nameExceeds")})).required((function(){return a.T.getPhrase(o,"nameRequired")})),description:r.Z_().max(16e3,(function(){return a.T.getPhrase(o,"descriptionExceeds")})).nullable()})},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"}},2248:(e,t,n)=>{n.d(t,{L:()=>p});var r=n(32735),a=n(60376),o=n(83914),c=n(2786),i=n(83345),l=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 p(e){var t,n,p=(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(i.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(i.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")},p.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 l.p.Level_1:return"bg-indigo ".concat(d.presentationIcon);case l.p.Level_3:return"bg-blue ".concat(d.presentationIcon);default:case l.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(i.x,{namespace:f,phrase:"schoolLevel"}))))))),r.createElement("div",{className:"w-100 h-100 overflow-hidden"},e.children)))}},62007:(e,t,n)=>{n.d(t,{u:()=>u});var r=n(32735),a=n(5465),o=n(89118),c=n(54610),i=n(2248);const l={banner:"CQxNy",title:"NzV5V",description1:"kjCZi",description2:"cBeyJ",placeholder:"Ks_Tl",playlistName:"eFPqz",thumbnailCol:"dgCQ7",videoInfoCol:"pzfE2"};function s(e){return r.createElement("li",{className:"row mb-2"},r.createElement("div",{className:"col-lg-4 col-5 ".concat(l.thumbnailCol)},e.video?r.createElement(o.u,{video:e.video,type:"cosmetic",hideDuration:!0,imageOptions:{size:c.h2.Medium}}):r.createElement(a.oy,{type:a.mS.Video,extraClasses:"position-relative rounded-3 ".concat(l.placeholder)})),r.createElement("div",{className:"col-lg-8 col-7 ".concat(l.videoInfoCol)},r.createElement("div",{className:"".concat(l.title," rounded-pill bg-grey mb-1")}),r.createElement("div",{className:"".concat(l.description1," rounded-pill bg-grey mb-1")}),r.createElement("div",{className:"".concat(l.description2," rounded-pill bg-grey mb-1")})))}function u(e){var t,n,a,o=e.hidePlaceholders?0:Math.max(6-(null!==(n=null===(t=e.videos)||void 0===t?void 0:t.length)&&void 0!==n?n:0),0);return r.createElement(i.L,{presentation:e.presentation,curriculum:e.curriculum},r.createElement("div",{className:"bg-teal ".concat(l.banner," position-relative")},e.name&&r.createElement("div",{className:"h5 text-white mb-0 ".concat(l.playlistName)},e.name)),r.createElement("ul",{className:"list-unstyled mb-0 w-100 p-2"},null===(a=e.videos)||void 0===a?void 0:a.map((function(e){return r.createElement(s,{key:e.id,video:e})})),new Array(o).fill(0).map((function(e,t){return r.createElement(s,{key:t})}))))}},82718:(e,t,n)=>{n.r(t),n.d(t,{OnboardingCreatePlaylistView:()=>T});var r=n(32735),a=n(23481),o=n(57900),c=n(2948),i=n(20354),l=n(65858),s=n(2381),u=n(83345),m=n(55171),d=n(54610),f=n(5112),h=n(31949),p=n(99742),v=n(86702),y=n(82817),g=n(86698),b=n(75359),E=n(12058),N=n(40695),x=n(75919),w=n(62007),L=n(73190),P=n(90815);const I={annotation:"EYKMF"};function k(e){return k="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},k(e)}function C(){C=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",i=o.asyncIterator||"@@asyncIterator",l=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 y?t:y,c=Object.create(o.prototype),i=new j(r||[]);return a(c,"_invoke",{value:I(e,n,i)}),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",p="completed",v={};function y(){}function g(){}function b(){}var E={};s(E,c,(function(){return this}));var N=Object.getPrototypeOf,x=N&&N(N(T([])));x&&x!==n&&r.call(x,c)&&(E=x);var w=b.prototype=y.prototype=Object.create(E);function L(e){["next","throw","return"].forEach((function(t){s(e,t,(function(e){return this._invoke(t,e)}))}))}function P(e,t){function n(a,o,c,i){var l=m(e[a],e,o);if("throw"!==l.type){var s=l.arg,u=s.value;return u&&"object"==k(u)&&r.call(u,"__await")?t.resolve(u.__await).then((function(e){n("next",e,c,i)}),(function(e){n("throw",e,c,i)})):t.resolve(u).then((function(e){s.value=e,c(s)}),(function(e){return n("throw",e,c,i)}))}i(l.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 I(t,n,r){var a=d;return function(o,c){if(a===h)throw Error("Generator is already running");if(a===p){if("throw"===o)throw c;return{value:e,done:!0}}for(r.method=o,r.arg=c;;){var i=r.delegate;if(i){var l=O(i,r);if(l){if(l===v)continue;return l}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(a===d)throw a=p,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?p:f,s.arg===v)continue;return{value:s.arg,done:r.done}}"throw"===s.type&&(a=p,r.method="throw",r.arg=s.arg)}}}function O(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,O(t,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),v;var o=m(a,t.iterator,n.arg);if("throw"===o.type)return n.method="throw",n.arg=o.arg,n.delegate=null,v;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,v):c:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,v)}function S(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 _(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function j(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(S,this),this.reset(!0)}function T(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(k(t)+" is not iterable")}return g.prototype=b,a(w,"constructor",{value:b,configurable:!0}),a(b,"constructor",{value:g,configurable:!0}),g.displayName=s(b,l,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===g||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,b):(e.__proto__=b,s(e,l,"GeneratorFunction")),e.prototype=Object.create(w),e},t.awrap=function(e){return{__await:e}},L(P.prototype),s(P.prototype,i,(function(){return this})),t.AsyncIterator=P,t.async=function(e,n,r,a,o){void 0===o&&(o=Promise);var c=new P(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,l,"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=T,j.prototype={constructor:j,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)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 i.type="throw",i.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],i=c.completion;if("root"===c.tryLoc)return a("end");if(c.tryLoc<=this.prev){var l=r.call(c,"catchLoc"),s=r.call(c,"finallyLoc");if(l&&s){if(this.prev<c.catchLoc)return a(c.catchLoc,!0);if(this.prev<c.finallyLoc)return a(c.finallyLoc)}else if(l){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,v):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),v},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),_(n),v}},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;_(n)}return a}}throw Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:T(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),v}},t}function O(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,i=[],l=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=o.call(n)).done)&&(i.push(r.value),i.length!==t);l=!0);}catch(e){s=!0,a=e}finally{try{if(!l&&null!=n.return&&(c=n.return(),Object(c)!==c))return}finally{if(s)throw a}}return i}}(e,t)||function(e,t){if(e){if("string"==typeof e)return S(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)?S(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 S(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 _=function(e,t,n,r){return new(n||(n=Promise))((function(a,o){function c(e){try{l(r.next(e))}catch(e){o(e)}}function i(e){try{l(r.throw(e))}catch(e){o(e)}}function l(e){var t;e.done?a(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(c,i)}l((r=r.apply(e,t||[])).next())}))},j="onboarding.createPlaylist";function T(e){var t=O((0,c.D)(v.y.ONBOARDING_VIDEOS_V2,[],{storage:o.Z1.LocalStorage}),1)[0],n=O((0,c.D)(v.y.ONBOARDING_LOADER,{}),2)[1],k=i.a.useBasicFetch(h.N.currentUser()),S=(0,L.Q)(e.redirectUrl),T=S.onClickBack,A=S.exitOnboarding,V=S.onSaveError,F=S.completeStepAsync,B=(0,P.H)().logEvent,z=(0,g.y)().preferredPresentation,G=(0,y.M)().preferredCurriculum,D=i.a.useGetFetchAsync(),R=r.useState(function(){var e=a.T.getPhrase(j,"firstPlaylist"),t=k.data.givenName;return t.endsWith("s")?"".concat(t,"' ").concat(e):"".concat(t,"'s ").concat(e)}()),U=O(R,2),q=U[0],M=U[1],Z={name:q,videos:t.map((function(e){var t;return{id:e.data.id,name:e.data.name,thumbnailUrl:null===(t=e.data.thumbnail)||void 0===t?void 0:t.url,videoSubjectId:e.classificationId,videoSubjectName:e.classificationName}})),presentationId:z.id,presentationName:z.name,presentationDescription:z.description};return r.createElement(N.z,{namespace:j},r.createElement(N.z.Left,{className:"bg-dark-blue d-flex flex-column align-items-end justify-content-center"},r.createElement(x.N,{annotationUrl:p.W.OnboardingV2.CreatePlaylist.ANNOTATION,annotationPosition:"top-left",annotationClassName:"ms-5 ".concat(I.annotation),contentPosition:"right"},r.createElement(w.u,{presentation:z,curriculum:G,videos:t.map((function(e){return e.data})),name:q}))),r.createElement(N.z.Right,{hasCustomButtons:!1,onClickBack:T,onClickComeBackLater:A,onClickNext:function(){return _(this,void 0,void 0,C().mark((function e(){return C().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(B(l.Vw.Click,l.Ix.Next,Z),s.q.isValidSync({name:q})){e.next=3;break}return e.abrupt("return");case 3:return e.prev=3,e.next=6,D(f.C.createPlaylist(k.data.id,{name:q,cover:{fileId:m.e.Onboarding.Playlist.COVER_FILE_ID,fileIdType:d.z9.ImageAPIv2},banner:{fileId:m.e.Onboarding.Playlist.BANNER_FILE_ID,fileIdType:d.z9.ImageAPIv2},videos:t.map((function(e){return{id:e.data.id}}))}));case 6:return n("playlistName",q),e.next=9,F();case 9:e.next=15;break;case 11:return e.prev=11,e.t0=e.catch(3),V(),e.abrupt("return",Promise.reject());case 15:case"end":return e.stop()}}),e,null,[[3,11]])})))},disableNext:!s.q.isValidSync({name:q})},r.createElement(b.W,null,r.createElement(u.x,{phrase:"heading"})),r.createElement(E.X,null,r.createElement(u.x,{phrase:"info"})),r.createElement("form",{onSubmit:function(e){return e.preventDefault()},className:"pb-3"},r.createElement("label",{htmlFor:"name",className:"form-label"},r.createElement(u.x,{phrase:"label"})),r.createElement("input",{id:"name",className:"form-control form-control-lg",placeholder:a.T.getPhrase(j,"placeholder"),name:"name",value:q,onChange:function(e){return M(e.target.value)},onFocus:function(){B(l.Vw.Focus,l.Ix.PlaylistName,Z)},onBlur:function(){B(l.Vw.Blur,l.Ix.PlaylistName,Z)}})),r.createElement(E.X,null,r.createElement(u.x,{phrase:"noWorries"}))))}}}]);
3
- //# sourceMappingURL=2446-acc94130ed-lite.chunk.js.map
3
+ //# sourceMappingURL=2446-eaa1d2ee7d-lite.chunk.js.map