@clickview/lite 0.53.4 → 0.53.6-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (188) hide show
  1. package/dist/bundles.json +1 -1
  2. package/dist/css/{6094-lite-bcd14ea6d2.chunk.css → 1019-lite-bbcf2bff27.chunk.css} +3 -2
  3. package/dist/css/{1329-lite-be86e46c78.chunk.css → 1329-lite-458183b24f.chunk.css} +2 -2
  4. package/dist/css/{1838-lite-e6a28b84ed.chunk.css → 1838-lite-981a5e0783.chunk.css} +1 -1
  5. package/dist/css/{1760-lite-bcd14ea6d2.chunk.css → 2548-lite-bbcf2bff27.chunk.css} +3 -2
  6. package/dist/css/{3969-lite-29e14c7861.chunk.css → 3969-lite-ed58852d97.chunk.css} +2 -2
  7. package/dist/css/{422-lite-dace5f41de.chunk.css → 422-lite-b8c1fd1dee.chunk.css} +1 -1
  8. package/dist/css/{4502-lite-92be6697e7.chunk.css → 4502-lite-eaf1a1113c.chunk.css} +1 -1
  9. package/dist/css/{5220-lite-9832e2c2fb.chunk.css → 5220-lite-8a8d5d035f.chunk.css} +1 -1
  10. package/dist/css/{537-lite-56a3fc7e48.chunk.css → 537-lite-4de4c47713.chunk.css} +1 -1
  11. package/dist/css/{6489-lite-9045df4bb9.chunk.css → 6489-lite-e271aaed2d.chunk.css} +1 -1
  12. package/dist/css/{6544-lite-d46c2d634c.chunk.css → 6544-lite-319ed51ccc.chunk.css} +1 -1
  13. package/dist/css/{5549-lite-97ed26d0aa.chunk.css → 6596-lite-bb28584922.chunk.css} +2 -1
  14. package/dist/css/{841-lite-27b6485cd1.chunk.css → 841-lite-46ef623835.chunk.css} +1 -1
  15. package/dist/css/{8522-lite-2f2797038e.chunk.css → 8522-lite-f100606ec5.chunk.css} +1 -1
  16. package/dist/css/{8801-lite-c88eb54bee.chunk.css → 8801-lite-d34200ab29.chunk.css} +2 -2
  17. package/dist/css/{3640-lite-97ed26d0aa.chunk.css → 9010-lite-bb28584922.chunk.css} +2 -1
  18. package/dist/languages/en.json +1 -1
  19. package/dist/scripts/{1760-8d51aa0b08-lite.chunk.js → 1019-8f977b5095-lite.chunk.js} +2 -2
  20. package/dist/scripts/{1760-8d51aa0b08-lite.chunk.js.map → 1019-8f977b5095-lite.chunk.js.map} +1 -1
  21. package/dist/scripts/1080-509aa6e738-lite.chunk.js +2 -0
  22. package/dist/scripts/1080-509aa6e738-lite.chunk.js.map +1 -0
  23. package/dist/scripts/1169-e64f0dbd67-lite.chunk.js +2 -0
  24. package/dist/scripts/1169-e64f0dbd67-lite.chunk.js.map +1 -0
  25. package/dist/scripts/1329-bdbbf6c7fd-lite.chunk.js +3 -0
  26. package/dist/scripts/1329-bdbbf6c7fd-lite.chunk.js.map +1 -0
  27. package/dist/scripts/{1379-976d20185f-lite.chunk.js → 1379-ca519ec56b-lite.chunk.js} +3 -3
  28. package/dist/scripts/{1379-976d20185f-lite.chunk.js.map → 1379-ca519ec56b-lite.chunk.js.map} +1 -1
  29. package/dist/scripts/1518-4f76dbeee8-lite.chunk.js +2 -0
  30. package/dist/scripts/1518-4f76dbeee8-lite.chunk.js.map +1 -0
  31. package/dist/scripts/{1838-87fb96ee2c-lite.chunk.js → 1838-95081e8dea-lite.chunk.js} +1 -1
  32. package/dist/scripts/{1838-87fb96ee2c-lite.chunk.js.map → 1838-95081e8dea-lite.chunk.js.map} +1 -1
  33. package/dist/scripts/184-6ce393c251-lite.chunk.js +2 -0
  34. package/dist/scripts/184-6ce393c251-lite.chunk.js.map +1 -0
  35. package/dist/scripts/{2004-3005565af0-lite.chunk.js → 2004-e20d72976c-lite.chunk.js} +3 -3
  36. package/dist/scripts/{2004-3005565af0-lite.chunk.js.map → 2004-e20d72976c-lite.chunk.js.map} +1 -1
  37. package/dist/scripts/{2094-58390aa60a-lite.chunk.js → 2094-a16bbca3a3-lite.chunk.js} +2 -2
  38. package/dist/scripts/2094-a16bbca3a3-lite.chunk.js.map +1 -0
  39. package/dist/scripts/2142-c46ca4050f-lite.chunk.js +2 -0
  40. package/dist/scripts/2142-c46ca4050f-lite.chunk.js.map +1 -0
  41. package/dist/scripts/2199-be40da7440-lite.chunk.js +2 -0
  42. package/dist/scripts/2199-be40da7440-lite.chunk.js.map +1 -0
  43. package/dist/scripts/2548-c48b8d3e3c-lite.chunk.js +2 -0
  44. package/dist/scripts/2548-c48b8d3e3c-lite.chunk.js.map +1 -0
  45. package/dist/scripts/3969-6d7c342d0c-lite.chunk.js +2 -0
  46. package/dist/scripts/3969-6d7c342d0c-lite.chunk.js.map +1 -0
  47. package/dist/scripts/3999-317a4538c6-lite.chunk.js +3 -0
  48. package/dist/scripts/3999-317a4538c6-lite.chunk.js.map +1 -0
  49. package/dist/scripts/{422-ee640f76c5-lite.chunk.js → 422-a63a7eb901-lite.chunk.js} +1 -1
  50. package/dist/scripts/{422-ee640f76c5-lite.chunk.js.map → 422-a63a7eb901-lite.chunk.js.map} +1 -1
  51. package/dist/scripts/{4502-af4903784e-lite.chunk.js → 4502-a7d60fa257-lite.chunk.js} +1 -1
  52. package/dist/scripts/{4502-af4903784e-lite.chunk.js.map → 4502-a7d60fa257-lite.chunk.js.map} +1 -1
  53. package/dist/scripts/{4554-c0d7490a46-lite.chunk.js → 4554-b9aa07891f-lite.chunk.js} +2 -2
  54. package/dist/scripts/4554-b9aa07891f-lite.chunk.js.map +1 -0
  55. package/dist/scripts/{4591-379f0fe588-lite.chunk.js → 4591-21c0094f28-lite.chunk.js} +2 -2
  56. package/dist/scripts/{4591-379f0fe588-lite.chunk.js.map → 4591-21c0094f28-lite.chunk.js.map} +1 -1
  57. package/dist/scripts/{4683-ce52da47d8-lite.chunk.js → 4683-d3afe2dfa8-lite.chunk.js} +2 -2
  58. package/dist/scripts/4683-d3afe2dfa8-lite.chunk.js.map +1 -0
  59. package/dist/scripts/5220-291b2243ad-lite.chunk.js +3 -0
  60. package/dist/scripts/5220-291b2243ad-lite.chunk.js.map +1 -0
  61. package/dist/scripts/537-6efb9bc099-lite.chunk.js +3 -0
  62. package/dist/scripts/537-6efb9bc099-lite.chunk.js.map +1 -0
  63. package/dist/scripts/5660-6711768c20-lite.chunk.js +2 -0
  64. package/dist/scripts/5660-6711768c20-lite.chunk.js.map +1 -0
  65. package/dist/scripts/5936-e839cb8193-lite.chunk.js +2 -0
  66. package/dist/scripts/5936-e839cb8193-lite.chunk.js.map +1 -0
  67. package/dist/scripts/{624-bf0ff6257f-lite.chunk.js → 624-09b51a9d32-lite.chunk.js} +3 -3
  68. package/dist/scripts/{624-bf0ff6257f-lite.chunk.js.map → 624-09b51a9d32-lite.chunk.js.map} +1 -1
  69. package/dist/scripts/6450-f16821bf09-lite.chunk.js +2 -0
  70. package/dist/scripts/6450-f16821bf09-lite.chunk.js.map +1 -0
  71. package/dist/scripts/6489-c242844567-lite.chunk.js +3 -0
  72. package/dist/scripts/6489-c242844567-lite.chunk.js.map +1 -0
  73. package/dist/scripts/6544-07898e3fa3-lite.chunk.js +2 -0
  74. package/dist/scripts/6544-07898e3fa3-lite.chunk.js.map +1 -0
  75. package/dist/scripts/6596-848fbf79bb-lite.chunk.js +2 -0
  76. package/dist/scripts/6596-848fbf79bb-lite.chunk.js.map +1 -0
  77. package/dist/scripts/{6741-1c125dbc6c-lite.chunk.js → 6741-fe09fea334-lite.chunk.js} +3 -3
  78. package/dist/scripts/{6741-1c125dbc6c-lite.chunk.js.map → 6741-fe09fea334-lite.chunk.js.map} +1 -1
  79. package/dist/scripts/6752-0d139a6c9a-lite.chunk.js +2 -0
  80. package/dist/scripts/6752-0d139a6c9a-lite.chunk.js.map +1 -0
  81. package/dist/scripts/696-fa78eb455f-lite.chunk.js +2 -0
  82. package/dist/scripts/696-fa78eb455f-lite.chunk.js.map +1 -0
  83. package/dist/scripts/{7234-ef6ab1e557-lite.chunk.js → 7234-d15fe07f0e-lite.chunk.js} +2 -2
  84. package/dist/scripts/{7234-ef6ab1e557-lite.chunk.js.map → 7234-d15fe07f0e-lite.chunk.js.map} +1 -1
  85. package/dist/scripts/729-594be12089-lite.chunk.js +2 -0
  86. package/dist/scripts/729-594be12089-lite.chunk.js.map +1 -0
  87. package/dist/scripts/{7293-3e6ad36a7a-lite.chunk.js → 7293-35871fc150-lite.chunk.js} +2 -2
  88. package/dist/scripts/7293-35871fc150-lite.chunk.js.map +1 -0
  89. package/dist/scripts/{8192-e2d9a26cc5-lite.chunk.js → 8192-eb7054ccc6-lite.chunk.js} +2 -2
  90. package/dist/scripts/{8192-e2d9a26cc5-lite.chunk.js.map → 8192-eb7054ccc6-lite.chunk.js.map} +1 -1
  91. package/dist/scripts/841-11af1334bf-lite.chunk.js +3 -0
  92. package/dist/scripts/841-11af1334bf-lite.chunk.js.map +1 -0
  93. package/dist/scripts/{8522-b4b217640c-lite.chunk.js → 8522-8e9c576bf6-lite.chunk.js} +1 -1
  94. package/dist/scripts/{8522-b4b217640c-lite.chunk.js.map → 8522-8e9c576bf6-lite.chunk.js.map} +1 -1
  95. package/dist/scripts/8801-3a7652eb35-lite.chunk.js +2 -0
  96. package/dist/scripts/8801-3a7652eb35-lite.chunk.js.map +1 -0
  97. package/dist/scripts/9010-ef7ea501ee-lite.chunk.js +2 -0
  98. package/dist/scripts/9010-ef7ea501ee-lite.chunk.js.map +1 -0
  99. package/dist/scripts/9139-22fb64f542-lite.chunk.js +2 -0
  100. package/dist/scripts/9139-22fb64f542-lite.chunk.js.map +1 -0
  101. package/dist/scripts/9173-e45847aa35-lite.chunk.js +2 -0
  102. package/dist/scripts/9173-e45847aa35-lite.chunk.js.map +1 -0
  103. package/dist/scripts/{9395-e9b5cdbdce-lite.chunk.js → 9395-e1a02b01ce-lite.chunk.js} +3 -3
  104. package/dist/scripts/{9395-e9b5cdbdce-lite.chunk.js.map → 9395-e1a02b01ce-lite.chunk.js.map} +1 -1
  105. package/dist/scripts/{9478-abfa7ed3cc-lite.chunk.js → 9478-13da35c4ee-lite.chunk.js} +3 -3
  106. package/dist/scripts/{9478-abfa7ed3cc-lite.chunk.js.map → 9478-13da35c4ee-lite.chunk.js.map} +1 -1
  107. package/dist/scripts/{953-bf3d621a33-lite.chunk.js → 953-225db845ab-lite.chunk.js} +3 -3
  108. package/dist/scripts/{953-bf3d621a33-lite.chunk.js.map → 953-225db845ab-lite.chunk.js.map} +1 -1
  109. package/dist/scripts/{9899-68b030d4e2-lite.chunk.js → 9899-fa58471776-lite.chunk.js} +2 -2
  110. package/dist/scripts/{9899-68b030d4e2-lite.chunk.js.map → 9899-fa58471776-lite.chunk.js.map} +1 -1
  111. package/dist/scripts/bundle-7f9a9b650d.min.js +3 -0
  112. package/dist/scripts/bundle-7f9a9b650d.min.js.map +1 -0
  113. package/package.json +1 -1
  114. package/dist/scripts/1080-4173ce26bd-lite.chunk.js +0 -2
  115. package/dist/scripts/1080-4173ce26bd-lite.chunk.js.map +0 -1
  116. package/dist/scripts/1169-d090f0a147-lite.chunk.js +0 -2
  117. package/dist/scripts/1169-d090f0a147-lite.chunk.js.map +0 -1
  118. package/dist/scripts/1329-d48379c043-lite.chunk.js +0 -3
  119. package/dist/scripts/1329-d48379c043-lite.chunk.js.map +0 -1
  120. package/dist/scripts/1518-9756fde01e-lite.chunk.js +0 -2
  121. package/dist/scripts/1518-9756fde01e-lite.chunk.js.map +0 -1
  122. package/dist/scripts/184-ee581fa2e0-lite.chunk.js +0 -2
  123. package/dist/scripts/184-ee581fa2e0-lite.chunk.js.map +0 -1
  124. package/dist/scripts/2094-58390aa60a-lite.chunk.js.map +0 -1
  125. package/dist/scripts/2199-476ac5922f-lite.chunk.js +0 -2
  126. package/dist/scripts/2199-476ac5922f-lite.chunk.js.map +0 -1
  127. package/dist/scripts/3640-1ac0a110f4-lite.chunk.js +0 -2
  128. package/dist/scripts/3640-1ac0a110f4-lite.chunk.js.map +0 -1
  129. package/dist/scripts/3969-c0160d0139-lite.chunk.js +0 -2
  130. package/dist/scripts/3969-c0160d0139-lite.chunk.js.map +0 -1
  131. package/dist/scripts/4063-786732e7b0-lite.chunk.js +0 -2
  132. package/dist/scripts/4063-786732e7b0-lite.chunk.js.map +0 -1
  133. package/dist/scripts/4273-de24896b28-lite.chunk.js +0 -3
  134. package/dist/scripts/4273-de24896b28-lite.chunk.js.map +0 -1
  135. package/dist/scripts/4554-c0d7490a46-lite.chunk.js.map +0 -1
  136. package/dist/scripts/4683-ce52da47d8-lite.chunk.js.map +0 -1
  137. package/dist/scripts/4850-5ddd277550-lite.chunk.js +0 -2
  138. package/dist/scripts/4850-5ddd277550-lite.chunk.js.map +0 -1
  139. package/dist/scripts/5220-85898810a6-lite.chunk.js +0 -3
  140. package/dist/scripts/5220-85898810a6-lite.chunk.js.map +0 -1
  141. package/dist/scripts/537-de7445d41a-lite.chunk.js +0 -3
  142. package/dist/scripts/537-de7445d41a-lite.chunk.js.map +0 -1
  143. package/dist/scripts/5549-e0ed88aaa1-lite.chunk.js +0 -2
  144. package/dist/scripts/5549-e0ed88aaa1-lite.chunk.js.map +0 -1
  145. package/dist/scripts/5660-a356acdbca-lite.chunk.js +0 -2
  146. package/dist/scripts/5660-a356acdbca-lite.chunk.js.map +0 -1
  147. package/dist/scripts/5936-92d9cea005-lite.chunk.js +0 -2
  148. package/dist/scripts/5936-92d9cea005-lite.chunk.js.map +0 -1
  149. package/dist/scripts/6094-8546003d79-lite.chunk.js +0 -2
  150. package/dist/scripts/6094-8546003d79-lite.chunk.js.map +0 -1
  151. package/dist/scripts/6450-601f889072-lite.chunk.js +0 -2
  152. package/dist/scripts/6450-601f889072-lite.chunk.js.map +0 -1
  153. package/dist/scripts/6489-532a022587-lite.chunk.js +0 -3
  154. package/dist/scripts/6489-532a022587-lite.chunk.js.map +0 -1
  155. package/dist/scripts/6544-ae27efabab-lite.chunk.js +0 -2
  156. package/dist/scripts/6544-ae27efabab-lite.chunk.js.map +0 -1
  157. package/dist/scripts/6752-5dddab5e0b-lite.chunk.js +0 -2
  158. package/dist/scripts/6752-5dddab5e0b-lite.chunk.js.map +0 -1
  159. package/dist/scripts/6852-9dfd47d085-lite.chunk.js +0 -2
  160. package/dist/scripts/6852-9dfd47d085-lite.chunk.js.map +0 -1
  161. package/dist/scripts/7293-3e6ad36a7a-lite.chunk.js.map +0 -1
  162. package/dist/scripts/841-73ef4ba5ec-lite.chunk.js +0 -3
  163. package/dist/scripts/841-73ef4ba5ec-lite.chunk.js.map +0 -1
  164. package/dist/scripts/8801-222a1b2e99-lite.chunk.js +0 -2
  165. package/dist/scripts/8801-222a1b2e99-lite.chunk.js.map +0 -1
  166. package/dist/scripts/9139-49023800c6-lite.chunk.js +0 -2
  167. package/dist/scripts/9139-49023800c6-lite.chunk.js.map +0 -1
  168. package/dist/scripts/9173-f9708ec0de-lite.chunk.js +0 -2
  169. package/dist/scripts/9173-f9708ec0de-lite.chunk.js.map +0 -1
  170. package/dist/scripts/bundle-e72459b30e.min.js +0 -3
  171. package/dist/scripts/bundle-e72459b30e.min.js.map +0 -1
  172. /package/dist/css/{4273-lite-a3c7435ba4.chunk.css → 3999-lite-a3c7435ba4.chunk.css} +0 -0
  173. /package/dist/css/{4063-lite-f72fc7b813.chunk.css → 4860-lite-f72fc7b813.chunk.css} +0 -0
  174. /package/dist/css/{4850-lite-f72fc7b813.chunk.css → 729-lite-f72fc7b813.chunk.css} +0 -0
  175. /package/dist/scripts/{1329-d48379c043-lite.chunk.js.LICENSE.txt → 1329-bdbbf6c7fd-lite.chunk.js.LICENSE.txt} +0 -0
  176. /package/dist/scripts/{1379-976d20185f-lite.chunk.js.LICENSE.txt → 1379-ca519ec56b-lite.chunk.js.LICENSE.txt} +0 -0
  177. /package/dist/scripts/{2004-3005565af0-lite.chunk.js.LICENSE.txt → 2004-e20d72976c-lite.chunk.js.LICENSE.txt} +0 -0
  178. /package/dist/scripts/{4273-de24896b28-lite.chunk.js.LICENSE.txt → 3999-317a4538c6-lite.chunk.js.LICENSE.txt} +0 -0
  179. /package/dist/scripts/{5220-85898810a6-lite.chunk.js.LICENSE.txt → 5220-291b2243ad-lite.chunk.js.LICENSE.txt} +0 -0
  180. /package/dist/scripts/{537-de7445d41a-lite.chunk.js.LICENSE.txt → 537-6efb9bc099-lite.chunk.js.LICENSE.txt} +0 -0
  181. /package/dist/scripts/{624-bf0ff6257f-lite.chunk.js.LICENSE.txt → 624-09b51a9d32-lite.chunk.js.LICENSE.txt} +0 -0
  182. /package/dist/scripts/{6489-532a022587-lite.chunk.js.LICENSE.txt → 6489-c242844567-lite.chunk.js.LICENSE.txt} +0 -0
  183. /package/dist/scripts/{6741-1c125dbc6c-lite.chunk.js.LICENSE.txt → 6741-fe09fea334-lite.chunk.js.LICENSE.txt} +0 -0
  184. /package/dist/scripts/{841-73ef4ba5ec-lite.chunk.js.LICENSE.txt → 841-11af1334bf-lite.chunk.js.LICENSE.txt} +0 -0
  185. /package/dist/scripts/{9395-e9b5cdbdce-lite.chunk.js.LICENSE.txt → 9395-e1a02b01ce-lite.chunk.js.LICENSE.txt} +0 -0
  186. /package/dist/scripts/{9478-abfa7ed3cc-lite.chunk.js.LICENSE.txt → 9478-13da35c4ee-lite.chunk.js.LICENSE.txt} +0 -0
  187. /package/dist/scripts/{953-bf3d621a33-lite.chunk.js.LICENSE.txt → 953-225db845ab-lite.chunk.js.LICENSE.txt} +0 -0
  188. /package/dist/scripts/{bundle-e72459b30e.min.js.LICENSE.txt → bundle-7f9a9b650d.min.js.LICENSE.txt} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scripts/696-fa78eb455f-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/hooks/useExpandableTextButton.ts","file:///app/packages/libs/shared/src/components/expandable-text/expandable-text.scss","file:///app/packages/libs/shared/src/components/expandable-text/ExpandableText.tsx","file:///app/packages/projects/lite/src/shared/errors/series/series-not-found/SeriesNotFoundError.ts","file:///app/packages/projects/lite/src/shared/views/series/SeriesView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { useResizeListener } from 'libs/shared/hooks/UseResizeListener';\n\nexport function useExpandableTextButton() {\n const containerRef = React.useRef<HTMLDivElement>(null);\n\n const memoClientHeight = React.useRef<number>(0);\n\n React.useEffect(() => {\n if (containerRef.current.clientHeight)\n // memo the initial clientHeight, cuz after expand and collapse the clientHeight will change\n memoClientHeight.current = containerRef.current.clientHeight;\n }, []);\n\n const [ showButton, setShowButton ] = React.useState(containerRef.current?.scrollHeight > memoClientHeight.current);\n\n useResizeListener(() => {\n if (containerRef.current.clientHeight) {\n // update memo value on resize\n memoClientHeight.current = containerRef.current.clientHeight;\n setShowButton(containerRef.current?.scrollHeight > memoClientHeight.current);\n }\n });\n\n React.useEffect(() => {\n if (containerRef.current?.scrollHeight) {\n setShowButton(containerRef.current?.scrollHeight > memoClientHeight.current);\n }\n }, [ containerRef.current?.scrollHeight, memoClientHeight.current ]);\n\n return { containerRef, showButton };\n}","// extracted by mini-css-extract-plugin\nexport default {\"text\":\"wLJpg\",\"seeMore\":\"x5t0p\"};","import React from 'react';\n\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { useExpandableTextButton } from 'libs/shared/hooks/useExpandableTextButton';\n\nimport styles from './expandable-text.scss';\n\ninterface ExpandableTextProps{\n text: string;\n lines?: number;\n}\n\nconst namespace = 'shared.expandableText';\n\nexport function ExpandableText(props: ExpandableTextProps): JSX.Element {\n const { text, lines = 2 } = props;\n const [ expanded, setExpanded ] = React.useState(false);\n\n const { containerRef, showButton } = useExpandableTextButton();\n\n return (\n <div className='d-flex overflow-hidden'>\n <div className={`${expanded ? '' : `clamp-${lines}`} ${styles.text}`} ref={containerRef}>\n {(!expanded && showButton) && (\n <DivButton\n onClick={() => setExpanded(true)}\n className={`ms-1 info-text hover-text-underline ${styles.seeMore}`}\n >\n <Text namespace={namespace} phrase='seeMore' />\n </DivButton>\n )}\n <p className='mb-0 d-inline'>{text}</p>\n {expanded && (\n <DivButton\n onClick={() => setExpanded(false)}\n className={`ms-1 info-text hover-text-underline d-inline`}\n >\n <Text namespace={namespace} phrase='seeLess' />\n </DivButton>\n )}\n </div>\n </div>\n );\n}","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { ErrorPageError } from 'libs/shared/errors/primitives/ErrorPageError';\n\nconst namespace = 'shared.seriesNotFoundError';\n\nexport class SeriesNotFoundError extends ErrorPageError {\n constructor() {\n super('Series doesn\\'t exist');\n }\n\n // @ts-ignore\n public get name(): string {\n return 'SeriesNotFoundError';\n }\n\n // @ts-ignore\n public get heading(): string {\n return LanguageService.getPhrase(namespace, 'heading');\n }\n\n // @ts-ignore\n public get description(): string {\n return LanguageService.getPhrase(namespace, 'description');\n }\n}","import * as React from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/flight';\n\nimport { EntityType, LocationContext, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { BannerHeader, PartialBannerHeader } from 'libs/shared/components/banner-header/BannerHeader';\nimport { Breadcrumbs, PartialBreadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { ExpandableText } from 'libs/shared/components/expandable-text/ExpandableText';\nimport { InfiniteScrollFooter } from 'libs/shared/components/infinite-scroll-footer/InfiniteScrollFooter';\nimport { PartialVideoList } from 'libs/shared/components/video-list/partial-loading/PartialVideoList';\nimport { VideoList } from 'libs/shared/components/video-list/VideoList';\nimport { VideoSortSelect } from 'libs/shared/components/video-sort-select/VideoSortSelect';\nimport { BG_COLOUR_CLASS_NAMES } from 'libs/shared/constants/ColourClassNames';\nimport { VideoActionsContext } from 'libs/shared/context/VideoActionsContext';\nimport { LocalPermissionName, PermissionName } from 'libs/shared/enums/PermissionName';\nimport { VideoSortType } from 'libs/shared/enums/VideoSortType';\nimport { ClassificationRequests } from 'libs/shared/flight-requests/ClassificationRequests';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\nimport { SeriesRequests } from 'libs/shared/flight-requests/SeriesRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useBreadcrumbs } from 'libs/shared/hooks/useBreadcrumbs';\nimport { useCurationStudio } from 'libs/shared/hooks/useCurationStudio';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { useInfiniteList } from 'libs/shared/hooks/UseInfiniteList';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { Classification, Config, CurrentUser, Series, Video, YearGroup } from 'libs/shared/interfaces';\nimport { GetVideoAppLinkOptions } from 'libs/shared/interfaces/VideoAppLinkOptions';\nimport { PageMetadataHelper } from 'libs/shared/utils/PageMetadataHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\nimport { VideoSortHelper } from 'libs/shared/utils/VideoSortHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { SeriesNotFoundError } from 'shared/errors/series/series-not-found/SeriesNotFoundError';\nimport { usePluginHelper } from 'shared/hooks/use-plugin-helper/usePluginHelper';\nimport { useVideoActions, VideoActionsLocation } from 'shared/hooks/use-video-actions/useVideoActions';\nimport { useDeepLinks } from 'shared/hooks/useDeepLinks';\nimport { useLiteFavourites } from 'shared/hooks/useLiteFavourites';\nimport { usePresentationAudiences } from 'shared/hooks/usePresentationAudiences';\nimport { useVideoMixin } from 'shared/hooks/useVideoMixin';\nimport { InteractiveHelpers } from 'shared/utils/InteractiveHelper';\nimport { SeoHelper } from 'shared/utils/SeoHelper';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\n\nimport { SeriesAppLinkHelper } from 'apps/series/SeriesAppLinkHelper';\n\nconst namespace = 'shared.series';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst getFallbackBannerColourClass = (series: Series): string => {\n return BG_COLOUR_CLASS_NAMES[series.name.charCodeAt(0) % BG_COLOUR_CLASS_NAMES.length];\n};\n\ninterface SeriesViewProps {\n id: string;\n getVideoAppLink: (video: Video, opts: GetVideoAppLinkOptions) => Core.AppLink;\n classificationId?: string;\n shareId?: string;\n moviesAndTv?: boolean;\n sort?: VideoSortType;\n}\n\nexport function SeriesView(props: SeriesViewProps): JSX.Element {\n const dispatch = useDispatch();\n const { setFavourite, canFavourite } = useLiteFavourites(LocationContext.VideoThumbnail);\n const { hasPermissions, hasLocalPermissions } = usePermissions();\n const { isPlugin } = usePluginHelper();\n const { openInCurationStudioLabel, isUserCurator, getOpenInCurationStudioLink } = useCurationStudio();\n\n useDeepLinks({ id: props.id, app: 'series', shareId: props.shareId });\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const yearGroups = Flight.useBasicFetch<YearGroup[]>(\n currentUser.data?.isAuthenticated && CustomerRequests.yearGroups(currentUser.data.customerId)\n );\n\n const series = Flight.useBasicFetch<Series>(props.shareId\n ? SeriesRequests.sharedSeries(props.id, props.shareId)\n : SeriesRequests.series(props.id));\n\n const audiences = usePresentationAudiences();\n\n useSetPageMetadata(PageMetadataHelper.getSeriesMetadata({\n content: series.data,\n phraseContext: {\n phraseHandler: getPhrase,\n titlePhrase: 'pageTitle',\n descriptionPhrase: 'pageDescription'\n },\n canonicalLink: SeoHelper.getCanonicalLink({ stripPresentationSlug: true }),\n allowIndexing: SeoHelper.allowIndexing()\n }));\n\n const videoActions = useVideoActions({ location: VideoActionsLocation.VideoItem, shareId: props.shareId });\n\n const topicPath = Flight.useBasicFetch<Classification[]>(\n props.classificationId &&\n ClassificationRequests.path(props.classificationId)\n );\n\n /**\n * Infinite scrolling will be restricted for public browsing as a crawler/bot.\n * The rationale behind this is that we don't want to preload or allow crawlers\n * to enumerate the entirety of our series collections. Some series have > 10k videos\n * and they don't all need to be indexed (i.e. old news/current affair series).\n * \n * Public browsing by regular users will continue to paginate, along with authenticated\n * users. - Mike\n */\n function shouldFetch(cursor?: string) {\n if (SeoHelper.isBot() && cursor)\n return false;\n\n return true;\n }\n\n function getVideosRequest(cursor?: string) {\n if (!shouldFetch(cursor))\n return null;\n\n return SeriesRequests.seriesVideos(props.id, currentUser.data?.id, sort, cursor);\n }\n\n function fetchNext(cursor?: string) {\n return Flight.getFetch(dispatch)(getVideosRequest(cursor));\n }\n\n function getBannerActions(): ActionOptions[] {\n if (isPlugin || !showHeaderActions) {\n return [];\n }\n\n const actions: ActionOptions[] = [{\n label: getPhrase('share'),\n appLink: series && {\n application: AppChannels.DEFAULT,\n action: Actions.Default.SHARE,\n args: [series.data?.id],\n params: { entityType: 'series' }\n },\n svgName: cvSvgLibrary.Share2,\n className: 'btn btn-outline-dark me-2',\n button: true\n }];\n\n if (isUserCurator)\n actions.push({\n label: openInCurationStudioLabel,\n href: getOpenInCurationStudioLink(series.data?.typeId, series.data?.id),\n openInNewTab: true\n });\n\n return actions;\n }\n\n // Must be before the video fetching, as the getVideosRequest has a closure over the sort\n const sort = !!currentUser.data && VideoSortHelper.getOrSetSortType(\n currentUser.data.id,\n props.sort,\n VideoSortType.Series\n );\n\n const seriesParams = {\n classificationId: props.classificationId,\n mtv: props.moviesAndTv\n };\n\n const {\n items: videos,\n isFetching,\n nextCursor\n } = useInfiniteList<Video>(currentUser.data ? getVideosRequest : false, fetchNext);\n\n useVideoMixin(videos);\n\n useHandleObjectError(series, {\n notFound: SeriesNotFoundError\n });\n\n const showHeaderActions = !hasPermissions(PermissionName.StudentExperience) &&\n hasLocalPermissions(LocalPermissionName.UseSeriesActions);\n\n const breadcrumbs = useBreadcrumbs({ name: series.data?.name });\n\n return (\n <VideoActionsContext.Provider value={videoActions}>\n <div className='px-3'>\n {config.data && series.data\n ? (\n <BannerHeader\n heading={series.data.name}\n banner={series.data.banner}\n imageCdnUrl={config.data.imageCdnUrl}\n actions={getBannerActions()}\n actionsDropdownClassName='btn btn-outline-dark'\n blockColourClass={getFallbackBannerColourClass(series.data)}\n />\n ) : <PartialBannerHeader />\n }\n \n <div>\n <div className={series.data?.description || (props.moviesAndTv && topicPath.data) ? 'border-bottom py-3 mb-3' : 'pt-3 mb-2'}>\n {(() => {\n if (!series.data || (props.classificationId && !topicPath.data))\n return <PartialBreadcrumbs />;\n\n return (\n <Breadcrumbs breadcrumbs={breadcrumbs} />\n );\n })()}\n\n <div className='d-flex align-items-center'>\n {series.data?.description && (\n <div className={`mb-0 ${props.classificationId ? 'pt-2' : ''}`}>\n <ExpandableText text={series.data.description}/>\n </div>\n )}\n\n {series.data && (\n <div className='ms-auto'>\n <VideoSortSelect\n variant='outline-dark'\n type={sort}\n analyticsOptions={{\n location: LocationContext.VideoListHeader,\n entity: EntityType.Video,\n actionType: UserAction.Sort,\n workflowPhase: WorkflowPhase.Complete\n }}\n getSortAppLink={sort => {\n return SeriesAppLinkHelper.getSeriesAppLink(series.data, { ...seriesParams, sort });\n }}\n />\n </div>\n )}\n </div>\n </div>\n\n {(() => {\n if (!videos)\n return <PartialVideoList />;\n\n return (\n <>\n <VideoList\n videos={videos}\n yearGroups={yearGroups.data}\n getVideoAppLink={props.getVideoAppLink}\n hasPermissions={hasPermissions}\n getSubTextAppLink={video =>\n SeriesAppLinkHelper.getSeriesAppLink(video?.series, { ...seriesParams, sort })}\n setFavourite={setFavourite}\n canFavourite={canFavourite}\n presentationAudiences={props.moviesAndTv ? null : audiences.data}\n getPreviewQuestionsAppLink={interactive => InteractiveHelpers.getPreviewQuestionsAppLink(interactive)}\n isPlugin={isPlugin}\n getClassroomGuideAppLink={VideoAppLinkHelper.getClassroomGuideAppLink}\n getInteractiveGuidanceAppLink={VideoAppLinkHelper.getInteractiveGuidanceAppLink}\n getResourceGuidanceAppLink={VideoAppLinkHelper.getResourceGuidanceAppLink}\n />\n {(isFetching || nextCursor) && shouldFetch(nextCursor) && (\n <InfiniteScrollFooter\n isFetching={isFetching}\n fetchNext={fetchNext}\n nextCursor={nextCursor}\n />\n )}\n </>\n );\n })()}\n </div>\n </div>\n </VideoActionsContext.Provider>\n );\n}\n"],"names":["useExpandableTextButton","containerRef","memoClientHeight","current","clientHeight","scrollHeight","showButton","setShowButton","namespace","ExpandableText","props","text","lines","expanded","setExpanded","className","ref","DivButton","onClick","Text","phrase","SeriesNotFoundError","LanguageService","ErrorPageError","getPhrase","getFallbackBannerColourClass","series","name","charCodeAt","SeriesView","dispatch","useLiteFavourites","u","setFavourite","canFavourite","usePermissions","hasPermissions","hasLocalPermissions","isPlugin","usePluginHelper","useCurationStudio","openInCurationStudioLabel","isUserCurator","getOpenInCurationStudioLink","useDeepLinks","id","app","shareId","config","ConfigRequests","currentUser","UserRequests","yearGroups","data","isAuthenticated","CustomerRequests","customerId","SeriesRequests","audiences","usePresentationAudiences","useSetPageMetadata","PageMetadataHelper","content","phraseContext","phraseHandler","titlePhrase","descriptionPhrase","canonicalLink","SeoHelper","stripPresentationSlug","allowIndexing","videoActions","useVideoActions","location","topicPath","classificationId","ClassificationRequests","shouldFetch","cursor","getVideosRequest","sort","fetchNext","VideoSortHelper","VideoSortType","seriesParams","mtv","moviesAndTv","videos","items","isFetching","nextCursor","useVideoMixin","notFound","showHeaderActions","PermissionName","breadcrumbs","useBreadcrumbs","VideoActionsContext","value","BannerHeader","heading","banner","imageCdnUrl","actions","label","appLink","application","action","args","params","entityType","svgName","button","push","href","typeId","openInNewTab","getBannerActions","actionsDropdownClassName","blockColourClass","description","Breadcrumbs","VideoSortSelect","variant","type","analyticsOptions","entity","actionType","workflowPhase","getSortAppLink","SeriesAppLinkHelper","VideoList","getVideoAppLink","getSubTextAppLink","video","presentationAudiences","getPreviewQuestionsAppLink","interactive","InteractiveHelper","getClassroomGuideAppLink","VideoAppLinkHelper","getInteractiveGuidanceAppLink","getResourceGuidanceAppLink","InfiniteScrollFooter","PartialVideoList"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
- "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[7234],{56520:(e,a,t)=>{t.d(a,{R0:()=>m,_N:()=>u,eR:()=>p});var n=t(23481),i=t(97395),r=t(20354),s=t(42617),o=t(4594),l=t(39151),c=t(31949),d=n.T.encloseNamespace("shared.hooks");function u(e,a,t,n){var r=i._.safeUrlConcat(e,"manage"),s=i._.safeUrlConcat(e,"exchange"),l=function(e,a,t){return i._.safeUrlConcat(e,"".concat(a,"/").concat(t))};switch(a){case o.E.Subject:return i._.safeUrlConcat(r,"subjects/presentations/".concat(n,"/classifications/").concat(t,"/edit"));case o.E.Video:return l(r,"videos",t);case o.E.Playlist:return l(r,"playlists",t);case o.E.Series:return l(r,"series",t);case o.E.Company:return l(r,"companies",t);case o.E.Interactive:return l(r,"interactives",t);case o.E.Clip:return l(r,"clips",t);case o.E.Category:return l(s,"categories",t)}}function p(){return d("openInCurationStudio")}function m(){var e,a,t=r.a.useBasicFetch(c.N.currentUser()),n=r.a.useBasicFetch((null===(e=t.data)||void 0===e?void 0:e.id)&&c.N.groups(null===(a=t.data)||void 0===a?void 0:a.id)).data,i=r.a.useBasicFetch(l.L.config()),o=[s.j.Curator,s.j.Content,s.j.Developer];return{openInCurationStudioLabel:p(),isUserCurator:o.some((function(e){return null==n?void 0:n.data.find((function(a){return a.name===e}))})),getOpenInCurationStudioLink:function(e,a,t){var n;return u(null===(n=i.data)||void 0===n?void 0:n.curatorUrl,e,a,t)}}}},60008:(e,a,t)=>{t.r(a),t.d(a,{CompanyDashboardView:()=>Z});var n=t(32735),i=t(23481),r=t(81886),s=t(20354),o=t(28400),l=t(65858),c=t(75896),d=t(23232),u=t(83345),p=t(76177),m=t(40424),g=t(35223),v="moviesAndTv.companyDashboardEmptyState",h=i.T.encloseNamespace(v);function b(e){var a,t,r=(null===(a=e.dashboard)||void 0===a?void 0:a.status)===m.GL.Archived;return n.createElement(d.u,null,n.createElement(d.u.Image,{src:e.imageUrl,altText:h("info")}),n.createElement(d.u.Heading,null,n.createElement(u.x,{namespace:v,phrase:"heading"})),n.createElement(d.u.Info,null,n.createElement(u.x,{namespace:v,phrase:"info"})),n.createElement(p.u,{title:r?i.T.getPhrase(v,"archivedCtaTooltip"):"",spanHack:!0},n.createElement(d.u.Cta,{text:i.T.getPhrase(v,"add"),appLink:null===(t=e.addWidgetApplink)||void 0===t?void 0:t.call(e),className:"btn btn-dark",icon:g.vn.Plus,disabled:r})))}var y=t(44522),C=t(49935),f=t(32624),k=t(7733),E=t(77843),T=t(9085);function L(e){var a,t,i,r=c.m.sortBy(null===(a=e.dashboard)||void 0===a?void 0:a.widgets,"index");function s(a,t,n){var i=E.S.getWidgetParams(t,n,E.S.getDashboardTargetType(e.dashboard));return e.getWidgetContentRequest(a,i,n)}var o=e.isReadonly&&!(null==r?void 0:r.length);return n.createElement(n.Fragment,null,!!r.length&&n.createElement(n.Fragment,null,e.company?n.createElement(y.p,{heading:e.company.name,banner:e.company.banner,imageCdnUrl:e.imageCdnUrl,blockColourClass:(0,T.x)(e.company.name,k.o),actions:null===(t=e.getBannerActions)||void 0===t?void 0:t.call(e),actionsDropdownClassName:"btn btn-outline-dark"}):n.createElement(y.v,null),n.createElement("div",{className:"py-3 mb-3 border-bottom"},n.createElement(C.Oo,{breadcrumbs:null===(i=e.getBreadcrumbs)||void 0===i?void 0:i.call(e)})),n.createElement("div",{className:"mt-3"},r.map((function(a){return n.createElement(f.L,{key:a.id,id:a.id,imageCdnUrl:e.imageCdnUrl,getContentRequest:s,audiences:e.audiences,name:a.name,description:a.description,templateId:a.templateId,metadata:a.metadata,presentation:e.presentation,setFavourite:e.setFavourite,canFavourite:e.canFavourite,appLinks:e.widgetAppLinks,isScrollToTargetWidget:(null==e?void 0:e.scrollToWidgetId)===a.id,widgetTypeId:a.widgetId,yearGroups:e.yearGroups,hasPermissions:e.hasPermissions,hasLocalPermissions:e.hasLocalPermissions,isPreviewing:e.isReadonly,companyLogoFallbackUrl:e.companyLogoFallbackUrl,subTextType:e.subTextType,resourceThumbnailFallbackImageUrl:e.resourceThumbnailFallbackImageUrl,preferences:a.preferences,isPlugin:e.isPlugin})})))),o&&n.createElement(b,{dashboard:e.dashboard,isReadonly:e.isReadonly,imageUrl:e.emptyImageUrl,addWidgetApplink:e.widgetAppLinks.widgetWizard}))}var I=t(14875),P=t(16714),U=t(183),A=t(67058),w=t(39151),F=t(80889),S=t(63719),x=t(56520),R=t(22902),W=t(79612),N=t(76753),B=t(99742),D=t(14070),G=t(97291),_=t(68317),O=t(51855),j=t(7179),H=t(27638),q=t(23737),M=t(33192),V=t(22490),Q=t(82431),Y=i.T.encloseNamespace("moviesAndTv.companyDashboard"),z={videoType:function(e,a){return V.W.getAppLink(e,Object.assign(Object.assign({},a),{moviesAndTv:!0,context:U.Q.Widget}))},series:Q.j.getSeriesAppLink,subText:function(e){return Q.j.getSeriesAppLink(e.series)},playlist:function(e){return{application:G.O.PLAYLISTS,action:D.e.Playlists.PLAYLIST,args:[e.id,o.m.slugify(e.name)]}},classroomGuide:V.W.getClassroomGuideAppLink,interactiveGuidance:V.W.getInteractiveGuidanceAppLink,resourceGuidance:V.W.getResourceGuidanceAppLink};function Z(e){var a,t,i,o=s.a.useBasicFetch(w.L.config()),c=s.a.useBasicFetch(_.h.company(e.companyId)),d=(0,x.R0)(),u=d.openInCurationStudioLabel,p=d.isUserCurator,g=d.getOpenInCurationStudioLink,v=(0,H.u)(l.LZ.ExpandableVideoThumbnail),h=v.setFavourite,b=v.canFavourite,y=(0,R.T)(),C=y.hasPermissions,f=y.hasLocalPermissions,k=(0,O.G)().isPlugin,E=C(P.C.ViewMoviesTv),T=(0,q.y)({targetType:m.ku.Company,queryParams:e.queryParams,presentationSlug:e.presentationSlug,companyId:e.companyId}),U=T.dashboard,V=T.presentation,Q=T.isPreviewing;(0,W.M)(N.CG.getDefaultMetadata({title:null===(a=c.data)||void 0===a?void 0:a.name,phraseContext:{phraseHandler:Y,titlePhrase:"pageTitle",descriptionPhrase:"pageDescription"},canonicalLink:M.f.getCanonicalLink({stripPresentationSlug:!0}),allowIndexing:!1})),(0,j.P)({id:e.companyId,app:"studios"}),n.useEffect((function(){U.hasCompleted&&(E&&U.data||r.Q.C$.trigger({application:G.O.DASHBOARD,action:D.e.Dashboard.HOME},{replace:!0}))}),[E,U.data,U.hasCompleted]);var Z=(0,S.h)({name:null===(t=c.data)||void 0===t?void 0:t.name});return n.useEffect((function(){U.hasCompleted&&!U.data&&r.Q.Ry.throw(new A.d)}),[U.data,U.hasCompleted]),n.createElement("div",{className:"position-relative px-4"},!(!Q||!U.data)&&n.createElement(I.a,{status:U.data.status,type:"company"}),n.createElement(L,{company:c.data,dashboard:U.data,getWidgetContentRequest:F._.dashboardWidgetContent,getBannerActions:function(){var e,a;return p?[{label:u,href:g(null===(e=c.data)||void 0===e?void 0:e.typeId,null===(a=c.data)||void 0===a?void 0:a.id),openInNewTab:!0}]:[]},imageCdnUrl:null===(i=o.data)||void 0===i?void 0:i.imageCdnUrl,resourceThumbnailFallbackImageUrl:B.W.Fallbacks.RESOURCE_THUMBNAIL,presentation:V,widgetAppLinks:z,setFavourite:h,canFavourite:b,getBreadcrumbs:function(){return c.hasCompleted?Z:[]},hasPermissions:C,hasLocalPermissions:f,isPlugin:k}))}}}]);
2
- //# sourceMappingURL=7234-ef6ab1e557-lite.chunk.js.map
1
+ "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[7234],{56520:(e,a,t)=>{t.d(a,{R0:()=>m,_N:()=>u,eR:()=>p});var n=t(23481),i=t(97395),r=t(20354),s=t(42617),o=t(4594),l=t(39151),c=t(31949),d=n.T.encloseNamespace("shared.hooks");function u(e,a,t,n){var r=i._.safeUrlConcat(e,"manage"),s=i._.safeUrlConcat(e,"exchange"),l=function(e,a,t){return i._.safeUrlConcat(e,"".concat(a,"/").concat(t))};switch(a){case o.E.Subject:return i._.safeUrlConcat(r,"subjects/presentations/".concat(n,"/classifications/").concat(t,"/edit"));case o.E.Video:return l(r,"videos",t);case o.E.Playlist:return l(r,"playlists",t);case o.E.Series:return l(r,"series",t);case o.E.Company:return l(r,"companies",t);case o.E.Interactive:return l(r,"interactives",t);case o.E.Clip:return l(r,"clips",t);case o.E.Category:return l(s,"categories",t)}}function p(){return d("openInCurationStudio")}function m(){var e,a,t=r.a.useBasicFetch(c.N.currentUser()),n=r.a.useBasicFetch((null===(e=t.data)||void 0===e?void 0:e.id)&&c.N.groups(null===(a=t.data)||void 0===a?void 0:a.id)).data,i=r.a.useBasicFetch(l.L.config()),o=[s.j.Curator,s.j.Content,s.j.Developer];return{openInCurationStudioLabel:p(),isUserCurator:o.some((function(e){return null==n?void 0:n.data.find((function(a){return a.name===e}))})),getOpenInCurationStudioLink:function(e,a,t){var n;return u(null===(n=i.data)||void 0===n?void 0:n.curatorUrl,e,a,t)}}}},60008:(e,a,t)=>{t.r(a),t.d(a,{CompanyDashboardView:()=>Z});var n=t(32735),i=t(23481),r=t(81886),s=t(20354),o=t(28400),l=t(65858),c=t(75896),d=t(23232),u=t(83345),p=t(76177),m=t(40424),g=t(35223),v="moviesAndTv.companyDashboardEmptyState",h=i.T.encloseNamespace(v);function b(e){var a,t,r=(null===(a=e.dashboard)||void 0===a?void 0:a.status)===m.GL.Archived;return n.createElement(d.u,null,n.createElement(d.u.Image,{src:e.imageUrl,altText:h("info")}),n.createElement(d.u.Heading,null,n.createElement(u.x,{namespace:v,phrase:"heading"})),n.createElement(d.u.Info,null,n.createElement(u.x,{namespace:v,phrase:"info"})),n.createElement(p.u,{title:r?i.T.getPhrase(v,"archivedCtaTooltip"):"",spanHack:!0},n.createElement(d.u.Cta,{text:i.T.getPhrase(v,"add"),appLink:null===(t=e.addWidgetApplink)||void 0===t?void 0:t.call(e),className:"btn btn-dark",icon:g.vn.Plus,disabled:r})))}var y=t(44522),C=t(49935),f=t(32624),k=t(7733),E=t(21366),T=t(9085);function L(e){var a,t,i,r=c.m.sortBy(null===(a=e.dashboard)||void 0===a?void 0:a.widgets,"index");function s(a,t,n){var i=E.S.getWidgetParams(t,n,E.S.getDashboardTargetType(e.dashboard));return e.getWidgetContentRequest(a,i,n)}var o=e.isReadonly&&!(null==r?void 0:r.length);return n.createElement(n.Fragment,null,!!r.length&&n.createElement(n.Fragment,null,e.company?n.createElement(y.p,{heading:e.company.name,banner:e.company.banner,imageCdnUrl:e.imageCdnUrl,blockColourClass:(0,T.x)(e.company.name,k.o),actions:null===(t=e.getBannerActions)||void 0===t?void 0:t.call(e),actionsDropdownClassName:"btn btn-outline-dark"}):n.createElement(y.v,null),n.createElement("div",{className:"py-3 mb-3 border-bottom"},n.createElement(C.Oo,{breadcrumbs:null===(i=e.getBreadcrumbs)||void 0===i?void 0:i.call(e)})),n.createElement("div",{className:"mt-3"},r.map((function(a){return n.createElement(f.L,{key:a.id,id:a.id,imageCdnUrl:e.imageCdnUrl,getContentRequest:s,audiences:e.audiences,name:a.name,description:a.description,templateId:a.templateId,metadata:a.metadata,presentation:e.presentation,setFavourite:e.setFavourite,canFavourite:e.canFavourite,appLinks:e.widgetAppLinks,isScrollToTargetWidget:(null==e?void 0:e.scrollToWidgetId)===a.id,widgetTypeId:a.widgetId,yearGroups:e.yearGroups,hasPermissions:e.hasPermissions,hasLocalPermissions:e.hasLocalPermissions,isPreviewing:e.isReadonly,companyLogoFallbackUrl:e.companyLogoFallbackUrl,subTextType:e.subTextType,resourceThumbnailFallbackImageUrl:e.resourceThumbnailFallbackImageUrl,preferences:a.preferences,isPlugin:e.isPlugin})})))),o&&n.createElement(b,{dashboard:e.dashboard,isReadonly:e.isReadonly,imageUrl:e.emptyImageUrl,addWidgetApplink:e.widgetAppLinks.widgetWizard}))}var I=t(14875),P=t(16714),U=t(183),A=t(67058),w=t(39151),F=t(80889),S=t(63719),x=t(56520),R=t(22902),W=t(79612),N=t(76753),B=t(99742),D=t(14070),G=t(97291),_=t(68317),O=t(51855),j=t(7179),H=t(27638),q=t(23737),M=t(33192),V=t(22490),Q=t(82431),Y=i.T.encloseNamespace("moviesAndTv.companyDashboard"),z={videoType:function(e,a){return V.W.getAppLink(e,Object.assign(Object.assign({},a),{moviesAndTv:!0,context:U.Q.Widget}))},series:Q.j.getSeriesAppLink,subText:function(e){return Q.j.getSeriesAppLink(e.series)},playlist:function(e){return{application:G.O.PLAYLISTS,action:D.e.Playlists.PLAYLIST,args:[e.id,o.m.slugify(e.name)]}},classroomGuide:V.W.getClassroomGuideAppLink,interactiveGuidance:V.W.getInteractiveGuidanceAppLink,resourceGuidance:V.W.getResourceGuidanceAppLink};function Z(e){var a,t,i,o=s.a.useBasicFetch(w.L.config()),c=s.a.useBasicFetch(_.h.company(e.companyId)),d=(0,x.R0)(),u=d.openInCurationStudioLabel,p=d.isUserCurator,g=d.getOpenInCurationStudioLink,v=(0,H.u)(l.LZ.ExpandableVideoThumbnail),h=v.setFavourite,b=v.canFavourite,y=(0,R.T)(),C=y.hasPermissions,f=y.hasLocalPermissions,k=(0,O.G)().isPlugin,E=C(P.C.ViewMoviesTv),T=(0,q.y)({targetType:m.ku.Company,queryParams:e.queryParams,presentationSlug:e.presentationSlug,companyId:e.companyId}),U=T.dashboard,V=T.presentation,Q=T.isPreviewing;(0,W.M)(N.CG.getDefaultMetadata({title:null===(a=c.data)||void 0===a?void 0:a.name,phraseContext:{phraseHandler:Y,titlePhrase:"pageTitle",descriptionPhrase:"pageDescription"},canonicalLink:M.f.getCanonicalLink({stripPresentationSlug:!0}),allowIndexing:!1})),(0,j.P)({id:e.companyId,app:"studios"}),n.useEffect((function(){U.hasCompleted&&(E&&U.data||r.Q.C$.trigger({application:G.O.DASHBOARD,action:D.e.Dashboard.HOME},{replace:!0}))}),[E,U.data,U.hasCompleted]);var Z=(0,S.h)({name:null===(t=c.data)||void 0===t?void 0:t.name});return n.useEffect((function(){U.hasCompleted&&!U.data&&r.Q.Ry.throw(new A.d)}),[U.data,U.hasCompleted]),n.createElement("div",{className:"position-relative px-4"},!(!Q||!U.data)&&n.createElement(I.a,{status:U.data.status,type:"company"}),n.createElement(L,{company:c.data,dashboard:U.data,getWidgetContentRequest:F._.dashboardWidgetContent,getBannerActions:function(){var e,a;return p?[{label:u,href:g(null===(e=c.data)||void 0===e?void 0:e.typeId,null===(a=c.data)||void 0===a?void 0:a.id),openInNewTab:!0}]:[]},imageCdnUrl:null===(i=o.data)||void 0===i?void 0:i.imageCdnUrl,resourceThumbnailFallbackImageUrl:B.W.Fallbacks.RESOURCE_THUMBNAIL,presentation:V,widgetAppLinks:z,setFavourite:h,canFavourite:b,getBreadcrumbs:function(){return c.hasCompleted?Z:[]},hasPermissions:C,hasLocalPermissions:f,isPlugin:k}))}}}]);
2
+ //# sourceMappingURL=7234-d15fe07f0e-lite.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scripts/7234-ef6ab1e557-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/hooks/useCurationStudio.ts","file:///app/packages/libs/shared/src/apps/movies-and-tv/components/company-dashboard/empty-state/CompanyDashboardEmptyState.tsx","file:///app/packages/libs/shared/src/apps/movies-and-tv/components/company-dashboard/CompanyDashboard.tsx","file:///app/packages/projects/lite/src/apps/movies-and-tv/views/company-dashboard/CompanyDashboardView.tsx"],"sourcesContent":["import { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/react/index';\n\nimport { CuratorGroup } from 'libs/shared/enums/CuratorGroup';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { Config, CuratorUserGroupCollection, CurrentUser } from 'libs/shared/interfaces';\n\nconst namespace = 'shared.hooks';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function getOpenInCurationStudioLink(\n baseUrl: string,\n objectType: MasterType | string,\n id: string,\n presentationId?: string\n) {\n const baseManageUrl = UrlHelper.safeUrlConcat(baseUrl, 'manage');\n const baseExchangeUrl = UrlHelper.safeUrlConcat(baseUrl, 'exchange');\n const href = (baseUrl: string, objectType: string, id: string) => UrlHelper.safeUrlConcat(baseUrl, `${objectType}/${id}`);\n\n switch (objectType) {\n case MasterType.Subject:\n return UrlHelper.safeUrlConcat(baseManageUrl, `subjects/presentations/${presentationId}/classifications/${id}/edit`);\n case MasterType.Video:\n return href(baseManageUrl, 'videos', id);\n case MasterType.Playlist:\n return href(baseManageUrl, 'playlists', id);\n case MasterType.Series:\n return href(baseManageUrl, 'series', id);\n case MasterType.Company:\n return href(baseManageUrl, 'companies', id);\n case MasterType.Interactive:\n return href(baseManageUrl, 'interactives', id);\n case MasterType.Clip:\n return href(baseManageUrl, 'clips', id);\n case MasterType.Category:\n return href(baseExchangeUrl, 'categories', id);\n }\n}\n\nexport function getOpenInCurationStudioLabel(): string {\n return getPhrase('openInCurationStudio');\n}\n\nexport function useCurationStudio() {\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const { data: userGroups } = Flight.useBasicFetch<CuratorUserGroupCollection>(\n (currentUser.data?.id) && UserRequests.groups(currentUser.data?.id)\n );\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n \n const curatorGroups = [ CuratorGroup.Curator, CuratorGroup.Content, CuratorGroup.Developer ];\n\n function isUserCurator(): boolean {\n return curatorGroups.some(group => userGroups?.data.find(userGroup => userGroup.name === group));\n }\n\n return {\n openInCurationStudioLabel: getOpenInCurationStudioLabel(),\n isUserCurator: isUserCurator(),\n getOpenInCurationStudioLink: (objectType: MasterType | string, id: string, presentationId?: string) =>\n getOpenInCurationStudioLink(config.data?.curatorUrl, objectType, id, presentationId)\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 { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { CuratedDashboard, DashboardStatus } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nconst namespace = 'moviesAndTv.companyDashboardEmptyState';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface CompanyDashboardEmptyStateProps {\n dashboard: CuratedDashboard;\n imageUrl: string;\n isReadonly: boolean;\n addWidgetApplink?: () => Core.AppLink;\n}\n\nexport function CompanyDashboardEmptyState(props: CompanyDashboardEmptyStateProps): JSX.Element {\n const isArchived = props.dashboard?.status === DashboardStatus.Archived;\n\n return (\n <EmptyState>\n <EmptyState.Image src={props.imageUrl} altText={getPhrase('info')} />\n <EmptyState.Heading>\n <Text namespace={namespace} phrase='heading' />\n </EmptyState.Heading>\n <EmptyState.Info>\n <Text namespace={namespace} phrase='info' />\n </EmptyState.Info>\n <Tooltip title={isArchived ? LanguageService.getPhrase(namespace, 'archivedCtaTooltip') : ''} spanHack>\n <EmptyState.Cta\n text={LanguageService.getPhrase(namespace, 'add')}\n appLink={props.addWidgetApplink?.()}\n className='btn btn-dark'\n icon={cvSvgLibrary.Plus}\n disabled={isArchived}\n />\n </Tooltip>\n </EmptyState>\n );\n}","import React from 'react';\n\nimport { Flight } from 'libs/common/flight';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { CompanyDashboardEmptyState } from 'libs/shared/apps/movies-and-tv/components/company-dashboard/empty-state/CompanyDashboardEmptyState';\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { BannerHeader, PartialBannerHeader } from 'libs/shared/components/banner-header/BannerHeader';\nimport { Breadcrumb, Breadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { VideoSubTextType } from 'libs/shared/components/video-sub-text/VideoSubText';\nimport { WidgetContainerView } from 'libs/shared/components/widgets/curated-widgets/WidgetContainerView';\nimport { WidgetAppLinks } from 'libs/shared/components/widgets/curated-widgets/WidgetProps';\nimport { BG_COLOUR_CLASS_NAMES } from 'libs/shared/constants/ColourClassNames';\nimport { WidgetTemplate } from 'libs/shared/enums/WidgetTemplate';\nimport { WidgetTypeId } from 'libs/shared/enums/WidgetTypeId';\nimport { HasLocalPermissionsFunc, HasPermissionsFunc } from 'libs/shared/hooks/usePermissions';\nimport { CanFavouriteFunc, Company, CuratedDashboard, CuratedWidgetQueryParams, FavouriteFunc, Presentation, PresentationAudience, YearGroup } from 'libs/shared/interfaces';\nimport { CuratedDashboardHelper } from 'libs/shared/utils/DashboardHelper';\nimport { getBgColorClass } from 'libs/shared/utils/getBgColorClass';\n\ninterface CompanyDashboardProps {\n dashboard: CuratedDashboard;\n company: Company;\n getWidgetContentRequest: (\n id: string,\n params: CuratedWidgetQueryParams,\n widgetTemplate: WidgetTemplate\n ) => Flight.Request;\n imageCdnUrl: string;\n hasPermissions: HasPermissionsFunc;\n hasLocalPermissions: HasLocalPermissionsFunc;\n resourceThumbnailFallbackImageUrl: string;\n audiences?: PresentationAudience[];\n emptyImageUrl?: string;\n presentation: Presentation;\n setFavourite?: FavouriteFunc;\n canFavourite?: CanFavouriteFunc;\n widgetAppLinks?: WidgetAppLinks;\n scrollToWidgetId?: string;\n isReadonly?: boolean;\n yearGroups?: YearGroup[];\n getBreadcrumbs?: () => Breadcrumb[];\n getBannerActions?: () => ActionOptions[];\n companyLogoFallbackUrl?: string;\n subTextType?: VideoSubTextType;\n isPlugin: boolean;\n}\n\nexport function CompanyDashboard(props: CompanyDashboardProps): JSX.Element {\n const widgets = ArrayHelper.sortBy(props.dashboard?.widgets, 'index');\n\n function getWidgetContentRequest(id: string, widgetTypeId: WidgetTypeId, template: WidgetTemplate): Flight.Request {\n const params = CuratedDashboardHelper.getWidgetParams(\n widgetTypeId,\n template,\n CuratedDashboardHelper.getDashboardTargetType(props.dashboard)\n );\n\n return props.getWidgetContentRequest(id, params, template);\n }\n\n const showEmptyState = props.isReadonly && !widgets?.length;\n\n return (\n <>\n {!!widgets.length &&\n <>\n {props.company\n ? (\n <BannerHeader\n heading={props.company.name}\n banner={props.company.banner}\n imageCdnUrl={props.imageCdnUrl}\n blockColourClass={getBgColorClass(props.company.name, BG_COLOUR_CLASS_NAMES)}\n actions={props.getBannerActions?.()}\n actionsDropdownClassName='btn btn-outline-dark'\n />\n ) : <PartialBannerHeader />\n }\n\n <div className='py-3 mb-3 border-bottom'>\n <Breadcrumbs breadcrumbs={props.getBreadcrumbs?.()} />\n </div>\n\n <div className='mt-3'>\n {widgets.map(widget => {\n return (\n <WidgetContainerView\n key={widget.id}\n id={widget.id}\n imageCdnUrl={props.imageCdnUrl}\n getContentRequest={getWidgetContentRequest}\n audiences={props.audiences}\n name={widget.name}\n description={widget.description}\n templateId={widget.templateId}\n metadata={widget.metadata}\n presentation={props.presentation}\n setFavourite={props.setFavourite}\n canFavourite={props.canFavourite}\n appLinks={props.widgetAppLinks}\n isScrollToTargetWidget={props?.scrollToWidgetId === widget.id}\n widgetTypeId={widget.widgetId}\n yearGroups={props.yearGroups}\n hasPermissions={props.hasPermissions}\n hasLocalPermissions={props.hasLocalPermissions}\n isPreviewing={props.isReadonly}\n companyLogoFallbackUrl={props.companyLogoFallbackUrl}\n subTextType={props.subTextType}\n resourceThumbnailFallbackImageUrl={props.resourceThumbnailFallbackImageUrl}\n preferences={widget.preferences}\n isPlugin={props.isPlugin}\n />\n );\n })}\n </div>\n </>\n }\n\n {showEmptyState && (\n <CompanyDashboardEmptyState\n dashboard={props.dashboard}\n isReadonly={props.isReadonly}\n imageUrl={props.emptyImageUrl}\n addWidgetApplink={props.widgetAppLinks.widgetWizard}\n />\n )}\n </>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/flight';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { CompanyDashboard } from 'libs/shared/apps/movies-and-tv/components/company-dashboard/CompanyDashboard';\nimport { PreviewBanner } from 'libs/shared/apps/subjects/components/preview-banner/PreviewBanner';\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { Breadcrumb } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { WidgetAppLinks } from 'libs/shared/components/widgets/curated-widgets/WidgetProps';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { RelatedVideosContext } from 'libs/shared/enums/RelatedVideosContext';\nimport { NotFoundError } from 'libs/shared/errors/general/not-found/NotFoundError';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { DashboardRequests } from 'libs/shared/flight-requests/DashboardRequests';\nimport { useBreadcrumbs } from 'libs/shared/hooks/useBreadcrumbs';\nimport { useCurationStudio } from 'libs/shared/hooks/useCurationStudio';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { Company, Config, DashboardTargetType, Playlist, Video, VideoTypes } from 'libs/shared/interfaces';\nimport { GetVideoAppLinkOptions } from 'libs/shared/interfaces/VideoAppLinkOptions';\nimport { PageMetadataHelper } from 'libs/shared/utils/PageMetadataHelper';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { CompanyRequests } from 'shared/flight-requests/CompanyRequests';\nimport { usePluginHelper } from 'shared/hooks/use-plugin-helper/usePluginHelper';\nimport { useDeepLinks } from 'shared/hooks/useDeepLinks';\nimport { useLiteFavourites } from 'shared/hooks/useLiteFavourites';\nimport { DashboardViewQueryParams } from 'shared/interfaces/query-params/DashboardViewQueryParams';\nimport { useFetchCuratedDashboard } from 'shared/utils/DashboardHelper';\nimport { SeoHelper } from 'shared/utils/SeoHelper';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\n\nimport { SeriesAppLinkHelper } from 'apps/series/SeriesAppLinkHelper';\n\nconst namespace = 'moviesAndTv.companyDashboard';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst companyAppLinks: WidgetAppLinks = {\n videoType: (video: VideoTypes, opts: GetVideoAppLinkOptions) => (\n VideoAppLinkHelper.getAppLink(video, {\n ...opts,\n moviesAndTv: true,\n context: RelatedVideosContext.Widget\n })\n ),\n\n series: SeriesAppLinkHelper.getSeriesAppLink,\n\n subText: (video: Video) => SeriesAppLinkHelper.getSeriesAppLink(video.series),\n\n playlist: (playlist: Playlist) => ({\n application: AppChannels.PLAYLISTS,\n action: Actions.Playlists.PLAYLIST,\n args: [ playlist.id, TextHelper.slugify(playlist.name) ]\n }),\n\n classroomGuide: VideoAppLinkHelper.getClassroomGuideAppLink,\n interactiveGuidance: VideoAppLinkHelper.getInteractiveGuidanceAppLink,\n resourceGuidance: VideoAppLinkHelper.getResourceGuidanceAppLink\n};\n\ninterface CompanyDashboardViewProps {\n presentationSlug: string;\n companyId: string;\n queryParams?: DashboardViewQueryParams;\n}\n\nexport function CompanyDashboardView(props: CompanyDashboardViewProps): JSX.Element {\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const company = Flight.useBasicFetch<Company>(CompanyRequests.company(props.companyId));\n const { openInCurationStudioLabel, isUserCurator, getOpenInCurationStudioLink } = useCurationStudio();\n\n const { setFavourite, canFavourite } = useLiteFavourites(LocationContext.ExpandableVideoThumbnail);\n const { hasPermissions, hasLocalPermissions } = usePermissions();\n const { isPlugin } = usePluginHelper();\n\n const hasMoviesAndTv = hasPermissions(PermissionName.ViewMoviesTv);\n\n const {\n dashboard,\n presentation,\n isPreviewing\n } = useFetchCuratedDashboard({\n targetType: DashboardTargetType.Company,\n queryParams: props.queryParams,\n presentationSlug: props.presentationSlug,\n companyId: props.companyId\n });\n\n useSetPageMetadata(PageMetadataHelper.getDefaultMetadata({\n title: company.data?.name,\n phraseContext: {\n phraseHandler: getPhrase,\n titlePhrase: 'pageTitle',\n descriptionPhrase: 'pageDescription'\n },\n canonicalLink: SeoHelper.getCanonicalLink({ stripPresentationSlug: true }),\n allowIndexing: false\n }));\n\n useDeepLinks({ id: props.companyId, app: 'studios' });\n\n React.useEffect(() => {\n if (!dashboard.hasCompleted)\n return;\n\n if (hasMoviesAndTv && dashboard.data)\n return;\n\n Core.AppLinkHelper.trigger(\n { application: AppChannels.DASHBOARD, action: Actions.Dashboard.HOME },\n { replace: true }\n );\n }, [ hasMoviesAndTv, dashboard.data, dashboard.hasCompleted ]);\n\n const breadcrumbs = useBreadcrumbs({ name: company.data?.name });\n function getBreadcrumbs(): Breadcrumb[] {\n if (!company.hasCompleted)\n return [];\n\n return breadcrumbs;\n }\n\n function getBannerActions(): ActionOptions[] {\n if (!isUserCurator)\n return [];\n\n return [{\n label: openInCurationStudioLabel,\n href: getOpenInCurationStudioLink(company.data?.typeId, company.data?.id),\n openInNewTab: true\n }];\n }\n\n React.useEffect(() => {\n if (!dashboard.hasCompleted || dashboard.data)\n return;\n\n Core.ErrorHelper.throw(new NotFoundError());\n }, [ dashboard.data, dashboard.hasCompleted ]);\n\n return (\n <div className='position-relative px-4'>\n {!!(isPreviewing && dashboard.data) && <PreviewBanner status={dashboard.data.status} type='company' />}\n <CompanyDashboard\n company={company.data}\n dashboard={dashboard.data}\n getWidgetContentRequest={DashboardRequests.dashboardWidgetContent}\n getBannerActions={getBannerActions}\n imageCdnUrl={config.data?.imageCdnUrl}\n resourceThumbnailFallbackImageUrl={ImageUrls.Fallbacks.RESOURCE_THUMBNAIL}\n presentation={presentation}\n widgetAppLinks={companyAppLinks}\n setFavourite={setFavourite}\n canFavourite={canFavourite}\n getBreadcrumbs={getBreadcrumbs}\n hasPermissions={hasPermissions}\n hasLocalPermissions={hasLocalPermissions}\n isPlugin={isPlugin}\n />\n </div>\n );\n}"],"names":["getPhrase","baseUrl","objectType","id","presentationId","baseManageUrl","baseExchangeUrl","href","getOpenInCurationStudioLabel","useCurationStudio","currentUser","userGroups","data","config","curatorGroups","Curator","openInCurationStudioLabel","isUserCurator","some","group","find","userGroup","name","getOpenInCurationStudioLink","curatorUrl","namespace","LanguageService","CompanyDashboardEmptyState","props","isArchived","dashboard","status","EmptyState","src","imageUrl","altText","Text","phrase","Tooltip","title","spanHack","text","appLink","addWidgetApplink","className","icon","disabled","CompanyDashboard","widgets","ArrayHelper","getWidgetContentRequest","widgetTypeId","template","params","showEmptyState","isReadonly","length","company","BannerHeader","heading","banner","imageCdnUrl","blockColourClass","getBgColorClass","actions","getBannerActions","actionsDropdownClassName","Breadcrumbs","breadcrumbs","getBreadcrumbs","map","widget","WidgetContainerView","key","getContentRequest","audiences","description","templateId","metadata","presentation","setFavourite","canFavourite","appLinks","widgetAppLinks","isScrollToTargetWidget","scrollToWidgetId","widgetId","yearGroups","hasPermissions","hasLocalPermissions","isPreviewing","companyLogoFallbackUrl","subTextType","resourceThumbnailFallbackImageUrl","preferences","isPlugin","emptyImageUrl","widgetWizard","companyAppLinks","videoType","video","opts","VideoAppLinkHelper","moviesAndTv","context","RelatedVideosContext","series","SeriesAppLinkHelper","subText","playlist","application","action","args","TextHelper","classroomGuide","interactiveGuidance","resourceGuidance","CompanyDashboardView","ConfigRequests","CompanyRequests","companyId","useLiteFavourites","u","usePermissions","usePluginHelper","hasMoviesAndTv","PermissionName","targetType","queryParams","presentationSlug","useSetPageMetadata","PageMetadataHelper","phraseContext","phraseHandler","titlePhrase","descriptionPhrase","canonicalLink","SeoHelper","stripPresentationSlug","allowIndexing","useDeepLinks","app","hasCompleted","replace","useBreadcrumbs","NotFoundError","PreviewBanner","type","DashboardRequests","label","typeId","openInNewTab","ImageUrls"],"sourceRoot":""}
1
+ {"version":3,"file":"scripts/7234-d15fe07f0e-lite.chunk.js","mappings":"uOAWMA,EAAY,qBADA,gBAGZ,SAAU,EACdC,EACAC,EACAC,EACAC,GAEA,IAAMC,EAAgB,kBAAwBJ,EAAS,UACjDK,EAAkB,kBAAwBL,EAAS,YACnDM,EAAO,SAACN,EAAiBC,EAAoBC,GAAU,OAAK,kBAAwBF,EAAS,GAAF,OAAKC,EAAU,YAAIC,GAAK,EAEzH,OAAQD,GACN,KAAK,YACH,OAAO,kBAAwBG,EAAe,0BAAF,OAA4BD,EAAc,4BAAoBD,EAAE,UAC9G,KAAK,UACH,OAAOI,EAAKF,EAAe,SAAUF,GACvC,KAAK,aACH,OAAOI,EAAKF,EAAe,YAAaF,GAC1C,KAAK,WACH,OAAOI,EAAKF,EAAe,SAAUF,GACvC,KAAK,YACH,OAAOI,EAAKF,EAAe,YAAaF,GAC1C,KAAK,gBACH,OAAOI,EAAKF,EAAe,eAAgBF,GAC7C,KAAK,SACH,OAAOI,EAAKF,EAAe,QAASF,GACtC,KAAK,aACH,OAAOI,EAAKD,EAAiB,aAAcH,GAEjD,CAEM,SAAUK,IACd,OAAOR,EAAU,uBACnB,CAEM,SAAUS,I,QACRC,EAAc,kBAAkC,mBACxCC,EAAe,mBACV,QAAhB,EAAAD,EAAYE,YAAI,eAAET,KAAO,WAAoC,QAAhB,EAAAO,EAAYE,YAAI,eAAET,KAD1DS,KAGFC,EAAS,kBAA6B,cAEtCC,EAAgB,CAAE,IAAAC,QAAsB,YAAsB,eAMpE,MAAO,CACLC,0BAA2BR,IAC3BS,cALOH,EAAcI,MAAK,SAAAC,GAAK,OAAIR,aAAU,EAAVA,EAAYC,KAAKQ,MAAK,SAAAC,GAAS,OAAIA,EAAUC,OAASH,CAAK,GAAC,IAM/FI,4BAA6B,SAACrB,EAAiCC,EAAYC,GAA2B,MACpG,SAAuC,QAAX,EAAAS,EAAOD,YAAI,eAAEY,WAAYtB,EAAYC,EAAIC,EAAe,EAE1F,C,qMCvDMqB,EAAY,yCACZzB,EAAY0B,EAAA,mBAAiCD,GAS7C,SAAUE,EAA2BC,G,QACnCC,GAA4B,QAAf,EAAAD,EAAME,iBAAS,eAAEC,UAAW,cAE/C,OACE,gBAACC,EAAA,EAAU,KACT,gBAACA,EAAA,QAAgB,CAACC,IAAKL,EAAMM,SAAUC,QAASnC,EAAU,UAC1D,gBAACgC,EAAA,UAAkB,KACjB,gBAACI,EAAA,EAAI,CAACX,UAAWA,EAAWY,OAAO,aAErC,gBAACL,EAAA,OAAe,KACd,gBAACI,EAAA,EAAI,CAACX,UAAWA,EAAWY,OAAO,UAErC,gBAACC,EAAA,EAAO,CAACC,MAAOV,EAAaH,EAAA,YAA0BD,EAAW,sBAAwB,GAAIe,UAAQ,GACpG,gBAACR,EAAA,MAAc,CACbS,KAAMf,EAAA,YAA0BD,EAAW,OAC3CiB,QAA+B,QAAtB,EAAAd,EAAMe,wBAAgB,uBAC/BC,UAAU,eACVC,KAAM,UACNC,SAAUjB,KAKpB,C,oECIM,SAAUkB,EAAiBnB,G,UACzBoB,EAAUC,EAAA,SAAkC,QAAf,EAAArB,EAAME,iBAAS,eAAEkB,QAAS,SAE7D,SAASE,EAAwB/C,EAAYgD,EAA4BC,GACvE,IAAMC,EAAS,oBACbF,EACAC,EACA,2BAA8CxB,EAAME,YAGtD,OAAOF,EAAMsB,wBAAwB/C,EAAIkD,EAAQD,EACnD,CAEA,IAAME,EAAiB1B,EAAM2B,cAAeP,aAAO,EAAPA,EAASQ,QAErD,OACE,kCACKR,EAAQQ,QACT,gCACG5B,EAAM6B,QAEH,gBAACC,EAAA,EAAY,CACXC,QAAS/B,EAAM6B,QAAQnC,KACvBsC,OAAQhC,EAAM6B,QAAQG,OACtBC,YAAajC,EAAMiC,YACnBC,kBAAkB,EAAAC,EAAA,GAAgBnC,EAAM6B,QAAQnC,KAAM,KACtD0C,QAA+B,QAAtB,EAAApC,EAAMqC,wBAAgB,uBAC/BC,yBAAyB,yBAEzB,gBAAC,IAAmB,MAG1B,uBAAKtB,UAAU,2BACb,gBAACuB,EAAA,GAAW,CAACC,YAAiC,QAApB,EAAAxC,EAAMyC,sBAAc,0BAGhD,uBAAKzB,UAAU,QACZI,EAAQsB,KAAI,SAAAC,GACX,OACE,gBAACC,EAAA,EAAmB,CAClBC,IAAKF,EAAOpE,GACZA,GAAIoE,EAAOpE,GACX0D,YAAajC,EAAMiC,YACnBa,kBAAmBxB,EACnByB,UAAW/C,EAAM+C,UACjBrD,KAAMiD,EAAOjD,KACbsD,YAAaL,EAAOK,YACpBC,WAAYN,EAAOM,WACnBC,SAAUP,EAAOO,SACjBC,aAAcnD,EAAMmD,aACpBC,aAAcpD,EAAMoD,aACpBC,aAAcrD,EAAMqD,aACpBC,SAAUtD,EAAMuD,eAChBC,wBAAwBxD,aAAK,EAALA,EAAOyD,oBAAqBd,EAAOpE,GAC3DgD,aAAcoB,EAAOe,SACrBC,WAAY3D,EAAM2D,WAClBC,eAAgB5D,EAAM4D,eACtBC,oBAAqB7D,EAAM6D,oBAC3BC,aAAc9D,EAAM2B,WACpBoC,uBAAwB/D,EAAM+D,uBAC9BC,YAAahE,EAAMgE,YACnBC,kCAAmCjE,EAAMiE,kCACzCC,YAAavB,EAAOuB,YACpBC,SAAUnE,EAAMmE,UAGtB,MAKLzC,GACC,gBAAC3B,EAA0B,CACzBG,UAAWF,EAAME,UACjByB,WAAY3B,EAAM2B,WAClBrB,SAAUN,EAAMoE,cAChBrD,iBAAkBf,EAAMuD,eAAec,eAKjD,C,mPCvFM,EAAYvE,EAAA,mBADA,gCAGZwE,EAAkC,CACtCC,UAAW,SAACC,EAAmBC,GAA4B,OACzDC,EAAA,aAA8BF,EAAO,OAAF,wBAC9BC,GAAI,CACPE,aAAa,EACbC,QAASC,EAAA,WACT,EAGJC,OAAQC,EAAA,mBAERC,QAAS,SAACR,GAAY,OAAKO,EAAA,mBAAqCP,EAAMM,OAAO,EAE7EG,SAAU,SAAC,GAAkB,MAAM,CACjCC,YAAa,cACbC,OAAQ,uBACRC,KAAM,CAAE,EAAS7G,GAAI8G,EAAA,UAAmB,EAAS3F,OAClD,EAED4F,eAAgBZ,EAAA,2BAChBa,oBAAqBb,EAAA,gCACrBc,iBAAkBd,EAAA,8BASd,SAAUe,EAAqBzF,G,UAC7Bf,EAAS,kBAA6ByG,EAAA,YACtC7D,EAAU,kBAA8B8D,EAAA,UAAwB3F,EAAM4F,YAC5E,GAAkF,EAAA/G,EAAA,MAA1EO,EAAyB,EAAzBA,0BAA2BC,EAAa,EAAbA,cAAeM,EAA2B,EAA3BA,4BAElD,GAAuC,EAAAkG,EAAAC,GAAkB,+BAAjD1C,EAAY,EAAZA,aAAcC,EAAY,EAAZA,aACtB,GAAgD,EAAA0C,EAAA,KAAxCnC,EAAc,EAAdA,eAAgBC,EAAmB,EAAnBA,oBAChBM,GAAa,EAAA6B,EAAA,KAAb7B,SAEF8B,EAAiBrC,EAAesC,EAAA,gBAEtC,GAII,OAAyB,CAC3BC,WAAY,aACZC,YAAapG,EAAMoG,YACnBC,iBAAkBrG,EAAMqG,iBACxBT,UAAW5F,EAAM4F,YAPjB1F,EAAS,EAATA,UACAiD,EAAY,EAAZA,aACAW,EAAY,EAAZA,cAQF,EAAAwC,EAAA,GAAmBC,EAAA,sBAAsC,CACvD5F,MAAmB,QAAZ,EAAAkB,EAAQ7C,YAAI,eAAEU,KACrB8G,cAAe,CACbC,cAAe,EACfC,YAAa,YACbC,kBAAmB,mBAErBC,cAAeC,EAAA,mBAA2B,CAAEC,uBAAuB,IACnEC,eAAe,MAGjB,EAAAC,EAAA,GAAa,CAAEzI,GAAIyB,EAAM4F,UAAWqB,IAAK,YAEzC,aAAgB,WACT/G,EAAUgH,eAGXjB,GAAkB/F,EAAUlB,MAGhC,eACE,CAAEkG,YAAa,cAAuBC,OAAQ,oBAC9C,CAAEgC,SAAS,IAEf,GAAG,CAAElB,EAAgB/F,EAAUlB,KAAMkB,EAAUgH,eAE/C,IAAM1E,GAAc,EAAA4E,EAAA,GAAe,CAAE1H,KAAkB,QAAZ,EAAAmC,EAAQ7C,YAAI,eAAEU,OA0BzD,OAPA,aAAgB,WACTQ,EAAUgH,eAAgBhH,EAAUlB,MAGzC,aAAuB,IAAIqI,EAAA,EAC7B,GAAG,CAAEnH,EAAUlB,KAAMkB,EAAUgH,eAG7B,uBAAKlG,UAAU,6BACT8C,IAAgB5D,EAAUlB,OAAS,gBAACsI,EAAA,EAAa,CAACnH,OAAQD,EAAUlB,KAAKmB,OAAQoH,KAAK,YAC1F,gBAACpG,EAAgB,CACfU,QAASA,EAAQ7C,KACjBkB,UAAWA,EAAUlB,KACrBsC,wBAAyBkG,EAAA,yBACzBnF,iBAzBN,W,QACE,OAAKhD,EAGE,CAAC,CACNoI,MAAOrI,EACPT,KAAMgB,EAAwC,QAAZ,EAAAkC,EAAQ7C,YAAI,eAAE0I,OAAoB,QAAZ,EAAA7F,EAAQ7C,YAAI,eAAET,IACtEoJ,cAAc,IALP,EAOX,EAiBM1F,YAAwB,QAAX,EAAAhD,EAAOD,YAAI,eAAEiD,YAC1BgC,kCAAmC2D,EAAA,+BACnCzE,aAAcA,EACdI,eAAgBe,EAChBlB,aAAcA,EACdC,aAAcA,EACdZ,eAvCN,WACE,OAAKZ,EAAQqF,aAGN1E,EAFE,EAGX,EAmCMoB,eAAgBA,EAChBC,oBAAqBA,EACrBM,SAAUA,IAIlB,C","sources":["file:///app/packages/libs/shared/src/hooks/useCurationStudio.ts","file:///app/packages/libs/shared/src/apps/movies-and-tv/components/company-dashboard/empty-state/CompanyDashboardEmptyState.tsx","file:///app/packages/libs/shared/src/apps/movies-and-tv/components/company-dashboard/CompanyDashboard.tsx","file:///app/packages/projects/lite/src/apps/movies-and-tv/views/company-dashboard/CompanyDashboardView.tsx"],"sourcesContent":["import { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/react/index';\n\nimport { CuratorGroup } from 'libs/shared/enums/CuratorGroup';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { Config, CuratorUserGroupCollection, CurrentUser } from 'libs/shared/interfaces';\n\nconst namespace = 'shared.hooks';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function getOpenInCurationStudioLink(\n baseUrl: string,\n objectType: MasterType | string,\n id: string,\n presentationId?: string\n) {\n const baseManageUrl = UrlHelper.safeUrlConcat(baseUrl, 'manage');\n const baseExchangeUrl = UrlHelper.safeUrlConcat(baseUrl, 'exchange');\n const href = (baseUrl: string, objectType: string, id: string) => UrlHelper.safeUrlConcat(baseUrl, `${objectType}/${id}`);\n\n switch (objectType) {\n case MasterType.Subject:\n return UrlHelper.safeUrlConcat(baseManageUrl, `subjects/presentations/${presentationId}/classifications/${id}/edit`);\n case MasterType.Video:\n return href(baseManageUrl, 'videos', id);\n case MasterType.Playlist:\n return href(baseManageUrl, 'playlists', id);\n case MasterType.Series:\n return href(baseManageUrl, 'series', id);\n case MasterType.Company:\n return href(baseManageUrl, 'companies', id);\n case MasterType.Interactive:\n return href(baseManageUrl, 'interactives', id);\n case MasterType.Clip:\n return href(baseManageUrl, 'clips', id);\n case MasterType.Category:\n return href(baseExchangeUrl, 'categories', id);\n }\n}\n\nexport function getOpenInCurationStudioLabel(): string {\n return getPhrase('openInCurationStudio');\n}\n\nexport function useCurationStudio() {\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const { data: userGroups } = Flight.useBasicFetch<CuratorUserGroupCollection>(\n (currentUser.data?.id) && UserRequests.groups(currentUser.data?.id)\n );\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n \n const curatorGroups = [ CuratorGroup.Curator, CuratorGroup.Content, CuratorGroup.Developer ];\n\n function isUserCurator(): boolean {\n return curatorGroups.some(group => userGroups?.data.find(userGroup => userGroup.name === group));\n }\n\n return {\n openInCurationStudioLabel: getOpenInCurationStudioLabel(),\n isUserCurator: isUserCurator(),\n getOpenInCurationStudioLink: (objectType: MasterType | string, id: string, presentationId?: string) =>\n getOpenInCurationStudioLink(config.data?.curatorUrl, objectType, id, presentationId)\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 { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { CuratedDashboard, DashboardStatus } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nconst namespace = 'moviesAndTv.companyDashboardEmptyState';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface CompanyDashboardEmptyStateProps {\n dashboard: CuratedDashboard;\n imageUrl: string;\n isReadonly: boolean;\n addWidgetApplink?: () => Core.AppLink;\n}\n\nexport function CompanyDashboardEmptyState(props: CompanyDashboardEmptyStateProps): JSX.Element {\n const isArchived = props.dashboard?.status === DashboardStatus.Archived;\n\n return (\n <EmptyState>\n <EmptyState.Image src={props.imageUrl} altText={getPhrase('info')} />\n <EmptyState.Heading>\n <Text namespace={namespace} phrase='heading' />\n </EmptyState.Heading>\n <EmptyState.Info>\n <Text namespace={namespace} phrase='info' />\n </EmptyState.Info>\n <Tooltip title={isArchived ? LanguageService.getPhrase(namespace, 'archivedCtaTooltip') : ''} spanHack>\n <EmptyState.Cta\n text={LanguageService.getPhrase(namespace, 'add')}\n appLink={props.addWidgetApplink?.()}\n className='btn btn-dark'\n icon={cvSvgLibrary.Plus}\n disabled={isArchived}\n />\n </Tooltip>\n </EmptyState>\n );\n}","import React from 'react';\n\nimport { Flight } from 'libs/common/flight';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { CompanyDashboardEmptyState } from 'libs/shared/apps/movies-and-tv/components/company-dashboard/empty-state/CompanyDashboardEmptyState';\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { BannerHeader, PartialBannerHeader } from 'libs/shared/components/banner-header/BannerHeader';\nimport { Breadcrumb, Breadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { VideoSubTextType } from 'libs/shared/components/video-sub-text/VideoSubText';\nimport { WidgetContainerView } from 'libs/shared/components/widgets/curated-widgets/WidgetContainerView';\nimport { WidgetAppLinks } from 'libs/shared/components/widgets/curated-widgets/WidgetProps';\nimport { BG_COLOUR_CLASS_NAMES } from 'libs/shared/constants/ColourClassNames';\nimport { WidgetTemplate } from 'libs/shared/enums/WidgetTemplate';\nimport { WidgetTypeId } from 'libs/shared/enums/WidgetTypeId';\nimport { HasLocalPermissionsFunc, HasPermissionsFunc } from 'libs/shared/hooks/usePermissions';\nimport { CanFavouriteFunc, Company, CuratedDashboard, CuratedWidgetQueryParams, FavouriteFunc, Presentation, PresentationAudience, YearGroup } from 'libs/shared/interfaces';\nimport { CuratedDashboardHelper } from 'libs/shared/utils/DashboardHelper';\nimport { getBgColorClass } from 'libs/shared/utils/getBgColorClass';\n\ninterface CompanyDashboardProps {\n dashboard: CuratedDashboard;\n company: Company;\n getWidgetContentRequest: (\n id: string,\n params: CuratedWidgetQueryParams,\n widgetTemplate: WidgetTemplate\n ) => Flight.Request;\n imageCdnUrl: string;\n hasPermissions: HasPermissionsFunc;\n hasLocalPermissions: HasLocalPermissionsFunc;\n resourceThumbnailFallbackImageUrl: string;\n audiences?: PresentationAudience[];\n emptyImageUrl?: string;\n presentation: Presentation;\n setFavourite?: FavouriteFunc;\n canFavourite?: CanFavouriteFunc;\n widgetAppLinks?: WidgetAppLinks;\n scrollToWidgetId?: string;\n isReadonly?: boolean;\n yearGroups?: YearGroup[];\n getBreadcrumbs?: () => Breadcrumb[];\n getBannerActions?: () => ActionOptions[];\n companyLogoFallbackUrl?: string;\n subTextType?: VideoSubTextType;\n isPlugin: boolean;\n}\n\nexport function CompanyDashboard(props: CompanyDashboardProps): JSX.Element {\n const widgets = ArrayHelper.sortBy(props.dashboard?.widgets, 'index');\n\n function getWidgetContentRequest(id: string, widgetTypeId: WidgetTypeId, template: WidgetTemplate): Flight.Request {\n const params = CuratedDashboardHelper.getWidgetParams(\n widgetTypeId,\n template,\n CuratedDashboardHelper.getDashboardTargetType(props.dashboard)\n );\n\n return props.getWidgetContentRequest(id, params, template);\n }\n\n const showEmptyState = props.isReadonly && !widgets?.length;\n\n return (\n <>\n {!!widgets.length &&\n <>\n {props.company\n ? (\n <BannerHeader\n heading={props.company.name}\n banner={props.company.banner}\n imageCdnUrl={props.imageCdnUrl}\n blockColourClass={getBgColorClass(props.company.name, BG_COLOUR_CLASS_NAMES)}\n actions={props.getBannerActions?.()}\n actionsDropdownClassName='btn btn-outline-dark'\n />\n ) : <PartialBannerHeader />\n }\n\n <div className='py-3 mb-3 border-bottom'>\n <Breadcrumbs breadcrumbs={props.getBreadcrumbs?.()} />\n </div>\n\n <div className='mt-3'>\n {widgets.map(widget => {\n return (\n <WidgetContainerView\n key={widget.id}\n id={widget.id}\n imageCdnUrl={props.imageCdnUrl}\n getContentRequest={getWidgetContentRequest}\n audiences={props.audiences}\n name={widget.name}\n description={widget.description}\n templateId={widget.templateId}\n metadata={widget.metadata}\n presentation={props.presentation}\n setFavourite={props.setFavourite}\n canFavourite={props.canFavourite}\n appLinks={props.widgetAppLinks}\n isScrollToTargetWidget={props?.scrollToWidgetId === widget.id}\n widgetTypeId={widget.widgetId}\n yearGroups={props.yearGroups}\n hasPermissions={props.hasPermissions}\n hasLocalPermissions={props.hasLocalPermissions}\n isPreviewing={props.isReadonly}\n companyLogoFallbackUrl={props.companyLogoFallbackUrl}\n subTextType={props.subTextType}\n resourceThumbnailFallbackImageUrl={props.resourceThumbnailFallbackImageUrl}\n preferences={widget.preferences}\n isPlugin={props.isPlugin}\n />\n );\n })}\n </div>\n </>\n }\n\n {showEmptyState && (\n <CompanyDashboardEmptyState\n dashboard={props.dashboard}\n isReadonly={props.isReadonly}\n imageUrl={props.emptyImageUrl}\n addWidgetApplink={props.widgetAppLinks.widgetWizard}\n />\n )}\n </>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/flight';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { CompanyDashboard } from 'libs/shared/apps/movies-and-tv/components/company-dashboard/CompanyDashboard';\nimport { PreviewBanner } from 'libs/shared/apps/subjects/components/preview-banner/PreviewBanner';\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { Breadcrumb } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { WidgetAppLinks } from 'libs/shared/components/widgets/curated-widgets/WidgetProps';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { RelatedVideosContext } from 'libs/shared/enums/RelatedVideosContext';\nimport { NotFoundError } from 'libs/shared/errors/general/not-found/NotFoundError';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { DashboardRequests } from 'libs/shared/flight-requests/DashboardRequests';\nimport { useBreadcrumbs } from 'libs/shared/hooks/useBreadcrumbs';\nimport { useCurationStudio } from 'libs/shared/hooks/useCurationStudio';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { Company, Config, DashboardTargetType, Playlist, Video, VideoTypes } from 'libs/shared/interfaces';\nimport { GetVideoAppLinkOptions } from 'libs/shared/interfaces/VideoAppLinkOptions';\nimport { PageMetadataHelper } from 'libs/shared/utils/PageMetadataHelper';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { CompanyRequests } from 'shared/flight-requests/CompanyRequests';\nimport { usePluginHelper } from 'shared/hooks/use-plugin-helper/usePluginHelper';\nimport { useDeepLinks } from 'shared/hooks/useDeepLinks';\nimport { useLiteFavourites } from 'shared/hooks/useLiteFavourites';\nimport { DashboardViewQueryParams } from 'shared/interfaces/query-params/DashboardViewQueryParams';\nimport { useFetchCuratedDashboard } from 'shared/utils/DashboardHelper';\nimport { SeoHelper } from 'shared/utils/SeoHelper';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\n\nimport { SeriesAppLinkHelper } from 'apps/series/SeriesAppLinkHelper';\n\nconst namespace = 'moviesAndTv.companyDashboard';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst companyAppLinks: WidgetAppLinks = {\n videoType: (video: VideoTypes, opts: GetVideoAppLinkOptions) => (\n VideoAppLinkHelper.getAppLink(video, {\n ...opts,\n moviesAndTv: true,\n context: RelatedVideosContext.Widget\n })\n ),\n\n series: SeriesAppLinkHelper.getSeriesAppLink,\n\n subText: (video: Video) => SeriesAppLinkHelper.getSeriesAppLink(video.series),\n\n playlist: (playlist: Playlist) => ({\n application: AppChannels.PLAYLISTS,\n action: Actions.Playlists.PLAYLIST,\n args: [ playlist.id, TextHelper.slugify(playlist.name) ]\n }),\n\n classroomGuide: VideoAppLinkHelper.getClassroomGuideAppLink,\n interactiveGuidance: VideoAppLinkHelper.getInteractiveGuidanceAppLink,\n resourceGuidance: VideoAppLinkHelper.getResourceGuidanceAppLink\n};\n\ninterface CompanyDashboardViewProps {\n presentationSlug: string;\n companyId: string;\n queryParams?: DashboardViewQueryParams;\n}\n\nexport function CompanyDashboardView(props: CompanyDashboardViewProps): JSX.Element {\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const company = Flight.useBasicFetch<Company>(CompanyRequests.company(props.companyId));\n const { openInCurationStudioLabel, isUserCurator, getOpenInCurationStudioLink } = useCurationStudio();\n\n const { setFavourite, canFavourite } = useLiteFavourites(LocationContext.ExpandableVideoThumbnail);\n const { hasPermissions, hasLocalPermissions } = usePermissions();\n const { isPlugin } = usePluginHelper();\n\n const hasMoviesAndTv = hasPermissions(PermissionName.ViewMoviesTv);\n\n const {\n dashboard,\n presentation,\n isPreviewing\n } = useFetchCuratedDashboard({\n targetType: DashboardTargetType.Company,\n queryParams: props.queryParams,\n presentationSlug: props.presentationSlug,\n companyId: props.companyId\n });\n\n useSetPageMetadata(PageMetadataHelper.getDefaultMetadata({\n title: company.data?.name,\n phraseContext: {\n phraseHandler: getPhrase,\n titlePhrase: 'pageTitle',\n descriptionPhrase: 'pageDescription'\n },\n canonicalLink: SeoHelper.getCanonicalLink({ stripPresentationSlug: true }),\n allowIndexing: false\n }));\n\n useDeepLinks({ id: props.companyId, app: 'studios' });\n\n React.useEffect(() => {\n if (!dashboard.hasCompleted)\n return;\n\n if (hasMoviesAndTv && dashboard.data)\n return;\n\n Core.AppLinkHelper.trigger(\n { application: AppChannels.DASHBOARD, action: Actions.Dashboard.HOME },\n { replace: true }\n );\n }, [ hasMoviesAndTv, dashboard.data, dashboard.hasCompleted ]);\n\n const breadcrumbs = useBreadcrumbs({ name: company.data?.name });\n function getBreadcrumbs(): Breadcrumb[] {\n if (!company.hasCompleted)\n return [];\n\n return breadcrumbs;\n }\n\n function getBannerActions(): ActionOptions[] {\n if (!isUserCurator)\n return [];\n\n return [{\n label: openInCurationStudioLabel,\n href: getOpenInCurationStudioLink(company.data?.typeId, company.data?.id),\n openInNewTab: true\n }];\n }\n\n React.useEffect(() => {\n if (!dashboard.hasCompleted || dashboard.data)\n return;\n\n Core.ErrorHelper.throw(new NotFoundError());\n }, [ dashboard.data, dashboard.hasCompleted ]);\n\n return (\n <div className='position-relative px-4'>\n {!!(isPreviewing && dashboard.data) && <PreviewBanner status={dashboard.data.status} type='company' />}\n <CompanyDashboard\n company={company.data}\n dashboard={dashboard.data}\n getWidgetContentRequest={DashboardRequests.dashboardWidgetContent}\n getBannerActions={getBannerActions}\n imageCdnUrl={config.data?.imageCdnUrl}\n resourceThumbnailFallbackImageUrl={ImageUrls.Fallbacks.RESOURCE_THUMBNAIL}\n presentation={presentation}\n widgetAppLinks={companyAppLinks}\n setFavourite={setFavourite}\n canFavourite={canFavourite}\n getBreadcrumbs={getBreadcrumbs}\n hasPermissions={hasPermissions}\n hasLocalPermissions={hasLocalPermissions}\n isPlugin={isPlugin}\n />\n </div>\n );\n}"],"names":["getPhrase","baseUrl","objectType","id","presentationId","baseManageUrl","baseExchangeUrl","href","getOpenInCurationStudioLabel","useCurationStudio","currentUser","userGroups","data","config","curatorGroups","Curator","openInCurationStudioLabel","isUserCurator","some","group","find","userGroup","name","getOpenInCurationStudioLink","curatorUrl","namespace","LanguageService","CompanyDashboardEmptyState","props","isArchived","dashboard","status","EmptyState","src","imageUrl","altText","Text","phrase","Tooltip","title","spanHack","text","appLink","addWidgetApplink","className","icon","disabled","CompanyDashboard","widgets","ArrayHelper","getWidgetContentRequest","widgetTypeId","template","params","showEmptyState","isReadonly","length","company","BannerHeader","heading","banner","imageCdnUrl","blockColourClass","getBgColorClass","actions","getBannerActions","actionsDropdownClassName","Breadcrumbs","breadcrumbs","getBreadcrumbs","map","widget","WidgetContainerView","key","getContentRequest","audiences","description","templateId","metadata","presentation","setFavourite","canFavourite","appLinks","widgetAppLinks","isScrollToTargetWidget","scrollToWidgetId","widgetId","yearGroups","hasPermissions","hasLocalPermissions","isPreviewing","companyLogoFallbackUrl","subTextType","resourceThumbnailFallbackImageUrl","preferences","isPlugin","emptyImageUrl","widgetWizard","companyAppLinks","videoType","video","opts","VideoAppLinkHelper","moviesAndTv","context","RelatedVideosContext","series","SeriesAppLinkHelper","subText","playlist","application","action","args","TextHelper","classroomGuide","interactiveGuidance","resourceGuidance","CompanyDashboardView","ConfigRequests","CompanyRequests","companyId","useLiteFavourites","u","usePermissions","usePluginHelper","hasMoviesAndTv","PermissionName","targetType","queryParams","presentationSlug","useSetPageMetadata","PageMetadataHelper","phraseContext","phraseHandler","titlePhrase","descriptionPhrase","canonicalLink","SeoHelper","stripPresentationSlug","allowIndexing","useDeepLinks","app","hasCompleted","replace","useBreadcrumbs","NotFoundError","PreviewBanner","type","DashboardRequests","label","typeId","openInNewTab","ImageUrls"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[729,4860],{96922:(e,i,t)=>{t.r(i),t.d(i,{SharedSeriesView:()=>d});var r=t(32735),c=t(81886),n=t(183),s=t(60696);function d(e){var i=c.Q.C$.getCurrentAppLink();return r.createElement(s.SeriesView,{key:e.objectId,id:e.objectId,shareId:e.shareId,getVideoAppLink:function(t){return Object.assign(Object.assign({},i),{params:{videoId:t.id,contextId:e.objectId,context:n.Q.Series}})}})}}}]);
2
+ //# sourceMappingURL=729-594be12089-lite.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scripts/729-594be12089-lite.chunk.js","mappings":"4MAWM,SAAUA,EAAiBC,GAC/B,IAAMC,EAAiB,2BAWvB,OACE,gBAAC,EAAAC,WAAU,CACTC,IAAKH,EAAMI,SACXC,GAAIL,EAAMI,SACVE,QAASN,EAAMM,QACfC,gBAdoB,SAACC,GAAY,OAAK,+BACrCP,GAAc,CACjBQ,OAAQ,CACNC,QAASF,EAAMH,GACfM,UAAWX,EAAMI,SACjBQ,QAAS,aACV,GAWL,C","sources":["file:///app/packages/projects/lite/src/apps/share/views/shared-series/SharedSeriesView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { RelatedVideosContext } from 'libs/shared/enums/RelatedVideosContext';\nimport { Video } from 'libs/shared/interfaces';\n\nimport { SeriesView } from 'shared/views/series/SeriesView';\n\nimport { ShareLinkViewProps } from 'apps/share/interfaces/ShareLinkViewProps';\n\nexport function SharedSeriesView(props: ShareLinkViewProps): JSX.Element {\n const currentAppLink = Core.AppLinkHelper.getCurrentAppLink();\n\n const getVideoAppLink = (video: Video) => ({\n ...currentAppLink,\n params: {\n videoId: video.id,\n contextId: props.objectId,\n context: RelatedVideosContext.Series\n }\n });\n\n return (\n <SeriesView\n key={props.objectId}\n id={props.objectId}\n shareId={props.shareId}\n getVideoAppLink={getVideoAppLink}\n />\n );\n}"],"names":["SharedSeriesView","props","currentAppLink","SeriesView","key","objectId","id","shareId","getVideoAppLink","video","params","videoId","contextId","context"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
- "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[7293],{91200:(e,t,a)=>{a.d(t,{Y:()=>o});var n=a(32735),i=a(68050),l=a(69111),r=a(84231);function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=Array(t);a<t;a++)n[a]=e[a];return n}function o(e){var t,a=function(e){if(Array.isArray(e))return s(e)}(t=Array(e.numItems))||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(t)||function(e,t){if(e){if("string"==typeof e)return s(e,t);var a={}.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?s(e,t):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),o=e.itemClassName||"";return n.createElement(n.Fragment,null,e.showHeading&&n.createElement("div",{className:"".concat(r.Z.partialHeading," mb-1 partial-loading-background")}),n.createElement(i.Z,{className:"mx-n1 mb-n2"},a.map((function(e,t){return n.createElement(l.Z,{key:t,xs:6,sm:4,lg:3,className:"".concat(o," px-1 pb-2")},n.createElement("div",{className:"".concat(r.Z.playlistItem," partial-loading-background rounded-3")}))}))))}o.defaultProps={numItems:8}},23162:(e,t,a)=>{a.d(t,{t:()=>S});var n=a(32735),i=a(82602),l=a(23481),r=a(110),s=a(65858),o=a(83345),c="playlists.playlistCount";function d(e){var t=function(e){var t,a,n,i,l,r;return!!e&&(null!==(a=null===(t=e.videos)||void 0===t?void 0:t.count)&&void 0!==a?a:0)+(null!==(i=null===(n=e.interactives)||void 0===n?void 0:n.count)&&void 0!==i?i:0)+(null!==(r=null===(l=e.clips)||void 0===l?void 0:l.count)&&void 0!==r?r:0)}(e.playlist);return!1===t||Number.isNaN(t)?n.createElement(n.Fragment,null):n.createElement("span",{className:"text-shadow font-size-sm"},n.createElement(o.x,{namespace:c,phrase:"count",options:{smartCount:t}}))}var m=a(20789),u=a(89725),p=a(64818);function v(e){var t,a,i,l=e.playlist._liteOwner;if(null===(t=e.playlist._isClickViewCurated)||void 0===t?void 0:t.value)return n.createElement(u.F,null);if(!(null==l?void 0:l.id)||!(null===(a=e.currentUser)||void 0===a?void 0:a.id))return n.createElement(n.Fragment,null);if(l.id.toString()===e.currentUser.id.toString())return n.createElement(n.Fragment,null);var r="string"==typeof l.avatar?l.avatar:null===(i=l.avatar)||void 0===i?void 0:i.url;return n.createElement(m.q,{imageUrl:r,imageCdnUrl:e.imageCdnUrl,initials:p.l.getInitials(l.name,l.surname)})}var g=a(36848),y=a(40955),f=a(75163),b=a(5465),h=a(54610),C=a(80143),E=a(9085),N=a(67453),w=a(84231),x="playlists.playlistList";function S(e){var t,a,o=N.j.createUrl(e.data.cover&&e.data.cover.url,{size:h.h2.Medium,resizeType:h.Nq.Cover}),c=e.data.subjectPresentationAudiences&&e.data.subjectPresentationAudiences.data,m=(0,C.n)(c,e.presentationAudiences),u=w.Z.playlistItem,p=!!o||!!e.showFallbackImage;p&&(u+=" ".concat(w.Z.playlistItemGradient)),!p&&e.bgColourClassNames&&(u+=" ".concat(w.Z.playlistItem," ").concat((0,E.x)(e.data.name,e.bgColourClassNames))),"round"===e.itemStyle&&(u+=" rounded-3 overflow-hidden"),"round-left"===e.itemStyle&&(u+=" rounded-start-lg overflow-hidden");var S=Object.assign(Object.assign({},e.analyticsData),{id:null===(t=e.data)||void 0===t?void 0:t.id,name:null===(a=e.data)||void 0===a?void 0:a.name}),k=Object.assign(Object.assign({},e.analyticsOptions),{entity:s.py.Playlist});return n.createElement(g.F,{appLink:e.appLink,analyticsData:S,analyticsOptions:k,title:function(){var t;return!e.data.contentModifiedDate||(null===(t=e.data._isClickViewCurated)||void 0===t?void 0:t.value)?"":l.T.getPhrase(x,"lastUpdated",{timeago:(0,i.WU)(r.O.convertUTCToLocal(e.data.contentModifiedDate))})}()},n.createElement(f.Z,{data:o,alt:e.data.name,className:u},!!e.showFallbackImage&&n.createElement(b.oy,{type:b.mS.Playlist}),n.createElement("div",{className:"text-white ".concat(w.Z.playlistMetadata)},!!e.showCount&&n.createElement(d,{playlist:e.data}),n.createElement("h5",{className:"mb-0 ".concat(e.titleClassName||"")},n.createElement("span",{className:"text-shadow clamp-2"},e.data.name)),!!c&&!!c.length&&!!m&&n.createElement(y.P,{className:"".concat(e.audienceLabelClass?e.audienceLabelClass:""," mt-1"),audience:m,border:"white"})),!!e.showOwner&&!!e.imageCdnUrl&&n.createElement("div",{className:w.Z.ownerAvatarContainer},n.createElement(v,{playlist:e.data,currentUser:e.currentUser,imageCdnUrl:e.imageCdnUrl}))))}S.defaultProps={itemStyle:"square"}},31273:(e,t,a)=>{a.d(t,{P:()=>c});var n=a(32735),i=a(68050),l=a(69111),r=a(65858),s=a(23162),o={actionType:r.Vw.Click,entity:r.py.Playlist,location:r.LZ.PlaylistListItem,descriptor:r._S.Cover};function c(e){return n.createElement(i.Z,{as:"ul",className:"list-unstyled mx-n1"},e.extraPlaylistItem&&n.createElement(l.Z,{as:"li",key:"extra-playlist-item",xs:6,sm:4,lg:3,className:"mb-2 px-1 ".concat(e.itemContainerClassName?e.itemContainerClassName:"")},e.extraPlaylistItem),e.playlists.map((function(t){return n.createElement(l.Z,{as:"li",key:t.id,xs:6,sm:4,lg:3,className:"mb-2 px-1 ".concat(e.itemContainerClassName?e.itemContainerClassName:"")},n.createElement(s.t,{data:t,appLink:e.getPlaylistAppLink(t),imageCdnUrl:e.imageCdnUrl,currentUser:e.currentUser,presentationAudiences:e.presentationAudiences,bgColourClassNames:e.bgColourClassNames,showCount:e.showCount,showOwner:e.showOwner,showFallbackImage:e.showFallbackImage,titleClassName:e.itemTitleClassName,itemStyle:e.itemStyle,analyticsData:e.analyticsData,analyticsOptions:Object.assign(Object.assign({},e.analyticsOptions),o)}))})))}},98981:(e,t,a)=>{a.d(t,{YA:()=>n.Y,tN:()=>i.t});var n=a(91200),i=(a(31273),a(23162))},3626:(e,t,a)=>{a.d(t,{J:()=>E});var n=a(32735),i=a(68050),l=a(69111),r=a(49985),s=a(65858),o=a(40955),c=a(18559),d=a(17464),m=a(84591),u=a(60318),p=a(85784),v=a(70872),g=a(11882),y=a(54610),f=a(68626),b=a(80143),h=a(31908);const C={partialHeroThumbnail:"z0_Sm",partialSeriesText:"xuWtC",partialVideoTitleText:"fXYdC",partialBadge:"FlUpr",partialDescription:"YgWxP",partialSubject:"QBKwQ",partialHeading:"S__E9",guidance:"Ax9h2",responsiveGuidance:"s3W_4",description:"zejMP",details:"MRyVe"};function E(e){var t,a=e.video,E=e.presentationAudiences,N=e.getVideoAppLink,w=e.subTextAppLink,x=e.hideInteractiveBadge,S=null===(t=null==a?void 0:a.subjectPresentationAudiences)||void 0===t?void 0:t.data,k=(0,b.n)(S,E),I=r.k.mergeOptions(e.analyticsOptions,{location:s.LZ.ClassificationHero,entity:h.M.getAnalyticsEntity(a)}),O=n.useRef();return a?n.createElement(i.Z,null,n.createElement(l.Z,{xs:12,md:6},n.createElement("div",{ref:O},n.createElement(m.u,{analyticsData:e.analyticsData,analyticsOptions:I,video:a,appLink:null==N?void 0:N(e.video,{}),imageOptions:{size:y.h2.Medium},textPosition:f.z.Independent,type:"static",setFavourite:e.setFavourite,canFavourite:e.canFavourite,audience:"thumbnail"===e.badgePosition?k:null,newDurationStyle:e.newDurationStyle,hideRating:"thumbnail"!==e.badgePosition||!!k,companyLogoFallbackUrl:e.companyLogoFallbackUrl,subTextType:"none",imageCdnUrl:e.imageCdnUrl,isPlugin:e.isPlugin}))),n.createElement(l.Z,{xs:12,md:6,className:"".concat(C.details," position-relative")},n.createElement("div",{className:"d-flex justify-content-between"},n.createElement("div",null,n.createElement(g.$,{type:e.subTextType,analyticsData:e.analyticsData,analyticsOptions:I,video:a,appLink:w,className:"text-reset"}),n.createElement(v.u,{video:a,analyticsData:e.analyticsData,analyticsOptions:I,appLink:null==N?void 0:N(e.video,{}),textClassName:"h4",yearGroups:e.yearGroups})),n.createElement(p.Q,{analyticsData:e.analyticsData,analyticsOptions:I,video:a})),"info-panel"===e.badgePosition&&n.createElement(d.c,{className:"pb-1"},!x&&n.createElement(c.C,{type:c.g.Interactive,data:a.interactives}),n.createElement(c.C,{type:c.g.Rating,data:a.rating}),n.createElement(c.C,{type:c.g.ProductionYear,data:a.productionYear})),n.createElement("p",{className:"mb-1"},n.createElement("span",{className:C.description},a.description)),"info-panel"===e.badgePosition&&n.createElement(o.P,{audience:k,className:"mt-1",border:"dark"}),e.showVideoGuidance&&n.createElement(u.u,{getClassroomGuideAppLink:e.getClassroomGuideAppLink,getResourceGuidanceAppLink:e.getResourceGuidanceAppLink,getInteractiveGuidanceAppLink:e.getInteractiveGuidanceAppLink,video:a,analyticsData:e.analyticsData,analyticsOptions:I,containerClassName:"d-flex ".concat(C.guidance),responsiveClassName:C.responsiveGuidance}))):n.createElement(n.Fragment,null)}E.defaultProps={newDurationStyle:!0,badgePosition:"thumbnail"}},34004:(e,t,a)=>{a.d(t,{r:()=>v});var n=a(32735),i=a(40955),l=a(18559),r=a(75163),s=a(5465),o=a(54610),c=a(49439),d=a(80143);const m={labelContainer:"ieonz",hoverActive:"vqHCl",mask:"qEOPN",largeHoverTitle:"ZYApF",smallHoverTitle:"qcfHO",description:"jnkdI",largeHoverDescription:"Uh4gM",hasTableOfContents:"RdHkK",smallHoverDescription:"TiqqV"};function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=Array(t);a<t;a++)n[a]=e[a];return n}function p(e){return n.createElement("div",{className:"py-3 mx-2 px-2 rounded bg-white text-center ".concat(m.mask," d-flex flex-column")},n.createElement("h3",{className:"fw-semibold mb-0 ".concat(m.hoverTitle," ").concat(e.isSmall?m.smallHoverTitle:m.largeHoverTitle)},n.createElement("span",{className:"clamp-3"},e.series.name)),!!e.series.description&&n.createElement("p",{className:"".concat(e.hasTableOfContents?m.hasTableOfContents:""," ").concat(m.hoverDescription," ").concat(e.isSmall?m.smallHoverDescription:m.largeHoverDescription," mb-0")},e.series.description),e.mergedAudience?n.createElement(i.P,{audience:e.mergedAudience,border:"dark",className:"mt-2"}):n.createElement(l.C,{type:l.g.Rating,data:e.series.rating,className:"mt-2"}))}function v(e){var t,a,v=(t=(0,c.L)({className:m.hoverActive}),a=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var n,i,l,r,s=[],o=!0,c=!1;try{if(l=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;o=!1}else for(;!(o=(n=l.call(a)).done)&&(s.push(n.value),s.length!==t);o=!0);}catch(e){c=!0,i=e}finally{try{if(!o&&null!=a.return&&(r=a.return(),Object(r)!==r))return}finally{if(c)throw i}}return s}}(t,a)||function(e,t){if(e){if("string"==typeof e)return u(e,t);var a={}.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?u(e,t):void 0}}(t,a)||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.")}()),g=v[0],y=v[1],f=e.series&&e.series.subjectPresentationAudiences&&e.series.subjectPresentationAudiences.data||[],b=(0,d.n)(f,e.presentationAudiences),h=!!(f&&f.length&&b);return n.createElement("div",{ref:g},n.createElement(r.Z,{data:e.series.tallPoster,alt:e.series.name,imageType:o.__.TallPosters,preload:e.preloadImage,imageOptions:{size:o.h2.Large},imageClassName:e.imageClass?e.imageClass:"rounded-3"},y&&n.createElement(p,{isSmall:e.isSmall,series:e.series,mergedAudience:f&&f.length?b:null,hasTableOfContents:e.hasTableOfContents}),n.createElement(s.oy,{type:s.mS.Series}),n.createElement("div",{className:"position-absolute text-white text-shadow ".concat(m.labelContainer)},h?n.createElement(i.P,{audience:b,border:"white"}):n.createElement(l.C,{type:l.g.Rating,data:e.series.rating}))))}},2192:(e,t,a)=>{a.d(t,{M:()=>b,Q:()=>h});var n=a(32735),i=a(45157),l=a(36848),r=a(60376),s=a(5465),o=a(83914),c=a(83345),d=a(54610),m=a(67453),u=a(45778),p=a(35223),v=a(92038),g="shared.subjectWidgetItem",y=function(e){var t=e.name,a=e.multiline,i=e.noUnderLine,l="".concat(v.Z.comingSoonPanel," \n d-flex flex-column align-items-center justify-content-center px-3 text-center"),r="";return a?r+=" ".concat(v.Z.clamped," clamp-2"):(l+=" text-nowrap",r+=" text-truncate"),n.createElement("div",{className:l},n.createElement("small",{className:"text-secondary"},n.createElement(c.x,{namespace:g,phrase:"comingSoon"})),n.createElement("p",{className:"".concat(i?"":v.Z.name," h6")},n.createElement("span",{className:r},t)))},f=function(e){var t=e.name,a=e.multiline,i=e.subtitle,l=e.noUnderLine,r=e.newVideosCount,s="px-3 d-flex flex-column justify-content-center",o="".concat(l?"":v.Z.name," h6");return a?o+=" ".concat(r?"clamp-2":"clamp-3"," text-start"):(s+=" text-nowrap text-truncate",o+=" text-truncate mb-0 pb-1"),n.createElement("div",{className:s},i&&n.createElement("div",{className:"text-secondary clamp-1 ".concat(v.Z.text)},i),n.createElement("div",{className:o,title:t},t),!!r&&n.createElement("div",{className:"fw-semibold d-inline-block rounded-pill px-2 mt-1 bg-light-green w-fit h-fit text-green ".concat(v.Z.newVideos)},n.createElement(c.x,{namespace:g,phrase:"newVideos",options:{smartCount:r}})))};function b(e){var t,a=m.j.createUrl(e.coverUrl,{size:e.isLarge?d.h2.Medium:d.h2.Small}),l=void 0;u.G.isClassification(e.data)&&(l=e.data);var c={name:e.data.name,multiline:e.isLarge||e.multiline,subtitle:e.subtitle,noUnderLine:e.highlightOnHover,newVideosCount:e.showNewVideosCount?null===(t=null==l?void 0:l.externalMetadata)||void 0===t?void 0:t.childDashboardNewVideoCount:0};return n.createElement("div",{className:"border d-flex position-relative ".concat(e.className," ").concat(v.Z.widgetItem," ").concat(e.isSelected?"border-success border-2":""," ").concat(e.highlightOnHover?"bg-light-blue-hover":""),id:"".concat(e.data.id,"-").concat(i.Y.getRandomInt())},e.isSelected&&n.createElement("div",{className:"".concat(v.Z.selectedMask," border-2")}),n.createElement("div",{className:"".concat(v.Z.imagePanel," ").concat(e.isLarge?v.Z.large:"")},e.isSelected&&!e.hideCheckmark&&n.createElement("div",{className:v.Z.selected},n.createElement(r.f,{svgName:p.vn.Check,svgSize:o.S.Large,textVariant:"white",variant:"green"})),n.createElement("div",{className:"".concat(v.Z.image," ").concat(e.imageClassName),style:e.coverUrl?{backgroundImage:"url('".concat(a,"')")}:{}}),!e.hideFallback&&n.createElement(s.oy,{type:s.mS.Subject,extraClasses:e.isLarge?v.Z.large:""})),e.isComingSoon?n.createElement(y,Object.assign({},c)):n.createElement(f,Object.assign({},c)))}function h(e){var t,a=e.getChildAppLink?e.getChildAppLink(e.data):null;return n.createElement(n.Fragment,null,a?n.createElement(l.F,{className:v.Z.appLink,appLink:a,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,appLinkOptions:null===(t=e.getChildAppLinkOptions)||void 0===t?void 0:t.call(e)},n.createElement(b,Object.assign({},e))):n.createElement(b,Object.assign({},e)))}},43741:(e,t,a)=>{a.d(t,{M:()=>c,Q:()=>o});var n=a(32735),i=a(45157),l=a(5465),r=a(92038);function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=Array(t);a<t;a++)n[a]=e[a];return n}var o=function(){var e,t,a=(e=n.useState(i.Y.getRandomInt(5)+3+"rem"),t=1,function(e){if(Array.isArray(e))return e}(e)||function(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var n,i,l,r,s=[],o=!0,c=!1;try{if(l=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;o=!1}else for(;!(o=(n=l.call(a)).done)&&(s.push(n.value),s.length!==t);o=!0);}catch(e){c=!0,i=e}finally{try{if(!o&&null!=a.return&&(r=a.return(),Object(r)!==r))return}finally{if(c)throw i}}return s}}(e,t)||function(e,t){if(e){if("string"==typeof e)return s(e,t);var a={}.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?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.")}())[0];return n.createElement("div",{className:"border d-flex position-relative me-2 ".concat(r.Z.widgetItem)},n.createElement("div",{className:r.Z.imagePanel}),n.createElement("div",{className:"px-2",style:{width:a}}),n.createElement("div",{className:r.Z.partialIcon},n.createElement(l.oy,{type:l.mS.Subject})))},c=function(){return n.createElement("div",{className:"border d-flex position-relative me-2 ".concat(r.Z.widgetItem)},n.createElement("div",{className:"".concat(r.Z.partialLargeImage)}),n.createElement("div",{className:"px-2"}),n.createElement("div",{className:r.Z.partialIcon},n.createElement(l.oy,{type:l.mS.Subject,extraClasses:r.Z.partialLargeFallback})))}},91028:(e,t,a)=>{a.d(t,{V:()=>o});var n=a(32735),i=a(65858),l=a(2192),r=a(52641),s=a(2284),o=n.memo((function(e){var t,a,o,c,d,m,u,p=(null===(t=e.data)||void 0===t?void 0:t.status)===s.W.ComingSoon,v=function(e,t){var a;if((null==t?void 0:t.length)>=r._.MULTI_PRESENTATION_THRESHOLD)return null===(a=null==t?void 0:t.find((function(t){return t.id===e})))||void 0===a?void 0:a.name}(e.data.presentationId,null==e?void 0:e.availablePresentations),g=Object.assign(Object.assign({},e.analyticsData),{id:(null===(a=e.analyticsData)||void 0===a?void 0:a.id)||(null===(o=e.data)||void 0===o?void 0:o.id),name:null===(c=e.data)||void 0===c?void 0:c.name,presentationId:(null===(d=e.analyticsData)||void 0===d?void 0:d.presentationId)||e.data.presentationId,comingSoon:!!p}),y=Object.assign(Object.assign({location:i.LZ.ClassificationListItem,entity:i.py.Classification},e.analyticsOptions),{actionType:i.Vw.Click,descriptor:i._S.Cover});return n.createElement(l.Q,Object.assign({},e,{analyticsData:g,analyticsOptions:y,coverUrl:null===(m=e.data.cover)||void 0===m?void 0:m.url,subtitle:(null===(u=e.getSubtitle)||void 0===u?void 0:u.call(e,e.data))||v,isComingSoon:p}))}))},9513:(e,t,a)=>{a.d(t,{Ml:()=>i.M,Qh:()=>i.Q,Vz:()=>n.V});var n=a(91028),i=a(43741),l=(a(32735),a(65858));a(36848),a(83914),a(83345),a(35223),a(92038),l.Vw.Click,l.py.UserSetting,l._S.Tile,a(2786),l.Vw.Click,l.py.Url,l._S.Tile},2284:(e,t,a)=>{var n;a.d(t,{W:()=>n}),function(e){e.Draft="Draft",e.ComingSoon="ComingSoon",e.Published="Published"}(n||(n={}))},84231:(e,t,a)=>{a.d(t,{Z:()=>n});const n={playlistItem:"CaRJx",playlistItemGradient:"BI7p2",playlistMetadata:"eDk1l",partialHeading:"w4lWh",ownerAvatarContainer:"JImqE"}},92038:(e,t,a)=>{a.d(t,{Z:()=>n});const n={appLink:"fFjKN",name:"A_by9",selectedMask:"xSQtR",widgetItem:"Ys9W_",text:"JfAoy",imagePanel:"aUNDc",partialLargeImage:"RuLxv",selected:"BViJb",image:"LkTep",dragHandle:"CJqvP",large:"R5clw",comingSoonPanel:"Wa2PG",newVideos:"s61h8",editSubjectsItem:"gGNFD",allSubjectsItem:"IHdlJ",logoContainer:"Nzaes",draggingItem:"zUOye",partialLargeFallback:"FmJP9",partialIcon:"sdZuo"}},68050:(e,t,a)=>{a.d(t,{Z:()=>c});var n=a(95685),i=a.n(n),l=a(32735),r=a(46304),s=a(74512);const o=l.forwardRef((({bsPrefix:e,className:t,as:a="div",...n},l)=>{const o=(0,r.vE)(e,"row"),c=(0,r.pi)(),d=(0,r.zG)(),m=`${o}-cols`,u=[];return c.forEach((e=>{const t=n[e];let a;delete n[e],null!=t&&"object"==typeof t?({cols:a}=t):a=t;const i=e!==d?`-${e}`:"";null!=a&&u.push(`${m}${i}-${a}`)})),(0,s.jsx)(a,{ref:l,...n,className:i()(t,o,...u)})}));o.displayName="Row";const c=o},82602:(e,t,a)=>{a.d(t,{WU:()=>c});var n=["second","minute","hour","day","week","month","year"],i=["秒","分钟","小时","天","周","个月","年"],l={},r=function(e,t){l[e]=t},s=[60,60,24,7,365/7/12,12];function o(e){return e instanceof Date?e:!isNaN(e)||/^\d+$/.test(e)?new Date(parseInt(e)):(e=(e||"").trim().replace(/\.\d+/,"").replace(/-/,"/").replace(/-/,"/").replace(/(\d)T(\d)/,"$1 $2").replace(/Z/," UTC").replace(/([+-]\d\d):?(\d\d)/," $1$2"),new Date(e))}var c=function(e,t,a){var n=function(e,t){return(+(t?o(t):new Date)-+o(e))/1e3}(e,a&&a.relativeDate);return function(e,t){for(var a=e<0?1:0,n=e=Math.abs(e),i=0;e>=s[i]&&i<s.length;i++)e/=s[i];return(e=Math.floor(e))>(0==(i*=2)?9:1)&&(i+=1),t(e,i,n)[a].replace("%s",e.toString())}(n,function(e){return l[e]||l.en_US}(t))};r("en_US",(function(e,t){if(0===t)return["just now","right now"];var a=n[Math.floor(t/2)];return e>1&&(a+="s"),[e+" "+a+" ago","in "+e+" "+a]})),r("zh_CN",(function(e,t){if(0===t)return["刚刚","片刻后"];var a=i[~~(t/2)];return[e+" "+a+"前",e+" "+a+"后"]}))}}]);
2
- //# sourceMappingURL=7293-3e6ad36a7a-lite.chunk.js.map
1
+ "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[7293],{91200:(e,t,a)=>{a.d(t,{Y:()=>o});var n=a(32735),i=a(68050),l=a(69111),r=a(84231);function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=Array(t);a<t;a++)n[a]=e[a];return n}function o(e){var t,a=function(e){if(Array.isArray(e))return s(e)}(t=Array(e.numItems))||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(t)||function(e,t){if(e){if("string"==typeof e)return s(e,t);var a={}.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?s(e,t):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),o=e.itemClassName||"";return n.createElement(n.Fragment,null,e.showHeading&&n.createElement("div",{className:"".concat(r.Z.partialHeading," mb-1 partial-loading-background")}),n.createElement(i.Z,{className:"mx-n1 mb-n2"},a.map((function(e,t){return n.createElement(l.Z,{key:t,xs:6,sm:4,lg:3,className:"".concat(o," px-1 pb-2")},n.createElement("div",{className:"".concat(r.Z.playlistItem," partial-loading-background rounded-3")}))}))))}o.defaultProps={numItems:8}},23162:(e,t,a)=>{a.d(t,{t:()=>S});var n=a(32735),i=a(82602),l=a(23481),r=a(110),s=a(65858),o=a(83345),c="playlists.playlistCount";function m(e){var t=function(e){var t,a,n,i,l,r;return!!e&&(null!==(a=null===(t=e.videos)||void 0===t?void 0:t.count)&&void 0!==a?a:0)+(null!==(i=null===(n=e.interactives)||void 0===n?void 0:n.count)&&void 0!==i?i:0)+(null!==(r=null===(l=e.clips)||void 0===l?void 0:l.count)&&void 0!==r?r:0)}(e.playlist);return!1===t||Number.isNaN(t)?n.createElement(n.Fragment,null):n.createElement("span",{className:"text-shadow font-size-sm"},n.createElement(o.x,{namespace:c,phrase:"count",options:{smartCount:t}}))}var d=a(20789),u=a(89725),p=a(64818);function v(e){var t,a,i,l=e.playlist._liteOwner;if(null===(t=e.playlist._isClickViewCurated)||void 0===t?void 0:t.value)return n.createElement(u.F,null);if(!(null==l?void 0:l.id)||!(null===(a=e.currentUser)||void 0===a?void 0:a.id))return n.createElement(n.Fragment,null);if(l.id.toString()===e.currentUser.id.toString())return n.createElement(n.Fragment,null);var r="string"==typeof l.avatar?l.avatar:null===(i=l.avatar)||void 0===i?void 0:i.url;return n.createElement(d.q,{imageUrl:r,imageCdnUrl:e.imageCdnUrl,initials:p.l.getInitials(l.name,l.surname)})}var g=a(36848),y=a(40955),f=a(75163),b=a(5465),h=a(54610),C=a(80143),E=a(9085),N=a(67453),w=a(84231),x="playlists.playlistList";function S(e){var t,a,o=N.j.createUrl(e.data.cover&&e.data.cover.url,{size:h.h2.Medium,resizeType:h.Nq.Cover}),c=e.data.subjectPresentationAudiences&&e.data.subjectPresentationAudiences.data,d=(0,C.n)(c,e.presentationAudiences),u=w.Z.playlistItem,p=!!o||!!e.showFallbackImage;p&&(u+=" ".concat(w.Z.playlistItemGradient)),!p&&e.bgColourClassNames&&(u+=" ".concat(w.Z.playlistItem," ").concat((0,E.x)(e.data.name,e.bgColourClassNames))),"round"===e.itemStyle&&(u+=" rounded-3 overflow-hidden"),"round-left"===e.itemStyle&&(u+=" rounded-start-lg overflow-hidden");var S=Object.assign(Object.assign({},e.analyticsData),{id:null===(t=e.data)||void 0===t?void 0:t.id,name:null===(a=e.data)||void 0===a?void 0:a.name}),k=Object.assign(Object.assign({},e.analyticsOptions),{entity:s.py.Playlist});return n.createElement(g.F,{appLink:e.appLink,analyticsData:S,analyticsOptions:k,title:function(){var t;return!e.data.contentModifiedDate||(null===(t=e.data._isClickViewCurated)||void 0===t?void 0:t.value)?"":l.T.getPhrase(x,"lastUpdated",{timeago:(0,i.WU)(r.O.convertUTCToLocal(e.data.contentModifiedDate))})}()},n.createElement(f.Z,{data:o,alt:e.data.name,className:u},!!e.showFallbackImage&&n.createElement(b.oy,{type:b.mS.Playlist}),n.createElement("div",{className:"text-white ".concat(w.Z.playlistMetadata)},!!e.showCount&&n.createElement(m,{playlist:e.data}),n.createElement("h5",{className:"mb-0 ".concat(e.titleClassName||"")},n.createElement("span",{className:"text-shadow clamp-2"},e.data.name)),!!c&&!!c.length&&!!d&&n.createElement(y.P,{className:"".concat(e.audienceLabelClass?e.audienceLabelClass:""," mt-1"),audience:d,border:"white"})),!!e.showOwner&&!!e.imageCdnUrl&&n.createElement("div",{className:w.Z.ownerAvatarContainer},n.createElement(v,{playlist:e.data,currentUser:e.currentUser,imageCdnUrl:e.imageCdnUrl}))))}S.defaultProps={itemStyle:"square"}},31273:(e,t,a)=>{a.d(t,{P:()=>c});var n=a(32735),i=a(68050),l=a(69111),r=a(65858),s=a(23162),o={actionType:r.Vw.Click,entity:r.py.Playlist,location:r.LZ.PlaylistListItem,descriptor:r._S.Cover};function c(e){return n.createElement(i.Z,{as:"ul",className:"list-unstyled mx-n1"},e.extraPlaylistItem&&n.createElement(l.Z,{as:"li",key:"extra-playlist-item",xs:6,sm:4,lg:3,className:"mb-2 px-1 ".concat(e.itemContainerClassName?e.itemContainerClassName:"")},e.extraPlaylistItem),e.playlists.map((function(t){return n.createElement(l.Z,{as:"li",key:t.id,xs:6,sm:4,lg:3,className:"mb-2 px-1 ".concat(e.itemContainerClassName?e.itemContainerClassName:"")},n.createElement(s.t,{data:t,appLink:e.getPlaylistAppLink(t),imageCdnUrl:e.imageCdnUrl,currentUser:e.currentUser,presentationAudiences:e.presentationAudiences,bgColourClassNames:e.bgColourClassNames,showCount:e.showCount,showOwner:e.showOwner,showFallbackImage:e.showFallbackImage,titleClassName:e.itemTitleClassName,itemStyle:e.itemStyle,analyticsData:e.analyticsData,analyticsOptions:Object.assign(Object.assign({},e.analyticsOptions),o)}))})))}},98981:(e,t,a)=>{a.d(t,{YA:()=>n.Y,tN:()=>i.t});var n=a(91200),i=(a(31273),a(23162))},3626:(e,t,a)=>{a.d(t,{J:()=>E});var n=a(32735),i=a(68050),l=a(69111),r=a(49985),s=a(65858),o=a(40955),c=a(18559),m=a(17464),d=a(84591),u=a(60318),p=a(85784),v=a(70872),g=a(11882),y=a(54610),f=a(68626),b=a(80143),h=a(31908);const C={partialHeroThumbnail:"z0_Sm",partialSeriesText:"xuWtC",partialVideoTitleText:"fXYdC",partialBadge:"FlUpr",partialDescription:"YgWxP",partialSubject:"QBKwQ",partialHeading:"S__E9",guidance:"Ax9h2",responsiveGuidance:"s3W_4",description:"zejMP",details:"MRyVe"};function E(e){var t,a=e.video,E=e.presentationAudiences,N=e.getVideoAppLink,w=e.subTextAppLink,x=e.hideInteractiveBadge,S=null===(t=null==a?void 0:a.subjectPresentationAudiences)||void 0===t?void 0:t.data,k=(0,b.n)(S,E),I=r.k.mergeOptions(e.analyticsOptions,{location:s.LZ.ClassificationHero,entity:h.M.getAnalyticsEntity(a)}),O=n.useRef();return a?n.createElement(i.Z,null,n.createElement(l.Z,{xs:12,md:6},n.createElement("div",{ref:O},n.createElement(d.u,{analyticsData:e.analyticsData,analyticsOptions:I,video:a,appLink:null==N?void 0:N(e.video,{}),imageOptions:{size:y.h2.Medium},textPosition:f.z.Independent,type:"static",setFavourite:e.setFavourite,canFavourite:e.canFavourite,audience:"thumbnail"===e.badgePosition?k:null,newDurationStyle:e.newDurationStyle,hideRating:"thumbnail"!==e.badgePosition||!!k,companyLogoFallbackUrl:e.companyLogoFallbackUrl,subTextType:"none",imageCdnUrl:e.imageCdnUrl,isPlugin:e.isPlugin}))),n.createElement(l.Z,{xs:12,md:6,className:"".concat(C.details," position-relative")},n.createElement("div",{className:"d-flex justify-content-between"},n.createElement("div",null,n.createElement(g.$,{type:e.subTextType,analyticsData:e.analyticsData,analyticsOptions:I,video:a,appLink:w,className:"text-reset"}),n.createElement(v.u,{video:a,analyticsData:e.analyticsData,analyticsOptions:I,appLink:null==N?void 0:N(e.video,{}),textClassName:"h4",yearGroups:e.yearGroups})),n.createElement(p.Q,{analyticsData:e.analyticsData,analyticsOptions:I,video:a})),"info-panel"===e.badgePosition&&n.createElement(m.c,{className:"pb-1"},!x&&n.createElement(c.C,{type:c.g.Interactive,data:a.interactives}),n.createElement(c.C,{type:c.g.Rating,data:a.rating}),n.createElement(c.C,{type:c.g.ProductionYear,data:a.productionYear})),n.createElement("p",{className:"mb-1"},n.createElement("span",{className:C.description},a.description)),"info-panel"===e.badgePosition&&n.createElement(o.P,{audience:k,className:"mt-1",border:"dark"}),e.showVideoGuidance&&n.createElement(u.u,{getClassroomGuideAppLink:e.getClassroomGuideAppLink,getResourceGuidanceAppLink:e.getResourceGuidanceAppLink,getInteractiveGuidanceAppLink:e.getInteractiveGuidanceAppLink,video:a,analyticsData:e.analyticsData,analyticsOptions:I,containerClassName:"d-flex ".concat(C.guidance),responsiveClassName:C.responsiveGuidance}))):n.createElement(n.Fragment,null)}E.defaultProps={newDurationStyle:!0,badgePosition:"thumbnail"}},34004:(e,t,a)=>{a.d(t,{r:()=>v});var n=a(32735),i=a(40955),l=a(18559),r=a(75163),s=a(5465),o=a(54610),c=a(49439),m=a(80143);const d={labelContainer:"ieonz",hoverActive:"vqHCl",mask:"qEOPN",largeHoverTitle:"ZYApF",smallHoverTitle:"qcfHO",description:"jnkdI",largeHoverDescription:"Uh4gM",hasTableOfContents:"RdHkK",smallHoverDescription:"TiqqV"};function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=Array(t);a<t;a++)n[a]=e[a];return n}function p(e){return n.createElement("div",{className:"py-3 mx-2 px-2 rounded bg-white text-center ".concat(d.mask," d-flex flex-column")},n.createElement("h3",{className:"fw-semibold mb-0 ".concat(d.hoverTitle," ").concat(e.isSmall?d.smallHoverTitle:d.largeHoverTitle)},n.createElement("span",{className:"clamp-3"},e.series.name)),!!e.series.description&&n.createElement("p",{className:"".concat(e.hasTableOfContents?d.hasTableOfContents:""," ").concat(d.hoverDescription," ").concat(e.isSmall?d.smallHoverDescription:d.largeHoverDescription," mb-0")},e.series.description),e.mergedAudience?n.createElement(i.P,{audience:e.mergedAudience,border:"dark",className:"mt-2"}):n.createElement(l.C,{type:l.g.Rating,data:e.series.rating,className:"mt-2"}))}function v(e){var t,a,v=(t=(0,c.L)({className:d.hoverActive}),a=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var n,i,l,r,s=[],o=!0,c=!1;try{if(l=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;o=!1}else for(;!(o=(n=l.call(a)).done)&&(s.push(n.value),s.length!==t);o=!0);}catch(e){c=!0,i=e}finally{try{if(!o&&null!=a.return&&(r=a.return(),Object(r)!==r))return}finally{if(c)throw i}}return s}}(t,a)||function(e,t){if(e){if("string"==typeof e)return u(e,t);var a={}.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?u(e,t):void 0}}(t,a)||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.")}()),g=v[0],y=v[1],f=e.series&&e.series.subjectPresentationAudiences&&e.series.subjectPresentationAudiences.data||[],b=(0,m.n)(f,e.presentationAudiences),h=!!(f&&f.length&&b);return n.createElement("div",{ref:g},n.createElement(r.Z,{data:e.series.tallPoster,alt:e.series.name,imageType:o.__.TallPosters,preload:e.preloadImage,imageOptions:{size:o.h2.Large},imageClassName:e.imageClass?e.imageClass:"rounded-3"},y&&n.createElement(p,{isSmall:e.isSmall,series:e.series,mergedAudience:f&&f.length?b:null,hasTableOfContents:e.hasTableOfContents}),n.createElement(s.oy,{type:s.mS.Series}),n.createElement("div",{className:"position-absolute text-white text-shadow ".concat(d.labelContainer)},h?n.createElement(i.P,{audience:b,border:"white"}):n.createElement(l.C,{type:l.g.Rating,data:e.series.rating}))))}},2192:(e,t,a)=>{a.d(t,{M:()=>b,Q:()=>h});var n=a(32735),i=a(45157),l=a(36848),r=a(60376),s=a(5465),o=a(83914),c=a(83345),m=a(54610),d=a(67453),u=a(45778),p=a(35223),v=a(92038),g="shared.subjectWidgetItem",y=function(e){var t=e.name,a=e.multiline,i=e.noUnderLine,l="".concat(v.Z.comingSoonPanel," \n d-flex flex-column align-items-center justify-content-center px-3 text-center"),r="";return a?r+=" ".concat(v.Z.clamped," clamp-2"):(l+=" text-nowrap",r+=" text-truncate"),n.createElement("div",{className:l},n.createElement("small",{className:"text-secondary"},n.createElement(c.x,{namespace:g,phrase:"comingSoon"})),n.createElement("p",{className:"".concat(i?"":v.Z.name," h6")},n.createElement("span",{className:r},t)))},f=function(e){var t=e.name,a=e.multiline,i=e.subtitle,l=e.noUnderLine,r=e.newVideosCount,s="px-3 d-flex flex-column justify-content-center",o="".concat(l?"":v.Z.name," h6");return a?o+=" ".concat(r?"clamp-2":"clamp-3"," text-start"):(s+=" text-nowrap text-truncate",o+=" text-truncate mb-0"),n.createElement("div",{className:s},i&&n.createElement("div",{className:"text-secondary clamp-1 ".concat(v.Z.text)},i),n.createElement("div",{className:o,title:t},t),!!r&&n.createElement("div",{className:"fw-semibold d-inline-block rounded-pill px-2 mt-1 bg-light-green w-fit h-fit text-green ".concat(v.Z.newVideos)},n.createElement(c.x,{namespace:g,phrase:"newVideos",options:{smartCount:r}})))};function b(e){var t,a=d.j.createUrl(e.coverUrl,{size:e.isLarge?m.h2.Medium:m.h2.Small}),l=void 0;u.G.isClassification(e.data)&&(l=e.data);var c={name:e.data.name,multiline:e.isLarge||e.multiline,subtitle:e.subtitle,noUnderLine:e.highlightOnHover,newVideosCount:e.showNewVideosCount?null===(t=null==l?void 0:l.externalMetadata)||void 0===t?void 0:t.childDashboardNewVideoCount:0};return n.createElement("div",{className:"".concat(e.themeColor?v.Z.hasThemeColor:"border"," d-flex position-relative ").concat(e.className," ").concat(v.Z.widgetItem," ").concat(e.isSelected?"border-success border-2":""," ").concat(e.highlightOnHover&&!e.themeColor?"bg-light-blue-hover":""),style:e.themeColor?{"--themeColor":e.themeColor}:{},id:"".concat(e.data.id,"-").concat(i.Y.getRandomInt())},e.isSelected&&n.createElement("div",{className:"".concat(v.Z.selectedMask," border-2")}),n.createElement("div",{className:"".concat(v.Z.imagePanel," ").concat(e.isLarge?v.Z.large:"")},e.isSelected&&!e.hideCheckmark&&n.createElement("div",{className:v.Z.selected},n.createElement(r.f,{svgName:p.vn.Check,svgSize:o.S.Large,textVariant:"white",variant:"green"})),n.createElement("div",{className:"".concat(v.Z.image," ").concat(e.imageClassName),style:e.coverUrl?{backgroundImage:"url('".concat(a,"')")}:{}}),!e.hideFallback&&n.createElement(s.oy,{type:s.mS.Subject,extraClasses:e.isLarge?v.Z.large:""})),e.isComingSoon?n.createElement(y,Object.assign({},c)):n.createElement(f,Object.assign({},c)))}function h(e){var t,a=e.getChildAppLink?e.getChildAppLink(e.data):null;return n.createElement(n.Fragment,null,a?n.createElement(l.F,{className:v.Z.appLink,appLink:a,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,appLinkOptions:null===(t=e.getChildAppLinkOptions)||void 0===t?void 0:t.call(e)},n.createElement(b,Object.assign({},e))):n.createElement(b,Object.assign({},e)))}},43741:(e,t,a)=>{a.d(t,{M:()=>c,Q:()=>o});var n=a(32735),i=a(45157),l=a(5465),r=a(92038);function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=Array(t);a<t;a++)n[a]=e[a];return n}var o=function(){var e,t,a=(e=n.useState(i.Y.getRandomInt(5)+3+"rem"),t=1,function(e){if(Array.isArray(e))return e}(e)||function(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var n,i,l,r,s=[],o=!0,c=!1;try{if(l=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;o=!1}else for(;!(o=(n=l.call(a)).done)&&(s.push(n.value),s.length!==t);o=!0);}catch(e){c=!0,i=e}finally{try{if(!o&&null!=a.return&&(r=a.return(),Object(r)!==r))return}finally{if(c)throw i}}return s}}(e,t)||function(e,t){if(e){if("string"==typeof e)return s(e,t);var a={}.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?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.")}())[0];return n.createElement("div",{className:"border d-flex position-relative me-2 ".concat(r.Z.widgetItem)},n.createElement("div",{className:r.Z.imagePanel}),n.createElement("div",{className:"px-2",style:{width:a}}),n.createElement("div",{className:r.Z.partialIcon},n.createElement(l.oy,{type:l.mS.Subject})))},c=function(){return n.createElement("div",{className:"border d-flex position-relative me-2 ".concat(r.Z.widgetItem)},n.createElement("div",{className:"".concat(r.Z.partialLargeImage)}),n.createElement("div",{className:"px-2"}),n.createElement("div",{className:r.Z.partialIcon},n.createElement(l.oy,{type:l.mS.Subject,extraClasses:r.Z.partialLargeFallback})))}},91028:(e,t,a)=>{a.d(t,{V:()=>c});var n=a(32735),i=a(65858),l=a(2192),r=a(52641),s=a(2284),o=a(40424),c=n.memo((function(e){var t,a,c,m,d,u,p,v=e.data.id===o.OL.ClassificationDirectory,g=(null===(t=e.data)||void 0===t?void 0:t.status)===s.W.ComingSoon,y=function(e,t){var a;if((null==t?void 0:t.length)>=r._.MULTI_PRESENTATION_THRESHOLD)return null===(a=null==t?void 0:t.find((function(t){return t.id===e})))||void 0===a?void 0:a.name}(e.data.presentationId,null==e?void 0:e.availablePresentations),f=Object.assign(Object.assign({},e.analyticsData),{id:(null===(a=e.analyticsData)||void 0===a?void 0:a.id)||(null===(c=e.data)||void 0===c?void 0:c.id),name:null===(m=e.data)||void 0===m?void 0:m.name,presentationId:(null===(d=e.analyticsData)||void 0===d?void 0:d.presentationId)||e.data.presentationId,comingSoon:!!g}),b=Object.assign(Object.assign({location:i.LZ.ClassificationListItem,entity:i.py.Classification},e.analyticsOptions),{actionType:i.Vw.Click,descriptor:i._S.Cover});return n.createElement(l.Q,Object.assign({},e,{analyticsData:f,analyticsOptions:b,coverUrl:null===(u=e.data.cover)||void 0===u?void 0:u.url,subtitle:(null===(p=e.getSubtitle)||void 0===p?void 0:p.call(e,e.data))||y,isComingSoon:g,themeColor:v?e.themeColor:""}))}))},9513:(e,t,a)=>{a.d(t,{Ml:()=>i.M,Qh:()=>i.Q,Vz:()=>n.V});var n=a(91028),i=a(43741),l=(a(32735),a(65858));a(36848),a(83914),a(83345),a(35223),a(92038),l.Vw.Click,l.py.UserSetting,l._S.Tile,a(2786),l.Vw.Click,l.py.Url,l._S.Tile},2284:(e,t,a)=>{var n;a.d(t,{W:()=>n}),function(e){e.Draft="Draft",e.ComingSoon="ComingSoon",e.Published="Published"}(n||(n={}))},84231:(e,t,a)=>{a.d(t,{Z:()=>n});const n={playlistItem:"CaRJx",playlistItemGradient:"BI7p2",playlistMetadata:"eDk1l",partialHeading:"w4lWh",ownerAvatarContainer:"JImqE"}},92038:(e,t,a)=>{a.d(t,{Z:()=>n});const n={appLink:"fFjKN",name:"A_by9",selectedMask:"xSQtR",widgetItem:"Ys9W_",hasThemeColor:"DX2ua",text:"JfAoy",imagePanel:"aUNDc",partialLargeImage:"RuLxv",selected:"BViJb",image:"LkTep",dragHandle:"CJqvP",large:"R5clw",comingSoonPanel:"Wa2PG",newVideos:"s61h8",editSubjectsItem:"gGNFD",allSubjectsItem:"IHdlJ",logoContainer:"Nzaes",draggingItem:"zUOye",partialLargeFallback:"FmJP9",partialIcon:"sdZuo"}},68050:(e,t,a)=>{a.d(t,{Z:()=>c});var n=a(95685),i=a.n(n),l=a(32735),r=a(46304),s=a(74512);const o=l.forwardRef((({bsPrefix:e,className:t,as:a="div",...n},l)=>{const o=(0,r.vE)(e,"row"),c=(0,r.pi)(),m=(0,r.zG)(),d=`${o}-cols`,u=[];return c.forEach((e=>{const t=n[e];let a;delete n[e],null!=t&&"object"==typeof t?({cols:a}=t):a=t;const i=e!==m?`-${e}`:"";null!=a&&u.push(`${d}${i}-${a}`)})),(0,s.jsx)(a,{ref:l,...n,className:i()(t,o,...u)})}));o.displayName="Row";const c=o},82602:(e,t,a)=>{a.d(t,{WU:()=>c});var n=["second","minute","hour","day","week","month","year"],i=["秒","分钟","小时","天","周","个月","年"],l={},r=function(e,t){l[e]=t},s=[60,60,24,7,365/7/12,12];function o(e){return e instanceof Date?e:!isNaN(e)||/^\d+$/.test(e)?new Date(parseInt(e)):(e=(e||"").trim().replace(/\.\d+/,"").replace(/-/,"/").replace(/-/,"/").replace(/(\d)T(\d)/,"$1 $2").replace(/Z/," UTC").replace(/([+-]\d\d):?(\d\d)/," $1$2"),new Date(e))}var c=function(e,t,a){var n=function(e,t){return(+(t?o(t):new Date)-+o(e))/1e3}(e,a&&a.relativeDate);return function(e,t){for(var a=e<0?1:0,n=e=Math.abs(e),i=0;e>=s[i]&&i<s.length;i++)e/=s[i];return(e=Math.floor(e))>(0==(i*=2)?9:1)&&(i+=1),t(e,i,n)[a].replace("%s",e.toString())}(n,function(e){return l[e]||l.en_US}(t))};r("en_US",(function(e,t){if(0===t)return["just now","right now"];var a=n[Math.floor(t/2)];return e>1&&(a+="s"),[e+" "+a+" ago","in "+e+" "+a]})),r("zh_CN",(function(e,t){if(0===t)return["刚刚","片刻后"];var a=i[~~(t/2)];return[e+" "+a+"前",e+" "+a+"后"]}))}}]);
2
+ //# sourceMappingURL=7293-35871fc150-lite.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scripts/7293-35871fc150-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/apps/playlists/components/playlist-list/PartialPlaylistList.tsx","file:///app/packages/libs/shared/src/apps/playlists/components/playlist-count/PlaylistCount.tsx","file:///app/packages/libs/shared/src/apps/playlists/components/playlist-list/PlaylistOwnerAvatar.tsx","file:///app/packages/libs/shared/src/apps/playlists/components/playlist-list/PlaylistItem.tsx","file:///app/packages/libs/shared/src/apps/playlists/components/playlist-list/PlaylistList.tsx","file:///app/packages/libs/shared/src/apps/subjects/components/hero-video/hero-video.scss","file:///app/packages/libs/shared/src/apps/subjects/components/hero-video/HeroVideo.tsx","file:///app/packages/libs/shared/src/components/series-tall-poster/series-tall-poster.scss","file:///app/packages/libs/shared/src/components/series-tall-poster/SeriesTallPoster.tsx","file:///app/packages/libs/shared/src/components/widgets/items/subject-widget-item/CoverPill.tsx","file:///app/packages/libs/shared/src/components/widgets/items/subject-widget-item/PartialSubjectWidgetItem.tsx","file:///app/packages/libs/shared/src/components/widgets/items/subject-widget-item/SubjectWidgetItem.tsx","file:///app/packages/libs/shared/src/components/widgets/items/subject-widget-item/EditSubjectsWidgetLink.tsx","file:///app/packages/libs/shared/src/components/widgets/items/subject-widget-item/AllSubjectsWidgetLink.tsx","file:///app/packages/libs/shared/src/enums/ClassificationStatus.ts","file:///app/packages/libs/shared/src/apps/playlists/components/playlist-list/playlist.scss","file:///app/packages/libs/shared/src/components/widgets/items/subject-widget-item/cover-pill.scss","file:///app/node_modules/react-bootstrap/esm/Row.js","file:///app/node_modules/timeago.js/esm/lang/en_US.js","file:///app/node_modules/timeago.js/esm/lang/zh_CN.js","file:///app/node_modules/timeago.js/esm/register.js","file:///app/node_modules/timeago.js/esm/utils/date.js","file:///app/node_modules/timeago.js/esm/format.js","file:///app/node_modules/timeago.js/esm/index.js"],"sourcesContent":["import * as React from 'react';\nimport { Col, Row } from 'react-bootstrap';\n\nimport styles from './playlist.scss';\n\ninterface PartialPlaylistListProps {\n numItems?: number;\n itemClassName?: string;\n showHeading?: boolean;\n}\n\nPartialPlaylistList.defaultProps = {\n numItems: 8\n};\n\nexport function PartialPlaylistList(props: PartialPlaylistListProps): JSX.Element {\n const PARTIAL_PLAYLISTS = [...Array(props.numItems)];\n\n const className = props.itemClassName || '';\n\n return (\n <>\n {props.showHeading && <div className={`${styles.partialHeading} mb-1 partial-loading-background`} />}\n <Row className='mx-n1 mb-n2'>\n {PARTIAL_PLAYLISTS.map((p, idx) => (\n <Col key={idx} xs={6} sm={4} lg={3} className={`${className} px-1 pb-2`}>\n <div className={`${styles.playlistItem} partial-loading-background rounded-3`} />\n </Col>\n ))}\n </Row>\n </>\n );\n}","import React from 'react';\n\nimport { Text } from 'libs/shared/components/text/Text';\nimport { Playlist } from 'libs/shared/interfaces';\n\nconst namespace = 'playlists.playlistCount';\n\nfunction getCount(playlist: Playlist): number | false {\n if (!playlist)\n return false;\n\n const videos = playlist.videos?.count ?? 0;\n const interactives = playlist.interactives?.count ?? 0;\n const clips = playlist.clips?.count ?? 0;\n\n return videos + interactives + clips;\n}\n\ninterface PlaylistCountProps {\n playlist: Playlist;\n}\n\nexport function PlaylistCount(props: PlaylistCountProps): JSX.Element {\n const count = getCount(props.playlist);\n\n if (count === false || Number.isNaN(count))\n return <></>;\n\n return (\n <span className='text-shadow font-size-sm'>\n <Text namespace={namespace} phrase='count' options={{ smartCount: count }} />\n </span>\n );\n}","import * as React from 'react';\n\nimport { Avatar } from 'libs/shared/components/avatar/Avatar';\nimport { ClickViewAvatar } from 'libs/shared/components/clickview-avatar/ClickViewAvatar';\nimport { CurrentUser, Playlist } from 'libs/shared/interfaces';\nimport { UserHelper } from 'libs/shared/utils/UserHelper';\n\ninterface PlaylistOwnerAvatarProps {\n playlist: Playlist;\n imageCdnUrl: string;\n currentUser?: CurrentUser;\n}\n\nexport function PlaylistOwnerAvatar(props: PlaylistOwnerAvatarProps): JSX.Element {\n const { _liteOwner } = props.playlist;\n\n if (props.playlist._isClickViewCurated?.value)\n return (\n <ClickViewAvatar />\n );\n\n if (!_liteOwner?.id || !props.currentUser?.id)\n return <></>;\n\n const currentUserIsOwner = _liteOwner.id.toString() === props.currentUser.id.toString();\n\n if (currentUserIsOwner)\n return <></>;\n\n const url = typeof _liteOwner.avatar === 'string' ? _liteOwner.avatar : _liteOwner.avatar?.url;\n\n return (\n <Avatar\n imageUrl={url}\n imageCdnUrl={props.imageCdnUrl}\n initials={UserHelper.getInitials(_liteOwner.name, _liteOwner.surname)}\n />\n );\n}","import * as React from 'react';\nimport { format } from 'timeago.js';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { AnalyticsOptions, EntityType, HashObject } from 'libs/analytics/interfaces';\n\nimport { PlaylistCount } from 'libs/shared/apps/playlists/components/playlist-count/PlaylistCount';\nimport { PlaylistOwnerAvatar } from 'libs/shared/apps/playlists/components/playlist-list/PlaylistOwnerAvatar';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { AudienceLabel } from 'libs/shared/components/audience-label/AudienceLabel';\nimport { BaseImage } from 'libs/shared/components/image/BaseImage';\nimport { ImageFallback, ImageFallbackType } from 'libs/shared/components/image/ImageFallback';\nimport { ImageSize, ResizeType } from 'libs/shared/enums/Images';\nimport { useMergeAudiences } from 'libs/shared/hooks/UseMergeAudiences';\nimport { CurrentUser, Playlist, PresentationAudience } from 'libs/shared/interfaces';\nimport { getBgColorClass } from 'libs/shared/utils/getBgColorClass';\nimport { ImageHelper } from 'libs/shared/utils/ImageHelper';\n\nimport styles from './playlist.scss';\n\nconst namespace = 'playlists.playlistList';\n\nexport type PlaylistItemStyle = 'square' | 'round' | 'round-left';\n\nexport interface PlaylistItemProps {\n data: Playlist;\n appLink: Core.AppLink;\n currentUser?: CurrentUser;\n presentationAudiences?: PresentationAudience[];\n bgColourClassNames?: string[];\n titleClassName?: string;\n imageCdnUrl?: string;\n itemStyle?: PlaylistItemStyle;\n showCount?: boolean;\n showOwner?: boolean;\n showFallbackImage?: boolean;\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n audienceLabelClass?: string;\n}\n\nPlaylistItem.defaultProps = {\n itemStyle: 'square'\n};\n\nexport function PlaylistItem(props: PlaylistItemProps): JSX.Element {\n const imageUrl = ImageHelper.createUrl(props.data.cover && props.data.cover.url, {\n size: ImageSize.Medium,\n resizeType: ResizeType.Cover\n });\n\n const audiences = props.data.subjectPresentationAudiences &&\n props.data.subjectPresentationAudiences.data;\n\n const mergedAudience = useMergeAudiences(audiences, props.presentationAudiences);\n\n let className = styles.playlistItem;\n\n const showImage = !!imageUrl || !!props.showFallbackImage;\n\n if (showImage)\n className += ` ${styles.playlistItemGradient}`;\n\n if (!showImage && props.bgColourClassNames)\n className += ` ${styles.playlistItem} ${getBgColorClass(props.data.name, props.bgColourClassNames)}`;\n\n if (props.itemStyle === 'round')\n className += ` rounded-3 overflow-hidden`;\n\n if (props.itemStyle === 'round-left')\n className += ` rounded-start-lg overflow-hidden`;\n\n const analyticsData = { ...props.analyticsData,\n id: props.data?.id,\n name: props.data?.name\n };\n\n const analyticsOptions = {\n ...props.analyticsOptions,\n entity: EntityType.Playlist\n };\n\n const getTitle = () => {\n if (!props.data.contentModifiedDate || props.data._isClickViewCurated?.value)\n return '';\n\n return LanguageService.getPhrase(namespace, 'lastUpdated', {\n timeago: format(DateHelper.convertUTCToLocal(props.data.contentModifiedDate))\n });\n };\n\n return (\n <AppLink\n appLink={props.appLink}\n analyticsData={analyticsData}\n analyticsOptions={analyticsOptions}\n title={getTitle()}\n >\n <BaseImage data={imageUrl} alt={props.data.name} className={className}>\n {!!props.showFallbackImage && <ImageFallback type={ImageFallbackType.Playlist} />}\n <div className={`text-white ${styles.playlistMetadata}`}>\n {!!props.showCount && (\n <PlaylistCount playlist={props.data} />\n )}\n <h5 className={`mb-0 ${props.titleClassName || ''}`}><span className='text-shadow clamp-2'>{props.data.name}</span></h5>\n {!!audiences && !!audiences.length && !!mergedAudience &&\n <AudienceLabel\n className={`${props.audienceLabelClass ? props.audienceLabelClass : ''} mt-1`}\n audience={mergedAudience}\n border='white'\n />\n }\n </div>\n {!!props.showOwner && !!props.imageCdnUrl &&\n <div className={styles.ownerAvatarContainer}>\n <PlaylistOwnerAvatar\n playlist={props.data}\n currentUser={props.currentUser}\n imageCdnUrl={props.imageCdnUrl}\n />\n </div>\n }\n </BaseImage>\n </AppLink>\n );\n}","import * as React from 'react';\nimport { Col, Row } from 'react-bootstrap';\n\nimport { Core } from 'libs/common/core';\n\nimport { AnalyticsOptions, ClickDescriptor, EntityType, HashObject, LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { CurrentUser, Playlist, PresentationAudience } from 'libs/shared/interfaces';\n\nimport { PlaylistItem, PlaylistItemStyle } from './PlaylistItem';\n\ninterface PlaylistListProps {\n playlists: Playlist[];\n getPlaylistAppLink: (playlist: Playlist) => Core.AppLink;\n currentUser?: CurrentUser;\n presentationAudiences?: PresentationAudience[];\n itemContainerClassName?: string;\n itemTitleClassName?: string;\n bgColourClassNames?: string[];\n itemStyle?: PlaylistItemStyle;\n imageCdnUrl?: string;\n showCount?: boolean;\n showOwner?: boolean;\n showFallbackImage?: boolean;\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n extraPlaylistItem?: JSX.Element;\n}\n\nconst analyticsOptions: AnalyticsOptions = {\n actionType: UserAction.Click,\n entity: EntityType.Playlist,\n location: LocationContext.PlaylistListItem,\n descriptor: ClickDescriptor.Cover\n};\n\nexport function PlaylistList(props: PlaylistListProps): JSX.Element {\n return (\n <Row as='ul' className='list-unstyled mx-n1'>\n {props.extraPlaylistItem && (\n <Col as='li' key='extra-playlist-item' xs={6} sm={4} lg={3} className={`mb-2 px-1 ${props.itemContainerClassName ? props.itemContainerClassName : ''}`}>\n {props.extraPlaylistItem}\n </Col>\n )}\n\n {props.playlists.map(p => (\n <Col as='li' key={p.id} xs={6} sm={4} lg={3} className={`mb-2 px-1 ${props.itemContainerClassName ? props.itemContainerClassName : ''}`}>\n <PlaylistItem\n data={p}\n appLink={props.getPlaylistAppLink(p)}\n imageCdnUrl={props.imageCdnUrl}\n currentUser={props.currentUser}\n presentationAudiences={props.presentationAudiences}\n bgColourClassNames={props.bgColourClassNames}\n showCount={props.showCount}\n showOwner={props.showOwner}\n showFallbackImage={props.showFallbackImage}\n titleClassName={props.itemTitleClassName}\n itemStyle={props.itemStyle}\n analyticsData={props.analyticsData}\n analyticsOptions={{ ...props.analyticsOptions, ...analyticsOptions }}\n />\n </Col>\n ))}\n </Row>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"partialHeroThumbnail\":\"z0_Sm\",\"partialSeriesText\":\"xuWtC\",\"partialVideoTitleText\":\"fXYdC\",\"partialBadge\":\"FlUpr\",\"partialDescription\":\"YgWxP\",\"partialSubject\":\"QBKwQ\",\"partialHeading\":\"S__E9\",\"guidance\":\"Ax9h2\",\"responsiveGuidance\":\"s3W_4\",\"description\":\"zejMP\",\"details\":\"MRyVe\"};","import React from 'react';\nimport { Col, Row } from 'react-bootstrap';\n\nimport { Core } from 'libs/common/core';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AnalyticsOptions, HashObject, LocationContext } from 'libs/analytics/interfaces';\n\nimport { AudienceLabel } from 'libs/shared/components/audience-label/AudienceLabel';\nimport { Badge, BadgeType } from 'libs/shared/components/badges/Badge';\nimport { BadgeListContainer } from 'libs/shared/components/badges/BadgeListContainer';\nimport { VideoThumbnail } from 'libs/shared/components/thumbnails/video/VideoThumbnail';\nimport { VideoItemGuidance } from 'libs/shared/components/video-list/components/video-guidance/VideoItemGuidance';\nimport { VideoItemActions } from 'libs/shared/components/video-list/components/video-item-actions/VideoItemActions';\nimport { VideoItemTitle } from 'libs/shared/components/video-list/components/video-item-title/VideoItemTitle';\nimport { VideoSubText, VideoSubTextType } from 'libs/shared/components/video-sub-text/VideoSubText';\nimport { ImageSize } from 'libs/shared/enums/Images';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { ThumbnailTextPosition } from 'libs/shared/enums/ThumbnailTextPosition';\nimport { useMergeAudiences } from 'libs/shared/hooks/UseMergeAudiences';\nimport { CanFavouriteFunc, FavouriteFunc, PresentationAudience, Video, YearGroup } from 'libs/shared/interfaces';\nimport { GetVideoAppLinkOptions } from 'libs/shared/interfaces/VideoAppLinkOptions';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport styles from './hero-video.scss';\n\ninterface HeroVideoProps {\n video: Video;\n presentationAudiences: PresentationAudience[];\n showVideoGuidance: boolean;\n getVideoAppLink: (video: Video, opts: GetVideoAppLinkOptions) => Core.AppLink;\n subTextAppLink: Core.AppLink;\n hideInteractiveBadge?: boolean;\n setFavourite?: FavouriteFunc;\n canFavourite?: CanFavouriteFunc;\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n newDurationStyle?: boolean;\n badgePosition?: 'thumbnail' | 'info-panel';\n yearGroups: YearGroup[];\n companyLogoFallbackUrl?: string;\n subTextType?: VideoSubTextType;\n imageCdnUrl: string;\n isPlugin: boolean;\n getInteractiveGuidanceAppLink?: (id: string, type: MasterType) => Core.AppLink;\n getResourceGuidanceAppLink?: (id: string, type: MasterType) => Core.AppLink;\n getClassroomGuideAppLink?: (id: string, type: MasterType) => Core.AppLink;\n}\n\nHeroVideo.defaultProps = {\n newDurationStyle: true,\n badgePosition: 'thumbnail'\n};\n\nexport function HeroVideo(props: HeroVideoProps): JSX.Element {\n const { video, presentationAudiences, getVideoAppLink, subTextAppLink, hideInteractiveBadge } = props;\n\n const videoAudiences = video?.subjectPresentationAudiences?.data;\n const mergedAudience = useMergeAudiences(videoAudiences, presentationAudiences);\n\n const analyticsOptions = AnalyticsHelper.mergeOptions(props.analyticsOptions, {\n location: LocationContext.ClassificationHero,\n entity: VideoHelper.getAnalyticsEntity(video)\n });\n\n const containerRef = React.useRef();\n \n if (!video)\n return <></>;\n\n return (\n <Row>\n <Col xs={12} md={6}>\n <div ref={containerRef} >\n <VideoThumbnail\n analyticsData={props.analyticsData}\n analyticsOptions={analyticsOptions}\n video={video}\n appLink={getVideoAppLink?.(props.video, {})}\n imageOptions={{ size: ImageSize.Medium }}\n textPosition={ThumbnailTextPosition.Independent}\n type='static'\n setFavourite={props.setFavourite}\n canFavourite={props.canFavourite}\n audience={props.badgePosition === 'thumbnail' ? mergedAudience : null}\n newDurationStyle={props.newDurationStyle}\n hideRating={props.badgePosition === 'thumbnail' ? !!mergedAudience : true}\n companyLogoFallbackUrl={props.companyLogoFallbackUrl}\n subTextType='none'\n imageCdnUrl={props.imageCdnUrl}\n isPlugin={props.isPlugin}\n />\n </div>\n </Col>\n <Col xs={12} md={6} className={`${styles.details} position-relative`}>\n <div className='d-flex justify-content-between'>\n <div>\n <VideoSubText\n type={props.subTextType}\n analyticsData={props.analyticsData}\n analyticsOptions={analyticsOptions}\n video={video}\n appLink={subTextAppLink}\n className='text-reset'\n />\n <VideoItemTitle\n video={video}\n analyticsData={props.analyticsData}\n analyticsOptions={analyticsOptions}\n appLink={getVideoAppLink?.(props.video, {})}\n textClassName='h4'\n yearGroups={props.yearGroups}\n />\n </div>\n <VideoItemActions\n analyticsData={props.analyticsData}\n analyticsOptions={analyticsOptions}\n video={video}\n />\n </div>\n\n {props.badgePosition === 'info-panel' && (\n <BadgeListContainer className='pb-1'>\n {!hideInteractiveBadge && <Badge type={ BadgeType.Interactive } data={video.interactives} />}\n <Badge type={ BadgeType.Rating } data={video.rating} />\n <Badge type={ BadgeType.ProductionYear } data={video.productionYear} />\n </BadgeListContainer>\n )}\n\n <p className='mb-1'><span className={styles.description}>{video.description}</span></p>\n \n {props.badgePosition === 'info-panel' && (\n <AudienceLabel\n audience={mergedAudience}\n className='mt-1'\n border='dark'\n />\n )}\n\n {props.showVideoGuidance && (\n <VideoItemGuidance\n getClassroomGuideAppLink={props.getClassroomGuideAppLink}\n getResourceGuidanceAppLink={props.getResourceGuidanceAppLink}\n getInteractiveGuidanceAppLink={props.getInteractiveGuidanceAppLink}\n video={video}\n analyticsData={props.analyticsData}\n analyticsOptions={analyticsOptions}\n containerClassName={`d-flex ${styles.guidance}`}\n responsiveClassName={styles.responsiveGuidance}\n />\n )}\n </Col>\n </Row>\n );\n}\n\nexport function PartialHeroVideo(): JSX.Element {\n return (\n <>\n <div className={`partial-loading-background mb-2 ${styles.partialHeading}`} />\n <div className='row pb-3'>\n <div className='col-6 p1'>\n <div className={`${styles.partialHeroThumbnail} partial-loading-background rounded-3`}></div>\n </div>\n <div className='col-6 p1'>\n <div className={`partial-loading-background mb-1 ${styles.partialSeriesText}`}></div>\n <div className={`partial-loading-background my-1 ${styles.partialVideoTitleText}`}></div>\n <div className='d-flex'>\n <div className={`partial-loading-background my-1 me-1 ${styles.partialBadge}`}></div>\n <div className={`partial-loading-background my-1 ms-1 ${styles.partialBadge}`}></div>\n </div>\n <div className={`partial-loading-background my-1 ${styles.partialDescription}`}></div>\n <div className={`partial-loading-background mt-2 ${styles.partialSubject}`}></div>\n </div>\n </div>\n </>\n );\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"labelContainer\":\"ieonz\",\"hoverActive\":\"vqHCl\",\"mask\":\"qEOPN\",\"largeHoverTitle\":\"ZYApF\",\"smallHoverTitle\":\"qcfHO\",\"description\":\"jnkdI\",\"largeHoverDescription\":\"Uh4gM\",\"hasTableOfContents\":\"RdHkK\",\"smallHoverDescription\":\"TiqqV\"};","import React from 'react';\n\nimport { AudienceLabel } from 'libs/shared/components/audience-label/AudienceLabel';\nimport { Badge, BadgeType } from 'libs/shared/components/badges/Badge';\nimport { BaseImage } from 'libs/shared/components/image/BaseImage';\nimport { ImageFallback, ImageFallbackType } from 'libs/shared/components/image/ImageFallback';\nimport { ImageSize, ImageType } from 'libs/shared/enums/Images';\nimport { useHoverIntent } from 'libs/shared/hooks/UseHover';\nimport { useMergeAudiences } from 'libs/shared/hooks/UseMergeAudiences';\nimport { PresentationAudience, Series } from 'libs/shared/interfaces';\n\nimport styles from './series-tall-poster.scss';\n\ninterface SeriesTallPosterHoverOverlay {\n series: Series;\n mergedAudience: PresentationAudience;\n isSmall?: boolean;\n hasTableOfContents?: boolean;\n}\n\nfunction SeriesTallPosterHoverOverlay(props: SeriesTallPosterHoverOverlay): JSX.Element {\n return (\n <div className={`py-3 mx-2 px-2 rounded bg-white text-center ${styles.mask} d-flex flex-column`}>\n <h3 className={`fw-semibold mb-0 ${styles.hoverTitle} ${props.isSmall ? styles.smallHoverTitle : styles.largeHoverTitle}`}>\n <span className='clamp-3'>\n {props.series.name}\n </span>\n </h3>\n\n {!!props.series.description && (\n <p className={`${props.hasTableOfContents ? styles.hasTableOfContents : ''} ${styles.hoverDescription} ${props.isSmall ? styles.smallHoverDescription : styles.largeHoverDescription} mb-0`}>{props.series.description}</p>\n )}\n\n {props.mergedAudience\n ? <AudienceLabel audience={props.mergedAudience} border='dark' className='mt-2'/>\n : <Badge type={BadgeType.Rating} data={props.series.rating} className='mt-2' />\n }\n </div>\n\n );\n}\n\ninterface SeriesTallPosterMaskProps {\n series: Series;\n presentationAudiences: PresentationAudience[];\n preloadImage: boolean;\n imageClass?: string;\n isSmall?: boolean;\n hasTableOfContents?: boolean;\n}\n\nexport function SeriesTallPoster(props: SeriesTallPosterMaskProps): JSX.Element {\n const [ hoverRef, isHovering ] = useHoverIntent<HTMLDivElement>({ className: styles.hoverActive });\n \n const audiences = props.series && props.series.subjectPresentationAudiences &&\n props.series.subjectPresentationAudiences.data || [];\n\n const mergedAudience = useMergeAudiences(audiences, props.presentationAudiences);\n const displayAudience = !!(audiences && audiences.length && mergedAudience);\n\n return (\n <div ref={hoverRef}>\n <BaseImage\n data={props.series.tallPoster}\n alt={props.series.name}\n imageType={ImageType.TallPosters}\n preload={props.preloadImage}\n imageOptions={{ size: ImageSize.Large }}\n imageClassName={props.imageClass ? props.imageClass : 'rounded-3'}\n >\n {isHovering && (\n <SeriesTallPosterHoverOverlay\n isSmall={props.isSmall}\n series={props.series}\n mergedAudience={audiences && audiences.length ? mergedAudience : null}\n hasTableOfContents={props.hasTableOfContents}\n />\n )}\n \n <ImageFallback type={ImageFallbackType.Series} />\n <div className={`position-absolute text-white text-shadow ${styles.labelContainer}`}>\n {displayAudience\n ? <AudienceLabel audience={mergedAudience} border='white' />\n : <Badge type={BadgeType.Rating} data={props.series.rating} />\n }\n </div>\n </BaseImage>\n </div>\n );\n}\n","import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { RandomHelper } from 'libs/common/react/utils/RandomHelper';\n\nimport { AnalyticsOptions, HashObject } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { IconCircle } from 'libs/shared/components/icon-circle/IconCircle';\nimport { ImageFallback, ImageFallbackType } from 'libs/shared/components/image/ImageFallback';\nimport { SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { ImageSize } from 'libs/shared/enums/Images';\nimport { BaseObject, Classification, Presentation } from 'libs/shared/interfaces';\nimport { ImageHelper } from 'libs/shared/utils/ImageHelper';\nimport { MasterTypeHelper } from 'libs/shared/utils/MasterTypeHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './cover-pill.scss';\n\nconst namespace = 'shared.subjectWidgetItem';\n\ninterface NamePanelProps {\n name: string;\n multiline?: boolean;\n subtitle?: string;\n noUnderLine?: boolean;\n newVideosCount?: number;\n}\n\nconst ComingSoonNamePanel = ({ name, multiline, noUnderLine }: NamePanelProps) => {\n let wrapperClassName = `${styles.comingSoonPanel} \n d-flex flex-column align-items-center justify-content-center px-3 text-center`;\n\n let textClassName = '';\n\n if (!multiline) {\n wrapperClassName += ' text-nowrap';\n textClassName += ' text-truncate';\n } else {\n textClassName += ` ${styles.clamped} clamp-2`;\n }\n\n return (\n <div className={wrapperClassName}>\n <small className='text-secondary'><Text namespace={namespace} phrase='comingSoon' /></small>\n <p className={`${noUnderLine ? '' : styles.name} h6`}><span className={textClassName}>{name}</span></p>\n </div>\n );\n};\n\nconst NormalNamePanel = ({ name, multiline, subtitle, noUnderLine, newVideosCount }: NamePanelProps) => {\n let wrapperClassName = 'px-3 d-flex flex-column justify-content-center';\n let textClassName = `${noUnderLine ? '' : styles.name} h6`;\n\n if (!multiline) {\n wrapperClassName += ' text-nowrap text-truncate';\n textClassName += ' text-truncate mb-0';\n } else {\n textClassName += ` ${newVideosCount ? 'clamp-2' : 'clamp-3'} text-start`;\n }\n\n return (\n <div className={wrapperClassName}>\n {subtitle && <div className={`text-secondary clamp-1 ${styles.text}`}>{subtitle}</div>}\n <div className={textClassName} title={name}>{name}</div>\n {!!newVideosCount && (\n <div className={`fw-semibold d-inline-block rounded-pill px-2 mt-1 bg-light-green w-fit h-fit text-green ${styles.newVideos}`}>\n <Text namespace={namespace} phrase='newVideos' options={{ smartCount: newVideosCount }} />\n </div>\n )}\n </div>\n );\n};\n\nexport interface CoverPillWidgetItemProps<T extends BaseObject> {\n data: T;\n getChildAppLink?: (data: T) => Core.AppLink;\n getChildAppLinkOptions?: () => Core.AppLinkOptions;\n isLarge?: boolean;\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n availablePresentations?: Presentation[];\n getSubtitle?: (data: T) => string;\n multiline?: boolean;\n // set to true it will highlight on hover and also remove the hover text underline\n highlightOnHover?: boolean;\n showNewVideosCount?: boolean;\n themeColor?: string;\n}\n\ninterface CoverPillWidgetContentProps<T> extends CoverPillWidgetItemProps<T> {\n coverUrl?: string;\n subtitle?: string;\n isComingSoon?: boolean;\n className?: string;\n imageClassName?: string;\n isSelected?: boolean;\n hideFallback?: boolean;\n hideCheckmark?: boolean;\n themeColor?: string;\n}\n\nexport function CoverPillWidgetContent(props: CoverPillWidgetContentProps<BaseObject>): JSX.Element {\n const coverUrl = ImageHelper.createUrl(props.coverUrl, { size: props.isLarge ? ImageSize.Medium : ImageSize.Small });\n\n let classification: Classification | undefined = undefined;\n if (MasterTypeHelper.isClassification(props.data)) {\n classification = props.data;\n }\n\n const childProps = {\n name: props.data.name,\n multiline: props.isLarge || props.multiline,\n subtitle: props.subtitle,\n noUnderLine: props.highlightOnHover,\n newVideosCount: props.showNewVideosCount ? classification?.externalMetadata?.childDashboardNewVideoCount : 0\n };\n\n return (\n <div\n className={`${props.themeColor ? styles.hasThemeColor : 'border'} d-flex position-relative ${props.className} ${styles.widgetItem} ${props.isSelected ? 'border-success border-2' : ''} ${props.highlightOnHover && !props.themeColor ? 'bg-light-blue-hover' : ''}`}\n style={props.themeColor ? { '--themeColor': props.themeColor } as unknown as React.CSSProperties : {}}\n id={`${props.data.id}-${RandomHelper.getRandomInt()}`}\n >\n {props.isSelected && (\n <div className={`${styles.selectedMask} border-2`} />\n )}\n\n <div className={`${styles.imagePanel} ${props.isLarge ? styles.large : ''}`}>\n {props.isSelected && !props.hideCheckmark && (\n <div className={styles.selected}>\n <IconCircle svgName={cvSvgLibrary.Check} svgSize={SvgContainerSize.Large} textVariant='white' variant='green' />\n </div>\n )}\n\n <div\n className={`${styles.image} ${props.imageClassName}`}\n style={props.coverUrl ? { backgroundImage: `url('${coverUrl}')` } : {}}\n />\n {!props.hideFallback && (\n <ImageFallback\n type={ImageFallbackType.Subject}\n extraClasses={props.isLarge ? styles.large : ''}\n />\n )}\n </div>\n\n {props.isComingSoon\n ? <ComingSoonNamePanel {...childProps} />\n : <NormalNamePanel {...childProps} />\n }\n </div>\n );\n}\n\nexport function CoverPillWidgetContentWrapper(props: CoverPillWidgetContentProps<BaseObject>) {\n const appLink = props.getChildAppLink ? props.getChildAppLink(props.data) : null;\n\n return (\n <>\n {appLink ? (\n <AppLink\n className={styles.appLink}\n appLink={appLink}\n analyticsData={props.analyticsData}\n analyticsOptions={props.analyticsOptions}\n appLinkOptions={props.getChildAppLinkOptions?.()}\n >\n <CoverPillWidgetContent {...props} />\n </AppLink>\n ) : (<CoverPillWidgetContent {...props} />)\n }\n </>\n );\n}","import * as React from 'react';\n\nimport { RandomHelper } from 'libs/common/react/utils/RandomHelper';\n\nimport { ImageFallback, ImageFallbackType } from 'libs/shared/components/image/ImageFallback';\n\nimport styles from './cover-pill.scss';\n\nexport const PartialSubjectWidgetItem = () => {\n const [width] = React.useState(RandomHelper.getRandomInt(5) + 3 + 'rem');\n\n return (\n <div className={`border d-flex position-relative me-2 ${styles.widgetItem}`}>\n <div className={styles.imagePanel} />\n <div className='px-2' style={{ width }} />\n <div className={styles.partialIcon}>\n <ImageFallback type={ImageFallbackType.Subject} />\n </div>\n </div>\n );\n};\n\nexport const PartialLargeSubjectWidgetItem = () => {\n return (\n <div className={`border d-flex position-relative me-2 ${styles.widgetItem}`}>\n <div className={`${styles.partialLargeImage}`} />\n <div className='px-2' />\n <div className={styles.partialIcon}>\n <ImageFallback type={ImageFallbackType.Subject} extraClasses={styles.partialLargeFallback} />\n </div>\n </div>\n );\n};","import * as React from 'react';\n\nimport { ClickDescriptor, EntityType, LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { CoverPillWidgetContentWrapper, CoverPillWidgetItemProps } from 'libs/shared/components/widgets/items/subject-widget-item/CoverPill';\nimport { TopicsConstants } from 'libs/shared/constants/TopicsConstants';\nimport { ClassificationStatus } from 'libs/shared/enums/ClassificationStatus';\nimport { Classification, CuratedDashboardAppLink, Presentation } from 'libs/shared/interfaces';\n\nfunction usePresentationName(presentationId: string, availablePresentations: Presentation[]): string {\n const showPresentationName = availablePresentations?.length >= TopicsConstants.MULTI_PRESENTATION_THRESHOLD;\n\n if (!showPresentationName) {\n return undefined;\n }\n\n return availablePresentations?.find(p => p.id === presentationId)?.name;\n}\n\nfunction SubjectWidgetItem(props: CoverPillWidgetItemProps<Classification>): JSX.Element {\n const isTopicDiretoryItem = props.data.id === CuratedDashboardAppLink.ClassificationDirectory;\n const isComingSoon = props.data?.status === ClassificationStatus.ComingSoon;\n const presentationName = usePresentationName(props.data.presentationId, props?.availablePresentations);\n\n const analyticsData = {\n ...props.analyticsData,\n id: props.analyticsData?.id || props.data?.id,\n name: props.data?.name,\n presentationId: props.analyticsData?.presentationId || props.data.presentationId,\n comingSoon: !!isComingSoon\n };\n\n const analyticsOptions = {\n location: LocationContext.ClassificationListItem,\n entity: EntityType.Classification,\n ...props.analyticsOptions,\n actionType: UserAction.Click,\n descriptor: ClickDescriptor.Cover\n };\n\n return (\n <CoverPillWidgetContentWrapper\n {...props}\n analyticsData={analyticsData}\n analyticsOptions={analyticsOptions}\n coverUrl={props.data.cover?.url}\n subtitle={props.getSubtitle?.(props.data) || presentationName}\n isComingSoon={isComingSoon}\n themeColor={isTopicDiretoryItem ? props.themeColor : ''}\n />\n );\n}\n\nconst Memoized = React.memo(SubjectWidgetItem);\n\nexport { Memoized as SubjectWidgetItem };","import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { AnalyticsOptions, ClickDescriptor, EntityType, HashObject, UserAction } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './cover-pill.scss';\n\ninterface EditSubjectsWidgetLinkProps {\n appLink: Core.AppLink;\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n}\n\nconst analyticsOptions: AnalyticsOptions = {\n actionType: UserAction.Click,\n entity: EntityType.UserSetting,\n descriptor: ClickDescriptor.Tile\n};\n\nexport function EditSubjectsWidgetLink(props: EditSubjectsWidgetLinkProps): JSX.Element {\n const className =\n `${styles.editSubjectsItem} d-flex position-relative px-3 justify-content-center align-items-center`;\n\n return (\n <AppLink\n appLink={props.appLink}\n className='text-decoration-none'\n analyticsData={{ ...props.analyticsData, type: 'subject-preference' }}\n analyticsOptions={ { ...props.analyticsOptions, ...analyticsOptions }}\n >\n <div className={className}>\n <SvgContainer svgName={cvSvgLibrary.Edit} className='me-2 align-middle d-inline-block svg-container' />\n <p className='h6 align-middle text-truncate'><Text namespace='shared.subjectWidgetItem' phrase='edit' /></p>\n </div>\n </AppLink>\n );\n}","import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { AnalyticsOptions, ClickDescriptor, EntityType, HashObject, UserAction } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { ClickViewLogoInverted } from 'libs/shared/components/svgs/clickview-logo/ClickViewLogo';\nimport { Text } from 'libs/shared/components/text/Text';\n\nimport styles from './cover-pill.scss';\n\ninterface AllSubjectsWidgetLinkProps {\n appLink: Core.AppLink;\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n}\n\nconst analyticsOptions: AnalyticsOptions = {\n actionType: UserAction.Click,\n entity: EntityType.Url,\n descriptor: ClickDescriptor.Tile\n};\n\nexport function AllSubjectsWidgetLink(props: AllSubjectsWidgetLinkProps): JSX.Element {\n const className =\n `${styles.allSubjectsItem}\n d-flex flex-column position-relative px-2\n align-items-center justify-content-center text-nowrap bg-navy`;\n\n return (\n <AppLink\n appLink={props.appLink}\n className='text-decoration-none'\n analyticsData={{ ...props.analyticsData, type: 'subject-all' }}\n analyticsOptions={ { ...props.analyticsOptions, ...analyticsOptions }}\n >\n <div className={className}>\n <div className={styles.logoContainer}>\n <ClickViewLogoInverted />\n </div>\n <p className='h6 pt-2 px-3 mb-0'><Text namespace='shared.subjectWidgetItem' phrase='all' /></p>\n </div>\n </AppLink>\n );\n}\n","// Maps to enum in SubjectApi but uses the\n// key rather than the value as SubjectsApi returns the key.\nexport enum ClassificationStatus {\n Draft = 'Draft',\n ComingSoon = 'ComingSoon',\n Published = 'Published'\n}","// extracted by mini-css-extract-plugin\nexport default {\"playlistItem\":\"CaRJx\",\"playlistItemGradient\":\"BI7p2\",\"playlistMetadata\":\"eDk1l\",\"partialHeading\":\"w4lWh\",\"ownerAvatarContainer\":\"JImqE\"};","// extracted by mini-css-extract-plugin\nexport default {\"appLink\":\"fFjKN\",\"name\":\"A_by9\",\"selectedMask\":\"xSQtR\",\"widgetItem\":\"Ys9W_\",\"hasThemeColor\":\"DX2ua\",\"text\":\"JfAoy\",\"imagePanel\":\"aUNDc\",\"partialLargeImage\":\"RuLxv\",\"selected\":\"BViJb\",\"image\":\"LkTep\",\"dragHandle\":\"CJqvP\",\"large\":\"R5clw\",\"comingSoonPanel\":\"Wa2PG\",\"newVideos\":\"s61h8\",\"editSubjectsItem\":\"gGNFD\",\"allSubjectsItem\":\"IHdlJ\",\"logoContainer\":\"Nzaes\",\"draggingItem\":\"zUOye\",\"partialLargeFallback\":\"FmJP9\",\"partialIcon\":\"sdZuo\"};","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix, useBootstrapBreakpoints, useBootstrapMinBreakpoint } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Row = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n ...props\n}, ref) => {\n const decoratedBsPrefix = useBootstrapPrefix(bsPrefix, 'row');\n const breakpoints = useBootstrapBreakpoints();\n const minBreakpoint = useBootstrapMinBreakpoint();\n const sizePrefix = `${decoratedBsPrefix}-cols`;\n const classes = [];\n breakpoints.forEach(brkPoint => {\n const propValue = props[brkPoint];\n delete props[brkPoint];\n let cols;\n if (propValue != null && typeof propValue === 'object') {\n ({\n cols\n } = propValue);\n } else {\n cols = propValue;\n }\n const infix = brkPoint !== minBreakpoint ? `-${brkPoint}` : '';\n if (cols != null) classes.push(`${sizePrefix}${infix}-${cols}`);\n });\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n ...props,\n className: classNames(className, decoratedBsPrefix, ...classes)\n });\n});\nRow.displayName = 'Row';\nexport default Row;","var EN_US = ['second', 'minute', 'hour', 'day', 'week', 'month', 'year'];\nexport default function (diff, idx) {\n if (idx === 0)\n return ['just now', 'right now'];\n var unit = EN_US[Math.floor(idx / 2)];\n if (diff > 1)\n unit += 's';\n return [diff + \" \" + unit + \" ago\", \"in \" + diff + \" \" + unit];\n}\n//# sourceMappingURL=en_US.js.map","var ZH_CN = ['秒', '分钟', '小时', '天', '周', '个月', '年'];\nexport default function (diff, idx) {\n if (idx === 0)\n return ['刚刚', '片刻后'];\n var unit = ZH_CN[~~(idx / 2)];\n return [diff + \" \" + unit + \"\\u524D\", diff + \" \" + unit + \"\\u540E\"];\n}\n//# sourceMappingURL=zh_CN.js.map","/**\n * Created by hustcc on 18/5/20.\n * Contract: i@hust.cc\n */\n/**\n * All supported locales\n */\nvar Locales = {};\n/**\n * register a locale\n * @param locale\n * @param func\n */\nexport var register = function (locale, func) {\n Locales[locale] = func;\n};\n/**\n * get a locale, default is en_US\n * @param locale\n * @returns {*}\n */\nexport var getLocale = function (locale) {\n return Locales[locale] || Locales['en_US'];\n};\n//# sourceMappingURL=register.js.map","/**\n * Created by hustcc on 18/5/20.\n * Contract: i@hust.cc\n */\nvar SEC_ARRAY = [\n 60,\n 60,\n 24,\n 7,\n 365 / 7 / 12,\n 12,\n];\n/**\n * format Date / string / timestamp to timestamp\n * @param input\n * @returns {*}\n */\nexport function toDate(input) {\n if (input instanceof Date)\n return input;\n // @ts-ignore\n if (!isNaN(input) || /^\\d+$/.test(input))\n return new Date(parseInt(input));\n input = (input || '')\n // @ts-ignore\n .trim()\n .replace(/\\.\\d+/, '') // remove milliseconds\n .replace(/-/, '/')\n .replace(/-/, '/')\n .replace(/(\\d)T(\\d)/, '$1 $2')\n .replace(/Z/, ' UTC') // 2017-2-5T3:57:52Z -> 2017-2-5 3:57:52UTC\n .replace(/([+-]\\d\\d):?(\\d\\d)/, ' $1$2'); // -04:00 -> -0400\n return new Date(input);\n}\n/**\n * format the diff second to *** time ago, with setting locale\n * @param diff\n * @param localeFunc\n * @returns\n */\nexport function formatDiff(diff, localeFunc) {\n /**\n * if locale is not exist, use defaultLocale.\n * if defaultLocale is not exist, use build-in `en`.\n * be sure of no error when locale is not exist.\n *\n * If `time in`, then 1\n * If `time ago`, then 0\n */\n var agoIn = diff < 0 ? 1 : 0;\n /**\n * Get absolute value of number (|diff| is non-negative) value of x\n * |diff| = diff if diff is positive\n * |diff| = -diff if diff is negative\n * |0| = 0\n */\n diff = Math.abs(diff);\n /**\n * Time in seconds\n */\n var totalSec = diff;\n /**\n * Unit of time\n */\n var idx = 0;\n for (; diff >= SEC_ARRAY[idx] && idx < SEC_ARRAY.length; idx++) {\n diff /= SEC_ARRAY[idx];\n }\n /**\n * Math.floor() is alternative of ~~\n *\n * The differences and bugs:\n * Math.floor(3.7) -> 4 but ~~3.7 -> 3\n * Math.floor(1559125440000.6) -> 1559125440000 but ~~1559125440000.6 -> 52311552\n *\n * More information about the performance of algebraic:\n * https://www.youtube.com/watch?v=65-RbBwZQdU\n */\n diff = Math.floor(diff);\n idx *= 2;\n if (diff > (idx === 0 ? 9 : 1))\n idx += 1;\n return localeFunc(diff, idx, totalSec)[agoIn].replace('%s', diff.toString());\n}\n/**\n * calculate the diff second between date to be formatted an now date.\n * @param date\n * @param relativeDate\n * @returns {number}\n */\nexport function diffSec(date, relativeDate) {\n var relDate = relativeDate ? toDate(relativeDate) : new Date();\n return (+relDate - +toDate(date)) / 1000;\n}\n/**\n * nextInterval: calculate the next interval time.\n * - diff: the diff sec between now and date to be formatted.\n *\n * What's the meaning?\n * diff = 61 then return 59\n * diff = 3601 (an hour + 1 second), then return 3599\n * make the interval with high performance.\n **/\nexport function nextInterval(diff) {\n var rst = 1, i = 0, d = Math.abs(diff);\n for (; diff >= SEC_ARRAY[i] && i < SEC_ARRAY.length; i++) {\n diff /= SEC_ARRAY[i];\n rst *= SEC_ARRAY[i];\n }\n d = d % rst;\n d = d ? rst - d : rst;\n return Math.ceil(d);\n}\n//# sourceMappingURL=date.js.map","import { formatDiff, diffSec } from './utils/date';\nimport { getLocale } from './register';\n/**\n * format a TDate into string\n * @param date\n * @param locale\n * @param opts\n */\nexport var format = function (date, locale, opts) {\n // diff seconds\n var sec = diffSec(date, opts && opts.relativeDate);\n // format it with locale\n return formatDiff(sec, getLocale(locale));\n};\n//# sourceMappingURL=format.js.map","/**\n * Created by hustcc on 18/5/20.\n * Contract: i@hust.cc\n */\nimport en_US from './lang/en_US';\nimport zh_CN from './lang/zh_CN';\nimport { register } from './register';\nregister('en_US', en_US);\nregister('zh_CN', zh_CN);\nexport { format } from './format';\nexport { render, cancel } from './realtime';\nexport { register };\n//# sourceMappingURL=index.js.map"],"names":["PartialPlaylistList","props","PARTIAL_PLAYLISTS","Array","numItems","className","itemClassName","showHeading","map","p","idx","key","xs","sm","lg","defaultProps","namespace","PlaylistCount","count","playlist","videos","interactives","clips","getCount","Number","isNaN","Text","phrase","options","smartCount","PlaylistOwnerAvatar","_liteOwner","_isClickViewCurated","value","ClickViewAvatar","id","currentUser","toString","url","avatar","Avatar","imageUrl","imageCdnUrl","initials","UserHelper","name","surname","PlaylistItem","ImageHelper","data","cover","size","resizeType","audiences","subjectPresentationAudiences","mergedAudience","presentationAudiences","showImage","showFallbackImage","bgColourClassNames","getBgColorClass","itemStyle","analyticsData","analyticsOptions","entity","AppLink","appLink","title","contentModifiedDate","LanguageService","timeago","DateHelper","getTitle","BaseImage","alt","ImageFallback","type","showCount","titleClassName","length","AudienceLabel","audienceLabelClass","audience","border","showOwner","actionType","location","descriptor","PlaylistList","as","extraPlaylistItem","itemContainerClassName","playlists","getPlaylistAppLink","itemTitleClassName","HeroVideo","video","getVideoAppLink","subTextAppLink","hideInteractiveBadge","videoAudiences","AnalyticsHelper","VideoHelper","containerRef","Row","Col","md","ref","VideoThumbnail","imageOptions","textPosition","ThumbnailTextPosition","setFavourite","canFavourite","badgePosition","newDurationStyle","hideRating","companyLogoFallbackUrl","subTextType","isPlugin","VideoSubText","VideoItemTitle","textClassName","yearGroups","VideoItemActions","BadgeListContainer","Badge","rating","productionYear","description","showVideoGuidance","VideoItemGuidance","getClassroomGuideAppLink","getResourceGuidanceAppLink","getInteractiveGuidanceAppLink","containerClassName","responsiveClassName","SeriesTallPosterHoverOverlay","isSmall","series","hasTableOfContents","SeriesTallPoster","hoverRef","isHovering","displayAudience","tallPoster","imageType","preload","preloadImage","imageClassName","imageClass","ComingSoonNamePanel","multiline","noUnderLine","wrapperClassName","NormalNamePanel","subtitle","newVideosCount","CoverPillWidgetContent","coverUrl","isLarge","classification","undefined","childProps","highlightOnHover","showNewVideosCount","externalMetadata","childDashboardNewVideoCount","themeColor","isSelected","style","hideCheckmark","svgName","svgSize","S","textVariant","variant","backgroundImage","hideFallback","extraClasses","isComingSoon","CoverPillWidgetContentWrapper","getChildAppLink","appLinkOptions","getChildAppLinkOptions","PartialSubjectWidgetItem","width","PartialLargeSubjectWidgetItem","Memoized","isTopicDiretoryItem","status","presentationName","presentationId","availablePresentations","find","usePresentationName","comingSoon","getSubtitle","ClassificationStatus","bsPrefix","Component","decoratedBsPrefix","breakpoints","minBreakpoint","sizePrefix","classes","forEach","brkPoint","propValue","cols","infix","push","displayName","EN_US","ZH_CN","Locales","register","locale","func","SEC_ARRAY","toDate","input","Date","test","parseInt","trim","replace","format","date","opts","sec","relativeDate","diff","localeFunc","agoIn","totalSec","Math","abs","floor","unit"],"sourceRoot":""}