@clickview/lite 0.52.1 → 0.52.2-dev.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 (351) hide show
  1. package/dist/bundles.json +1 -1
  2. package/dist/css/{1329-lite-ec64553644.chunk.css → 1329-lite-55772b1036.chunk.css} +2 -2
  3. package/dist/css/{986-lite-6bdd43b250.chunk.css → 3532-lite-a3c7435ba4.chunk.css} +1 -1
  4. package/dist/css/{3969-lite-cb4c4824f6.chunk.css → 3969-lite-94ca677007.chunk.css} +1 -1
  5. package/dist/css/{4489-lite-e971ca8ab6.chunk.css → 4489-lite-49c28410f9.chunk.css} +1 -1
  6. package/dist/css/4690-lite-e1f88a6b47.chunk.css +4 -0
  7. package/dist/css/{537-lite-53bb989a96.chunk.css → 537-lite-390b70028c.chunk.css} +1 -1
  8. package/dist/css/{6489-lite-5ffcd32447.chunk.css → 6489-lite-a917e953c8.chunk.css} +1 -1
  9. package/dist/css/{8192-lite-cf3253f7b8.chunk.css → 8192-lite-282a716c03.chunk.css} +1 -1
  10. package/dist/css/{841-lite-93cc5f2469.chunk.css → 841-lite-4a007cd7be.chunk.css} +1 -1
  11. package/dist/css/{1820-lite-eaf5a9db1c.chunk.css → 999-lite-02c517e917.chunk.css} +1 -1
  12. package/dist/languages/en.json +1 -1
  13. package/dist/scripts/{1080-5b00242a31-lite.chunk.js → 1080-d24c9657ec-lite.chunk.js} +2 -2
  14. package/dist/scripts/{1080-5b00242a31-lite.chunk.js.map → 1080-d24c9657ec-lite.chunk.js.map} +1 -1
  15. package/dist/scripts/{9173-2392d447a6-lite.chunk.js → 1104-f057c6dea1-lite.chunk.js} +3 -3
  16. package/dist/scripts/{9173-2392d447a6-lite.chunk.js.map → 1104-f057c6dea1-lite.chunk.js.map} +1 -1
  17. package/dist/scripts/{1125-aac132b88f-lite.chunk.js → 1125-55dc0a4586-lite.chunk.js} +2 -2
  18. package/dist/scripts/1125-55dc0a4586-lite.chunk.js.map +1 -0
  19. package/dist/scripts/1169-3de585be6a-lite.chunk.js +2 -0
  20. package/dist/scripts/1169-3de585be6a-lite.chunk.js.map +1 -0
  21. package/dist/scripts/1329-850346e6e6-lite.chunk.js +3 -0
  22. package/dist/scripts/1329-850346e6e6-lite.chunk.js.map +1 -0
  23. package/dist/scripts/{1379-082bbab71a-lite.chunk.js → 1379-976d20185f-lite.chunk.js} +3 -3
  24. package/dist/scripts/{1379-082bbab71a-lite.chunk.js.map → 1379-976d20185f-lite.chunk.js.map} +1 -1
  25. package/dist/scripts/1672-60a3ab42f5-lite.chunk.js +3 -0
  26. package/dist/scripts/1672-60a3ab42f5-lite.chunk.js.map +1 -0
  27. package/dist/scripts/1725-1e864ba78a-lite.chunk.js +2 -0
  28. package/dist/scripts/1725-1e864ba78a-lite.chunk.js.map +1 -0
  29. package/dist/scripts/1891-109e674486-lite.chunk.js +2 -0
  30. package/dist/scripts/1891-109e674486-lite.chunk.js.map +1 -0
  31. package/dist/scripts/193-797b89797a-lite.chunk.js +2 -0
  32. package/dist/scripts/193-797b89797a-lite.chunk.js.map +1 -0
  33. package/dist/scripts/2004-7d1bf8b246-lite.chunk.js +3 -0
  34. package/dist/scripts/2004-7d1bf8b246-lite.chunk.js.map +1 -0
  35. package/dist/scripts/209-d2e6b93965-lite.chunk.js +2 -0
  36. package/dist/scripts/209-d2e6b93965-lite.chunk.js.map +1 -0
  37. package/dist/scripts/2134-b9145f8ce8-lite.chunk.js +2 -0
  38. package/dist/scripts/2134-b9145f8ce8-lite.chunk.js.map +1 -0
  39. package/dist/scripts/2952-6a32a90314-lite.chunk.js +2 -0
  40. package/dist/scripts/2952-6a32a90314-lite.chunk.js.map +1 -0
  41. package/dist/scripts/3003-7685240aed-lite.chunk.js +2 -0
  42. package/dist/scripts/3003-7685240aed-lite.chunk.js.map +1 -0
  43. package/dist/scripts/3020-6c9c7d2176-lite.chunk.js +2 -0
  44. package/dist/scripts/3020-6c9c7d2176-lite.chunk.js.map +1 -0
  45. package/dist/scripts/338-e21a3cd6fe-lite.chunk.js +3 -0
  46. package/dist/scripts/338-e21a3cd6fe-lite.chunk.js.map +1 -0
  47. package/dist/scripts/3532-2fed0eb7a4-lite.chunk.js +3 -0
  48. package/dist/scripts/3532-2fed0eb7a4-lite.chunk.js.map +1 -0
  49. package/dist/scripts/3633-025f418c19-lite.chunk.js +2 -0
  50. package/dist/scripts/3633-025f418c19-lite.chunk.js.map +1 -0
  51. package/dist/scripts/3640-694d1d6d2a-lite.chunk.js +2 -0
  52. package/dist/scripts/3640-694d1d6d2a-lite.chunk.js.map +1 -0
  53. package/dist/scripts/3728-2c71d3021e-lite.chunk.js +2 -0
  54. package/dist/scripts/3728-2c71d3021e-lite.chunk.js.map +1 -0
  55. package/dist/scripts/3966-0e3c4f329e-lite.chunk.js +2 -0
  56. package/dist/scripts/3966-0e3c4f329e-lite.chunk.js.map +1 -0
  57. package/dist/scripts/{3969-6d5f2f272f-lite.chunk.js → 3969-e36f1922eb-lite.chunk.js} +1 -1
  58. package/dist/scripts/{3969-6d5f2f272f-lite.chunk.js.map → 3969-e36f1922eb-lite.chunk.js.map} +1 -1
  59. package/dist/scripts/4063-5fa157657f-lite.chunk.js +2 -0
  60. package/dist/scripts/4063-5fa157657f-lite.chunk.js.map +1 -0
  61. package/dist/scripts/4182-7ae9edf4a5-lite.chunk.js +2 -0
  62. package/dist/scripts/4182-7ae9edf4a5-lite.chunk.js.map +1 -0
  63. package/dist/scripts/4395-37537617e2-lite.chunk.js +2 -0
  64. package/dist/scripts/4395-37537617e2-lite.chunk.js.map +1 -0
  65. package/dist/scripts/4502-83e4017e54-lite.chunk.js +2 -0
  66. package/dist/scripts/4502-83e4017e54-lite.chunk.js.map +1 -0
  67. package/dist/scripts/4690-d64efe8020-lite.chunk.js +2 -0
  68. package/dist/scripts/4690-d64efe8020-lite.chunk.js.map +1 -0
  69. package/dist/scripts/4850-bb9541d3ed-lite.chunk.js +2 -0
  70. package/dist/scripts/4850-bb9541d3ed-lite.chunk.js.map +1 -0
  71. package/dist/scripts/5143-d46f032e9e-lite.chunk.js +2 -0
  72. package/dist/scripts/5143-d46f032e9e-lite.chunk.js.map +1 -0
  73. package/dist/scripts/5157-855821ccce-lite.chunk.js +2 -0
  74. package/dist/scripts/5157-855821ccce-lite.chunk.js.map +1 -0
  75. package/dist/scripts/537-f63ad5863e-lite.chunk.js +3 -0
  76. package/dist/scripts/537-f63ad5863e-lite.chunk.js.map +1 -0
  77. package/dist/scripts/5549-bb01b24470-lite.chunk.js +2 -0
  78. package/dist/scripts/5549-bb01b24470-lite.chunk.js.map +1 -0
  79. package/dist/scripts/5573-304fea77a6-lite.chunk.js +2 -0
  80. package/dist/scripts/5573-304fea77a6-lite.chunk.js.map +1 -0
  81. package/dist/scripts/5595-842c05064c-lite.chunk.js +2 -0
  82. package/dist/scripts/5595-842c05064c-lite.chunk.js.map +1 -0
  83. package/dist/scripts/5606-680582b817-lite.chunk.js +2 -0
  84. package/dist/scripts/5606-680582b817-lite.chunk.js.map +1 -0
  85. package/dist/scripts/5877-e75dcce0ef-lite.chunk.js +2 -0
  86. package/dist/scripts/5877-e75dcce0ef-lite.chunk.js.map +1 -0
  87. package/dist/scripts/5936-b509535ec7-lite.chunk.js +2 -0
  88. package/dist/scripts/5936-b509535ec7-lite.chunk.js.map +1 -0
  89. package/dist/scripts/6054-1e9b86d631-lite.chunk.js +2 -0
  90. package/dist/scripts/6054-1e9b86d631-lite.chunk.js.map +1 -0
  91. package/dist/scripts/6094-6c1e95073a-lite.chunk.js +2 -0
  92. package/dist/scripts/6094-6c1e95073a-lite.chunk.js.map +1 -0
  93. package/dist/scripts/6138-5791b93cc1-lite.chunk.js +2 -0
  94. package/dist/scripts/6138-5791b93cc1-lite.chunk.js.map +1 -0
  95. package/dist/scripts/{624-7ab5fb3f3b-lite.chunk.js → 624-bf0ff6257f-lite.chunk.js} +3 -3
  96. package/dist/scripts/{624-7ab5fb3f3b-lite.chunk.js.map → 624-bf0ff6257f-lite.chunk.js.map} +1 -1
  97. package/dist/scripts/6263-cfd4ebfe8b-lite.chunk.js +2 -0
  98. package/dist/scripts/6263-cfd4ebfe8b-lite.chunk.js.map +1 -0
  99. package/dist/scripts/6290-eb223883fe-lite.chunk.js +2 -0
  100. package/dist/scripts/6290-eb223883fe-lite.chunk.js.map +1 -0
  101. package/dist/scripts/6470-1012a7889c-lite.chunk.js +2 -0
  102. package/dist/scripts/6470-1012a7889c-lite.chunk.js.map +1 -0
  103. package/dist/scripts/6481-39b72a58ef-lite.chunk.js +2 -0
  104. package/dist/scripts/6481-39b72a58ef-lite.chunk.js.map +1 -0
  105. package/dist/scripts/6489-9287613d14-lite.chunk.js +3 -0
  106. package/dist/scripts/6489-9287613d14-lite.chunk.js.map +1 -0
  107. package/dist/scripts/6532-9edab80cc6-lite.chunk.js +2 -0
  108. package/dist/scripts/6532-9edab80cc6-lite.chunk.js.map +1 -0
  109. package/dist/scripts/6604-2353daa8c0-lite.chunk.js +2 -0
  110. package/dist/scripts/6604-2353daa8c0-lite.chunk.js.map +1 -0
  111. package/dist/scripts/6741-572db2d1e9-lite.chunk.js +3 -0
  112. package/dist/scripts/6741-572db2d1e9-lite.chunk.js.map +1 -0
  113. package/dist/scripts/6746-72d35335ba-lite.chunk.js +2 -0
  114. package/dist/scripts/6746-72d35335ba-lite.chunk.js.map +1 -0
  115. package/dist/scripts/6852-f49f6f19d3-lite.chunk.js +2 -0
  116. package/dist/scripts/6852-f49f6f19d3-lite.chunk.js.map +1 -0
  117. package/dist/scripts/714-67adeb44da-lite.chunk.js +2 -0
  118. package/dist/scripts/714-67adeb44da-lite.chunk.js.map +1 -0
  119. package/dist/scripts/7163-8b5ab059b6-lite.chunk.js +2 -0
  120. package/dist/scripts/7163-8b5ab059b6-lite.chunk.js.map +1 -0
  121. package/dist/scripts/7178-4b9c33a63e-lite.chunk.js +2 -0
  122. package/dist/scripts/7178-4b9c33a63e-lite.chunk.js.map +1 -0
  123. package/dist/scripts/7223-e2f8a43b89-lite.chunk.js +2 -0
  124. package/dist/scripts/7223-e2f8a43b89-lite.chunk.js.map +1 -0
  125. package/dist/scripts/7234-595d44446f-lite.chunk.js +2 -0
  126. package/dist/scripts/7234-595d44446f-lite.chunk.js.map +1 -0
  127. package/dist/scripts/7267-dac72aeb98-lite.chunk.js +2 -0
  128. package/dist/scripts/7267-dac72aeb98-lite.chunk.js.map +1 -0
  129. package/dist/scripts/{7293-687e60dba2-lite.chunk.js → 7293-1ad518e385-lite.chunk.js} +2 -2
  130. package/dist/scripts/7293-1ad518e385-lite.chunk.js.map +1 -0
  131. package/dist/scripts/7679-f43777e02e-lite.chunk.js +2 -0
  132. package/dist/scripts/7679-f43777e02e-lite.chunk.js.map +1 -0
  133. package/dist/scripts/7757-2785d666ad-lite.chunk.js +2 -0
  134. package/dist/scripts/7757-2785d666ad-lite.chunk.js.map +1 -0
  135. package/dist/scripts/7795-b641104969-lite.chunk.js +2 -0
  136. package/dist/scripts/7795-b641104969-lite.chunk.js.map +1 -0
  137. package/dist/scripts/7818-cff0f2276c-lite.chunk.js +2 -0
  138. package/dist/scripts/7818-cff0f2276c-lite.chunk.js.map +1 -0
  139. package/dist/scripts/{8192-f26370c5a6-lite.chunk.js → 8192-ea5cee15d7-lite.chunk.js} +1 -1
  140. package/dist/scripts/{8192-f26370c5a6-lite.chunk.js.map → 8192-ea5cee15d7-lite.chunk.js.map} +1 -1
  141. package/dist/scripts/8200-1e4518c5d8-lite.chunk.js +3 -0
  142. package/dist/scripts/8200-1e4518c5d8-lite.chunk.js.map +1 -0
  143. package/dist/scripts/8323-fb330a8f47-lite.chunk.js +3 -0
  144. package/dist/scripts/8323-fb330a8f47-lite.chunk.js.map +1 -0
  145. package/dist/scripts/841-d69c7f4b4d-lite.chunk.js +3 -0
  146. package/dist/scripts/841-d69c7f4b4d-lite.chunk.js.map +1 -0
  147. package/dist/scripts/8709-f360baa021-lite.chunk.js +2 -0
  148. package/dist/scripts/8709-f360baa021-lite.chunk.js.map +1 -0
  149. package/dist/scripts/8722-00d7443d09-lite.chunk.js +2 -0
  150. package/dist/scripts/8722-00d7443d09-lite.chunk.js.map +1 -0
  151. package/dist/scripts/8982-6848480133-lite.chunk.js +2 -0
  152. package/dist/scripts/8982-6848480133-lite.chunk.js.map +1 -0
  153. package/dist/scripts/9016-e17da8b633-lite.chunk.js +3 -0
  154. package/dist/scripts/9016-e17da8b633-lite.chunk.js.map +1 -0
  155. package/dist/scripts/9173-a0c6c7be25-lite.chunk.js +2 -0
  156. package/dist/scripts/9173-a0c6c7be25-lite.chunk.js.map +1 -0
  157. package/dist/scripts/9226-a7c61f9129-lite.chunk.js +2 -0
  158. package/dist/scripts/9226-a7c61f9129-lite.chunk.js.map +1 -0
  159. package/dist/scripts/9230-537f1fcc38-lite.chunk.js +3 -0
  160. package/dist/scripts/9230-537f1fcc38-lite.chunk.js.map +1 -0
  161. package/dist/scripts/9359-deb452cb10-lite.chunk.js +2 -0
  162. package/dist/scripts/9359-deb452cb10-lite.chunk.js.map +1 -0
  163. package/dist/scripts/{9395-90b87097fa-lite.chunk.js → 9395-e9b5cdbdce-lite.chunk.js} +3 -3
  164. package/dist/scripts/{9395-90b87097fa-lite.chunk.js.map → 9395-e9b5cdbdce-lite.chunk.js.map} +1 -1
  165. package/dist/scripts/9399-721a368168-lite.chunk.js +2 -0
  166. package/dist/scripts/9399-721a368168-lite.chunk.js.map +1 -0
  167. package/dist/scripts/{9478-99486906b9-lite.chunk.js → 9478-abfa7ed3cc-lite.chunk.js} +3 -3
  168. package/dist/scripts/{9478-99486906b9-lite.chunk.js.map → 9478-abfa7ed3cc-lite.chunk.js.map} +1 -1
  169. package/dist/scripts/{953-cbc7f0571e-lite.chunk.js → 953-bf3d621a33-lite.chunk.js} +3 -3
  170. package/dist/scripts/{953-cbc7f0571e-lite.chunk.js.map → 953-bf3d621a33-lite.chunk.js.map} +1 -1
  171. package/dist/scripts/9719-ed1956607c-lite.chunk.js +3 -0
  172. package/dist/scripts/9719-ed1956607c-lite.chunk.js.map +1 -0
  173. package/dist/scripts/999-d7e93dac12-lite.chunk.js +2 -0
  174. package/dist/scripts/999-d7e93dac12-lite.chunk.js.map +1 -0
  175. package/dist/scripts/bundle-9a72d04e7d.min.js +3 -0
  176. package/dist/scripts/bundle-9a72d04e7d.min.js.map +1 -0
  177. package/package.json +1 -2
  178. package/dist/css/4690-lite-a4fdd7e61e.chunk.css +0 -4
  179. package/dist/scripts/1125-aac132b88f-lite.chunk.js.map +0 -1
  180. package/dist/scripts/1169-5a0d974a94-lite.chunk.js +0 -2
  181. package/dist/scripts/1169-5a0d974a94-lite.chunk.js.map +0 -1
  182. package/dist/scripts/1329-7064e95200-lite.chunk.js +0 -3
  183. package/dist/scripts/1329-7064e95200-lite.chunk.js.map +0 -1
  184. package/dist/scripts/1466-735d7dad48-lite.chunk.js +0 -3
  185. package/dist/scripts/1466-735d7dad48-lite.chunk.js.map +0 -1
  186. package/dist/scripts/1672-672f298d82-lite.chunk.js +0 -3
  187. package/dist/scripts/1672-672f298d82-lite.chunk.js.map +0 -1
  188. package/dist/scripts/1725-075015497e-lite.chunk.js +0 -2
  189. package/dist/scripts/1725-075015497e-lite.chunk.js.map +0 -1
  190. package/dist/scripts/1818-4949c9b748-lite.chunk.js +0 -2
  191. package/dist/scripts/1818-4949c9b748-lite.chunk.js.map +0 -1
  192. package/dist/scripts/1820-345bf53a3c-lite.chunk.js +0 -2
  193. package/dist/scripts/1820-345bf53a3c-lite.chunk.js.map +0 -1
  194. package/dist/scripts/1867-6f801de383-lite.chunk.js +0 -2
  195. package/dist/scripts/1867-6f801de383-lite.chunk.js.map +0 -1
  196. package/dist/scripts/1891-e80f9f17ee-lite.chunk.js +0 -2
  197. package/dist/scripts/1891-e80f9f17ee-lite.chunk.js.map +0 -1
  198. package/dist/scripts/193-f08b054631-lite.chunk.js +0 -2
  199. package/dist/scripts/193-f08b054631-lite.chunk.js.map +0 -1
  200. package/dist/scripts/2004-d891104ed4-lite.chunk.js +0 -3
  201. package/dist/scripts/2004-d891104ed4-lite.chunk.js.map +0 -1
  202. package/dist/scripts/209-57b05f6c83-lite.chunk.js +0 -2
  203. package/dist/scripts/209-57b05f6c83-lite.chunk.js.map +0 -1
  204. package/dist/scripts/2134-bca2f4697e-lite.chunk.js +0 -2
  205. package/dist/scripts/2134-bca2f4697e-lite.chunk.js.map +0 -1
  206. package/dist/scripts/2703-591ccf069c-lite.chunk.js +0 -2
  207. package/dist/scripts/2703-591ccf069c-lite.chunk.js.map +0 -1
  208. package/dist/scripts/3020-dbc723b098-lite.chunk.js +0 -2
  209. package/dist/scripts/3020-dbc723b098-lite.chunk.js.map +0 -1
  210. package/dist/scripts/3633-66d28be6f8-lite.chunk.js +0 -2
  211. package/dist/scripts/3633-66d28be6f8-lite.chunk.js.map +0 -1
  212. package/dist/scripts/3728-d7ecfc6667-lite.chunk.js +0 -2
  213. package/dist/scripts/3728-d7ecfc6667-lite.chunk.js.map +0 -1
  214. package/dist/scripts/3966-a3bb0e0161-lite.chunk.js +0 -2
  215. package/dist/scripts/3966-a3bb0e0161-lite.chunk.js.map +0 -1
  216. package/dist/scripts/4182-7aecc28a6f-lite.chunk.js +0 -2
  217. package/dist/scripts/4182-7aecc28a6f-lite.chunk.js.map +0 -1
  218. package/dist/scripts/4395-64da004753-lite.chunk.js +0 -2
  219. package/dist/scripts/4395-64da004753-lite.chunk.js.map +0 -1
  220. package/dist/scripts/4502-2e30d86385-lite.chunk.js +0 -2
  221. package/dist/scripts/4502-2e30d86385-lite.chunk.js.map +0 -1
  222. package/dist/scripts/4690-03372d68ac-lite.chunk.js +0 -2
  223. package/dist/scripts/4690-03372d68ac-lite.chunk.js.map +0 -1
  224. package/dist/scripts/5143-b6896dad98-lite.chunk.js +0 -2
  225. package/dist/scripts/5143-b6896dad98-lite.chunk.js.map +0 -1
  226. package/dist/scripts/5157-54aeb51bdf-lite.chunk.js +0 -2
  227. package/dist/scripts/5157-54aeb51bdf-lite.chunk.js.map +0 -1
  228. package/dist/scripts/537-536e52ef91-lite.chunk.js +0 -3
  229. package/dist/scripts/537-536e52ef91-lite.chunk.js.map +0 -1
  230. package/dist/scripts/5562-e011962a62-lite.chunk.js +0 -3
  231. package/dist/scripts/5562-e011962a62-lite.chunk.js.map +0 -1
  232. package/dist/scripts/5573-6cd98b69f2-lite.chunk.js +0 -2
  233. package/dist/scripts/5573-6cd98b69f2-lite.chunk.js.map +0 -1
  234. package/dist/scripts/5595-96a0649af0-lite.chunk.js +0 -2
  235. package/dist/scripts/5595-96a0649af0-lite.chunk.js.map +0 -1
  236. package/dist/scripts/5606-6c25caedc4-lite.chunk.js +0 -2
  237. package/dist/scripts/5606-6c25caedc4-lite.chunk.js.map +0 -1
  238. package/dist/scripts/5877-ddfaf6a7f5-lite.chunk.js +0 -2
  239. package/dist/scripts/5877-ddfaf6a7f5-lite.chunk.js.map +0 -1
  240. package/dist/scripts/5936-f0177219db-lite.chunk.js +0 -2
  241. package/dist/scripts/5936-f0177219db-lite.chunk.js.map +0 -1
  242. package/dist/scripts/6054-14d4ceeae3-lite.chunk.js +0 -2
  243. package/dist/scripts/6054-14d4ceeae3-lite.chunk.js.map +0 -1
  244. package/dist/scripts/6094-7ec9341357-lite.chunk.js +0 -2
  245. package/dist/scripts/6094-7ec9341357-lite.chunk.js.map +0 -1
  246. package/dist/scripts/6138-d419f62f77-lite.chunk.js +0 -2
  247. package/dist/scripts/6138-d419f62f77-lite.chunk.js.map +0 -1
  248. package/dist/scripts/6263-af99de5a35-lite.chunk.js +0 -2
  249. package/dist/scripts/6263-af99de5a35-lite.chunk.js.map +0 -1
  250. package/dist/scripts/6290-56412c6663-lite.chunk.js +0 -2
  251. package/dist/scripts/6290-56412c6663-lite.chunk.js.map +0 -1
  252. package/dist/scripts/6415-8b354a10c7-lite.chunk.js +0 -2
  253. package/dist/scripts/6415-8b354a10c7-lite.chunk.js.map +0 -1
  254. package/dist/scripts/6470-6216086d63-lite.chunk.js +0 -2
  255. package/dist/scripts/6470-6216086d63-lite.chunk.js.map +0 -1
  256. package/dist/scripts/6481-03a4f1082e-lite.chunk.js +0 -2
  257. package/dist/scripts/6481-03a4f1082e-lite.chunk.js.map +0 -1
  258. package/dist/scripts/6489-953bb87f64-lite.chunk.js +0 -3
  259. package/dist/scripts/6489-953bb87f64-lite.chunk.js.map +0 -1
  260. package/dist/scripts/6532-a6b65c91a7-lite.chunk.js +0 -2
  261. package/dist/scripts/6532-a6b65c91a7-lite.chunk.js.map +0 -1
  262. package/dist/scripts/6546-bc3a8099ba-lite.chunk.js +0 -2
  263. package/dist/scripts/6546-bc3a8099ba-lite.chunk.js.map +0 -1
  264. package/dist/scripts/6587-23e7b1d196-lite.chunk.js +0 -2
  265. package/dist/scripts/6587-23e7b1d196-lite.chunk.js.map +0 -1
  266. package/dist/scripts/6604-92193d6d68-lite.chunk.js +0 -2
  267. package/dist/scripts/6604-92193d6d68-lite.chunk.js.map +0 -1
  268. package/dist/scripts/6741-ff3e4a33a5-lite.chunk.js +0 -3
  269. package/dist/scripts/6741-ff3e4a33a5-lite.chunk.js.map +0 -1
  270. package/dist/scripts/6746-b5b2739944-lite.chunk.js +0 -2
  271. package/dist/scripts/6746-b5b2739944-lite.chunk.js.map +0 -1
  272. package/dist/scripts/679-92bb80f478-lite.chunk.js +0 -2
  273. package/dist/scripts/679-92bb80f478-lite.chunk.js.map +0 -1
  274. package/dist/scripts/714-432082f4fa-lite.chunk.js +0 -2
  275. package/dist/scripts/714-432082f4fa-lite.chunk.js.map +0 -1
  276. package/dist/scripts/7178-e603ea6b58-lite.chunk.js +0 -2
  277. package/dist/scripts/7178-e603ea6b58-lite.chunk.js.map +0 -1
  278. package/dist/scripts/7223-135cc7d675-lite.chunk.js +0 -2
  279. package/dist/scripts/7223-135cc7d675-lite.chunk.js.map +0 -1
  280. package/dist/scripts/729-c704d587d3-lite.chunk.js +0 -2
  281. package/dist/scripts/729-c704d587d3-lite.chunk.js.map +0 -1
  282. package/dist/scripts/7293-687e60dba2-lite.chunk.js.map +0 -1
  283. package/dist/scripts/7679-81c2a40df4-lite.chunk.js +0 -2
  284. package/dist/scripts/7679-81c2a40df4-lite.chunk.js.map +0 -1
  285. package/dist/scripts/7757-b149c4c215-lite.chunk.js +0 -2
  286. package/dist/scripts/7757-b149c4c215-lite.chunk.js.map +0 -1
  287. package/dist/scripts/7795-3ca0855d3a-lite.chunk.js +0 -2
  288. package/dist/scripts/7795-3ca0855d3a-lite.chunk.js.map +0 -1
  289. package/dist/scripts/7818-2eafc5f812-lite.chunk.js +0 -2
  290. package/dist/scripts/7818-2eafc5f812-lite.chunk.js.map +0 -1
  291. package/dist/scripts/8200-8a55f1631f-lite.chunk.js +0 -3
  292. package/dist/scripts/8200-8a55f1631f-lite.chunk.js.map +0 -1
  293. package/dist/scripts/8323-99cb03891e-lite.chunk.js +0 -3
  294. package/dist/scripts/8323-99cb03891e-lite.chunk.js.map +0 -1
  295. package/dist/scripts/841-0c50273ad2-lite.chunk.js +0 -3
  296. package/dist/scripts/841-0c50273ad2-lite.chunk.js.map +0 -1
  297. package/dist/scripts/8722-c5f95553f2-lite.chunk.js +0 -2
  298. package/dist/scripts/8722-c5f95553f2-lite.chunk.js.map +0 -1
  299. package/dist/scripts/8766-9605550480-lite.chunk.js +0 -2
  300. package/dist/scripts/8766-9605550480-lite.chunk.js.map +0 -1
  301. package/dist/scripts/8800-c88fefeace-lite.chunk.js +0 -2
  302. package/dist/scripts/8800-c88fefeace-lite.chunk.js.map +0 -1
  303. package/dist/scripts/8982-63c31685bf-lite.chunk.js +0 -2
  304. package/dist/scripts/8982-63c31685bf-lite.chunk.js.map +0 -1
  305. package/dist/scripts/9016-0c078a39cb-lite.chunk.js +0 -3
  306. package/dist/scripts/9016-0c078a39cb-lite.chunk.js.map +0 -1
  307. package/dist/scripts/9226-c236c0eeb1-lite.chunk.js +0 -2
  308. package/dist/scripts/9226-c236c0eeb1-lite.chunk.js.map +0 -1
  309. package/dist/scripts/9230-6dee40b1fb-lite.chunk.js +0 -3
  310. package/dist/scripts/9230-6dee40b1fb-lite.chunk.js.map +0 -1
  311. package/dist/scripts/9359-fa72fcdedc-lite.chunk.js +0 -2
  312. package/dist/scripts/9359-fa72fcdedc-lite.chunk.js.map +0 -1
  313. package/dist/scripts/9399-b724e4fb06-lite.chunk.js +0 -2
  314. package/dist/scripts/9399-b724e4fb06-lite.chunk.js.map +0 -1
  315. package/dist/scripts/9719-cf7d4172b6-lite.chunk.js +0 -3
  316. package/dist/scripts/9719-cf7d4172b6-lite.chunk.js.map +0 -1
  317. package/dist/scripts/986-e9379d557d-lite.chunk.js +0 -3
  318. package/dist/scripts/986-e9379d557d-lite.chunk.js.LICENSE.txt +0 -1
  319. package/dist/scripts/986-e9379d557d-lite.chunk.js.map +0 -1
  320. package/dist/scripts/bundle-d646383f3e.min.js +0 -3
  321. package/dist/scripts/bundle-d646383f3e.min.js.map +0 -1
  322. /package/dist/css/{9173-lite-b361d438f6.chunk.css → 1104-lite-b361d438f6.chunk.css} +0 -0
  323. /package/dist/css/{679-lite-00eb7dadb2.chunk.css → 2952-lite-00eb7dadb2.chunk.css} +0 -0
  324. /package/dist/css/{1867-lite-ae7bb51ed6.chunk.css → 3640-lite-ae7bb51ed6.chunk.css} +0 -0
  325. /package/dist/css/{4860-lite-93d7fad455.chunk.css → 4063-lite-93d7fad455.chunk.css} +0 -0
  326. /package/dist/css/{729-lite-93d7fad455.chunk.css → 4850-lite-93d7fad455.chunk.css} +0 -0
  327. /package/dist/css/{6546-lite-ae7bb51ed6.chunk.css → 5549-lite-ae7bb51ed6.chunk.css} +0 -0
  328. /package/dist/css/{8766-lite-8c5d7658ec.chunk.css → 7163-lite-8c5d7658ec.chunk.css} +0 -0
  329. /package/dist/css/{1818-lite-5ef1706d69.chunk.css → 7234-lite-5ef1706d69.chunk.css} +0 -0
  330. /package/dist/css/{6415-lite-707657102b.chunk.css → 9173-lite-707657102b.chunk.css} +0 -0
  331. /package/dist/scripts/{1329-7064e95200-lite.chunk.js.LICENSE.txt → 1104-f057c6dea1-lite.chunk.js.LICENSE.txt} +0 -0
  332. /package/dist/scripts/{1379-082bbab71a-lite.chunk.js.LICENSE.txt → 1329-850346e6e6-lite.chunk.js.LICENSE.txt} +0 -0
  333. /package/dist/scripts/{1466-735d7dad48-lite.chunk.js.LICENSE.txt → 1379-976d20185f-lite.chunk.js.LICENSE.txt} +0 -0
  334. /package/dist/scripts/{1672-672f298d82-lite.chunk.js.LICENSE.txt → 1672-60a3ab42f5-lite.chunk.js.LICENSE.txt} +0 -0
  335. /package/dist/scripts/{2004-d891104ed4-lite.chunk.js.LICENSE.txt → 2004-7d1bf8b246-lite.chunk.js.LICENSE.txt} +0 -0
  336. /package/dist/scripts/{537-536e52ef91-lite.chunk.js.LICENSE.txt → 338-e21a3cd6fe-lite.chunk.js.LICENSE.txt} +0 -0
  337. /package/dist/scripts/{5562-e011962a62-lite.chunk.js.LICENSE.txt → 3532-2fed0eb7a4-lite.chunk.js.LICENSE.txt} +0 -0
  338. /package/dist/scripts/{624-7ab5fb3f3b-lite.chunk.js.LICENSE.txt → 537-f63ad5863e-lite.chunk.js.LICENSE.txt} +0 -0
  339. /package/dist/scripts/{6489-953bb87f64-lite.chunk.js.LICENSE.txt → 624-bf0ff6257f-lite.chunk.js.LICENSE.txt} +0 -0
  340. /package/dist/scripts/{6741-ff3e4a33a5-lite.chunk.js.LICENSE.txt → 6489-9287613d14-lite.chunk.js.LICENSE.txt} +0 -0
  341. /package/dist/scripts/{8200-8a55f1631f-lite.chunk.js.LICENSE.txt → 6741-572db2d1e9-lite.chunk.js.LICENSE.txt} +0 -0
  342. /package/dist/scripts/{8323-99cb03891e-lite.chunk.js.LICENSE.txt → 8200-1e4518c5d8-lite.chunk.js.LICENSE.txt} +0 -0
  343. /package/dist/scripts/{841-0c50273ad2-lite.chunk.js.LICENSE.txt → 8323-fb330a8f47-lite.chunk.js.LICENSE.txt} +0 -0
  344. /package/dist/scripts/{9173-2392d447a6-lite.chunk.js.LICENSE.txt → 841-d69c7f4b4d-lite.chunk.js.LICENSE.txt} +0 -0
  345. /package/dist/scripts/{9016-0c078a39cb-lite.chunk.js.LICENSE.txt → 9016-e17da8b633-lite.chunk.js.LICENSE.txt} +0 -0
  346. /package/dist/scripts/{9230-6dee40b1fb-lite.chunk.js.LICENSE.txt → 9230-537f1fcc38-lite.chunk.js.LICENSE.txt} +0 -0
  347. /package/dist/scripts/{9395-90b87097fa-lite.chunk.js.LICENSE.txt → 9395-e9b5cdbdce-lite.chunk.js.LICENSE.txt} +0 -0
  348. /package/dist/scripts/{9478-99486906b9-lite.chunk.js.LICENSE.txt → 9478-abfa7ed3cc-lite.chunk.js.LICENSE.txt} +0 -0
  349. /package/dist/scripts/{953-cbc7f0571e-lite.chunk.js.LICENSE.txt → 953-bf3d621a33-lite.chunk.js.LICENSE.txt} +0 -0
  350. /package/dist/scripts/{9719-cf7d4172b6-lite.chunk.js.LICENSE.txt → 9719-ed1956607c-lite.chunk.js.LICENSE.txt} +0 -0
  351. /package/dist/scripts/{bundle-d646383f3e.min.js.LICENSE.txt → bundle-9a72d04e7d.min.js.LICENSE.txt} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"scripts/9226-c236c0eeb1-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/utils/validation/DomainSettingsValidationSchema.ts","file:///app/packages/libs/shared/src/apps/domain-settings/domain-fields/domain-field/DomainField.scss","file:///app/packages/libs/shared/src/apps/domain-settings/domain-fields/domain-field/DomainField.tsx","file:///app/packages/libs/shared/src/apps/domain-settings/domain-fields/DomainFields.tsx","file:///app/packages/libs/shared/src/apps/domain-settings/domain-settings-radio/DomainSettingsRadio.scss","file:///app/packages/libs/shared/src/apps/domain-settings/domain-settings-radio/DomainSettingsRadio.tsx","file:///app/packages/libs/shared/src/apps/domain-settings/domain-settings-form/DomainSettingsForm.tsx","file:///app/packages/libs/shared/src/apps/domain-settings/domain-settings-tabs/DomainSettingsTabs.tsx","file:///app/packages/libs/shared/src/images/components/CloseIcon.tsx","file:///app/packages/libs/shared/src/apps/sign-up/components/general/clear-input/ClearableInput.tsx","file:///app/packages/libs/shared/src/apps/sign-up/components/general/clear-input/clearable-input.scss","file:///app/packages/libs/shared/src/components/breadcrumbs/Breadcrumbs.tsx","file:///app/packages/libs/shared/src/components/forms/form-buttons/FormButtons.tsx","file:///app/packages/libs/shared/src/components/forms/form-wrapper/FormWrapper.tsx","file:///app/packages/libs/shared/src/components/pill-tab-selector/PillTabSelector.tsx","file:///app/packages/libs/shared/src/enums/AccessSettingsGroup.ts","file:///app/packages/libs/shared/src/enums/AccessType.ts","file:///app/packages/libs/shared/src/enums/SupportArticle.ts","file:///app/packages/libs/shared/src/utils/DomainSettingsFormHelper.ts","file:///app/packages/libs/shared/src/utils/PartialLoadingHelper.ts","file:///app/packages/projects/lite/src/apps/settings/components/settings-layout/SettingsLayout.tsx","file:///app/packages/projects/lite/src/apps/settings/constants/AccessSettingsAppLinks.ts","file:///app/packages/projects/lite/src/apps/settings/flight-requests/DomainRequests.ts","file:///app/packages/projects/lite/src/apps/settings/hooks/useDomainSettingsSwitch.ts","file:///app/packages/libs/shared/src/components/pill-tab-selector/pill-tab-selector.scss"],"sourcesContent":["import { ApprovedDomain, DomainSettingsModel } from 'libs/shared/interfaces/domains/ApprovedDomain';\nimport { ApprovedDomainError } from 'libs/shared/interfaces/domains/ApprovedDomainErrorResponse';\n\nconst domainRegex = new RegExp(\n /^(?!-)[A-Za-z0-9-]+([\\-\\.]{1}[a-z0-9]+)*\\.[A-Za-z]{2,6}$/\n);\n\nexport const DomainValidation = (values: DomainSettingsModel) => {\n const { domains, selectedOption } = values;\n const errors: { domains: { domain: ApprovedDomainError }[] } = { domains: []};\n\n domains.forEach((domain, index: number) => {\n if (selectedOption !== 'allowed' && !domain.domain)\n return;\n\n if (!domain.domain) {\n errors.domains[index] = { domain: 'domain-empty' };\n return;\n }\n\n const duplicateDomain = domains.find(\n (currentDomain: ApprovedDomain, currentIndex: number) =>\n currentIndex !== index &&\n currentDomain.domain === domain.domain &&\n domain.hasChanged\n );\n if (duplicateDomain) {\n errors.domains[index] = { domain: 'domain-duplicated' };\n return;\n }\n\n if (!domainRegex.test(domain.domain)) {\n errors.domains[index] = { domain: 'domain-invalid' };\n return;\n }\n });\n\n return errors.domains.length ? errors : {};\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"domainFieldContainer\":\"F9EW7\"};","import React from 'react';\nimport { getIn, useFormikContext } from 'formik';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { ClearableInput } from 'libs/shared/apps/sign-up/components/general/clear-input/ClearableInput';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { AccessSettingsGroup } from 'libs/shared/enums/AccessSettingsGroup';\nimport { AccessSettingAppLinks } from 'libs/shared/interfaces/domains/AccessSettingAppLinks';\nimport { ApprovedDomain, DomainSettingsModel } from 'libs/shared/interfaces/domains/ApprovedDomain';\nimport { ApprovedDomainError } from 'libs/shared/interfaces/domains/ApprovedDomainErrorResponse';\n\nimport styles from './DomainField.scss';\n\nconst namespace = 'settings.domainField';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ntype ViewMap = {\n [key in AccessSettingsGroup]?: string;\n}\n\ntype ErrorMessagePhraseMap = {\n [key in ApprovedDomainError]?: string | ViewMap;\n};\n\nconst errorMessagePhraseMap: ErrorMessagePhraseMap = {\n 'domain-duplicated': 'domainDuplicatedErrorMessage',\n 'domain-not-certified': 'domainNotCertifiedErrorMessage',\n 'domain-invalid': 'domainInvalidErrorMessage',\n 'domain-empty': 'domainEmptyErrorMessage',\n 'domain-already-exists': {\n requestingAccess: 'joinRequestsDomainAlreadyExistsErrorMessage',\n automaticAccess: 'accessBehaviourDomainAlreadyExistsErrorMessage'\n }\n};\n\ninterface DomainFieldProps {\n index: number,\n domain: ApprovedDomain,\n view: AccessSettingsGroup\n appLinks: AccessSettingAppLinks\n onChangeDomain: (domain: ApprovedDomain, index: number) => void,\n removeDomainField: (index: number) => void,\n}\n\nexport function DomainField(props: DomainFieldProps) {\n const formikProps = useFormikContext<DomainSettingsModel>();\n const { index, domain, view, appLinks, onChangeDomain, removeDomainField } = props;\n \n const actionMap: { [view: string]: string } = {\n [AccessSettingsGroup.RequestingAccess]: appLinks.automaticAccess.action,\n [AccessSettingsGroup.AutomaticAccess]: appLinks.requestingAccess.action\n };\n\n const viewAppLink = {\n application: appLinks[view].application,\n action: actionMap[view],\n args: appLinks[view].args\n };\n \n function getDomainErrorCode(index: number): ApprovedDomainError {\n return getIn(formikProps.errors, `domains.${index}.domain`);\n }\n\n function getDomainErrorMessage(index: number, domain: string): JSX.Element {\n const domainErrorCode = getDomainErrorCode(index);\n switch (domainErrorCode) {\n case 'domain-duplicated':\n case 'domain-invalid':\n case 'domain-not-certified':\n case 'domain-empty':\n return (\n <Text\n namespace={namespace}\n phrase={errorMessagePhraseMap[domainErrorCode] as string}\n options={{ domain }}\n />\n );\n case 'domain-already-exists':\n return (\n <>\n <Text\n namespace={namespace}\n phrase={(errorMessagePhraseMap[domainErrorCode] as ViewMap)[view]}\n options={{ domain }}\n />\n <AppLink\n appLink={viewAppLink}\n className='text-red text-underline'\n >\n <Text namespace={namespace} phrase={'viewLinkText'}/>\n </AppLink>\n <span>.</span>\n </>\n );\n }\n }\n\n function handleChange(e: React.FormEvent<HTMLInputElement>, index: number) {\n e.preventDefault();\n const updatedDomain: ApprovedDomain = { ...domain, domain: e.currentTarget.value, hasChanged: true };\n onChangeDomain(updatedDomain, index);\n }\n\n return (\n <div className={styles.domainFieldContainer}>\n <ClearableInput\n type='text'\n name={`domains.${index}.domain`}\n className={`form-control form-control-lg ${getDomainErrorCode(index) ? 'is-invalid' : ''}`}\n placeholder={getPhrase('domainPlaceholder')}\n value={domain.domain}\n onChange={e => handleChange(e, index)}\n onClickClear={() => removeDomainField(index)}\n autoComplete='off'\n showClearButton={index !== 0 || !!domain.domain}\n />\n {\n getDomainErrorCode(index) &&\n <div className='invalid-feedback d-block'>{getDomainErrorMessage(index, domain.domain)}</div>\n }\n </div>\n );\n}","import React from 'react';\nimport { FieldArray, useFormikContext } from 'formik';\n\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { AccessSettingsGroup } from 'libs/shared/enums/AccessSettingsGroup';\nimport { AccessSettingAppLinks } from 'libs/shared/interfaces/domains/AccessSettingAppLinks';\nimport { ApprovedDomain, DomainSettingsModel } from 'libs/shared/interfaces/domains/ApprovedDomain';\nimport { ApprovedDomainErrorResponse } from 'libs/shared/interfaces/domains/ApprovedDomainErrorResponse';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { DomainField } from './domain-field/DomainField';\n\nconst namespace = 'settings.domainFields';\n\ninterface DomainFieldsProps {\n errors: ApprovedDomainErrorResponse[],\n view: AccessSettingsGroup,\n appLinks: AccessSettingAppLinks\n addDomainField: () => void,\n onChangeDomain: (domain: ApprovedDomain, index: number) => void,\n removeDomainField: (index: number) => void,\n}\n\nexport function DomainFields(props: DomainFieldsProps) {\n const formikProps = useFormikContext<DomainSettingsModel>();\n const { domains } = formikProps.values;\n const { view, errors, appLinks, addDomainField, onChangeDomain, removeDomainField } = props;\n\n React.useEffect(() => {\n if (errors?.length) {\n errors.forEach(error => {\n const errorIndex = ArrayHelper.findIndex(\n domains,\n domain => domain.hasChanged && domain.domain === error.domain\n );\n formikProps.setFieldError(`domains.${errorIndex}.domain`, error.errorCode);\n });\n }\n }, [errors]);\n\n return (\n <>\n <FieldArray\n name='domains'\n render={() => {\n return (\n <>\n {domains.length > 0 &&\n domains.map((domain: ApprovedDomain, index) => (\n <DomainField\n key={index}\n domain={domain}\n index={index}\n appLinks={appLinks}\n onChangeDomain={onChangeDomain}\n removeDomainField={removeDomainField}\n view={view}\n />\n ))}\n </>\n );\n }}\n />\n <div>\n <IconButton\n svgName={cvSvgLibrary.Plus}\n className={`ms-3 btn btn-link text-info`}\n onClick={addDomainField}\n >\n <Text namespace={namespace} phrase='addButtonLabel' />\n </IconButton>\n </div>\n </>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"radioDescription\":\"Q4JXA\"};","import React from 'react';\nimport { FormCheck } from 'react-bootstrap';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { Text } from 'libs/shared/components/text/Text';\nimport { AccessSettingsGroup } from 'libs/shared/enums/AccessSettingsGroup';\nimport { DomainSettingsOption } from 'libs/shared/interfaces/domains/ApprovedDomain';\n\nimport styles from './DomainSettingsRadio.scss';\n\nconst namespace = 'settings.domainSettingsRadio';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ntype RadioPhraseMap = {\n [key in AccessSettingsGroup]?: {\n [key in DomainSettingsOption]?: {\n label: string,\n description?: string\n }\n }\n}\n\nconst radioPhraseMap: RadioPhraseMap = {\n automaticAccess: {\n none: {\n label: 'accessBehaviourNoneLabel',\n description: 'accessBehaviorNoneDescription'\n },\n allowed: {\n label: 'accessBehaviourAllowedLabel',\n description: 'accessBehaviourAllowedDescription'\n }\n },\n requestingAccess: {\n none: {\n label: 'joinRequestsNoneLabel',\n description: 'joinRequestsNoneDescription'\n },\n allowed: {\n label: 'joinRequestsAllowedLabel',\n description: 'joinRequestsAllowedDescription'\n },\n any: {\n label: 'joinRequestsAnyLabel',\n description: 'joinRequestsAnyDescription'\n }\n }\n};\n\ninterface DomainSettingsRadioProps {\n option: DomainSettingsOption;\n selectedOption: DomainSettingsOption;\n view: AccessSettingsGroup,\n hasDescription?: boolean;\n url?: string;\n onSelectValue: (option: DomainSettingsOption) => void;\n children?: JSX.Element;\n}\n\nexport function DomainSettingsRadio(props: DomainSettingsRadioProps) {\n const { option, selectedOption, view, hasDescription, url, onSelectValue, children } = props;\n\n return (\n <div className='mb-3'>\n <FormCheck\n type='radio'\n id={option}\n label={getPhrase(radioPhraseMap[view][option].label)}\n className='fw-normal'\n value={option}\n onChange={() => onSelectValue(option)}\n checked={selectedOption === option}\n />\n {selectedOption === option && (\n <>\n {hasDescription && (\n <p className={`${styles.radioDescription} mb-0`}>\n <Text namespace={namespace} phrase={radioPhraseMap[view][option].description} />\n &nbsp;\n {!!url &&\n <a className='text-info' target='_blank' href={url}>\n <Text namespace={namespace} phrase='learnMore' />\n </a>\n }\n </p>\n )}\n {children}\n </>\n )}\n </div>\n );\n}\n","import React from 'react';\nimport { Form, FormikErrors, useFormikContext } from 'formik';\n\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { FormButtons } from 'libs/shared/components/forms/form-buttons/FormButtons';\nimport { FormSubmissionOptions, FormWrapper } from 'libs/shared/components/forms/form-wrapper/FormWrapper';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { AccessSettingsGroup } from 'libs/shared/enums/AccessSettingsGroup';\nimport { LiteSupportArticle } from 'libs/shared/enums/SupportArticle';\nimport { AccessSettingAppLinks } from 'libs/shared/interfaces/domains/AccessSettingAppLinks';\nimport { ApprovedDomain, DomainSettingsModel, DomainSettingsOption } from 'libs/shared/interfaces/domains/ApprovedDomain';\nimport { ApprovedDomainErrorResponse } from 'libs/shared/interfaces/domains/ApprovedDomainErrorResponse';\nimport { ArticleHelper } from 'libs/shared/utils/ArticleHelper';\nimport { DomainValidation } from 'libs/shared/utils/validation/DomainSettingsValidationSchema';\n\nimport { DomainFields } from '../domain-fields/DomainFields';\nimport { DomainSettingsRadio } from '../domain-settings-radio/DomainSettingsRadio';\n\nconst namespace = 'settings.domainSettingsForm';\n\ntype InfoMessageMap = {\n [key in AccessSettingsGroup]?: {\n [key in DomainSettingsOption]?: string;\n }\n}\n\nconst infoMessagePhraseMap: InfoMessageMap = {\n [AccessSettingsGroup.RequestingAccess]: {\n none: 'joinRequestsNoneInfoMessage',\n allowed: 'joinRequestsAllowedInfoMessage',\n any: 'joinRequestsAnyInfoMessage'\n },\n [AccessSettingsGroup.AutomaticAccess]: {\n none: 'accessBehaviourNoneInfoMessage',\n allowed: 'accessBehaviourAllowedInfoMessage'\n }\n};\n\ninterface DomainSettingsFormProps {\n view: AccessSettingsGroup,\n options: DomainSettingsOption[],\n errors: ApprovedDomainErrorResponse[]\n appLinks: AccessSettingAppLinks\n}\n\nfunction DomainSettingsForm(props: DomainSettingsFormProps): JSX.Element {\n const { view, options, errors, appLinks } = props;\n const formikProps = useFormikContext<DomainSettingsModel>();\n const { domains, selectedOption } = formikProps.values;\n\n function onSelectValue(value: DomainSettingsOption): void {\n formikProps.setFieldValue('selectedOption', value);\n formikProps.setErrors({});\n\n if (!domains.length) {\n addDomainField();\n }\n }\n\n function addDomainField() {\n formikProps.setFieldValue('domains', [ ...domains, { domain: '' }]);\n }\n\n function removeDomainField(index: number) {\n if (domains.length > 1) {\n formikProps.setFieldValue('domains', ArrayHelper.removeItemFromIndex(domains, index));\n } else {\n formikProps.setFieldValue('domains', ArrayHelper.cloneAndReplaceAtIdx(domains, index, {\n ...domains[index], domain: '' }));\n }\n clearFieldError(index);\n }\n\n function onChangeDomain(domain: ApprovedDomain, index: number) {\n formikProps.setFieldValue('domains', ArrayHelper.cloneAndReplaceAtIdx(domains, index, domain));\n clearFieldError(index);\n }\n \n function clearFieldError(index: number) {\n if (formikProps.errors.domains) {\n const domainErrors = formikProps.errors.domains as Partial<ApprovedDomain>[];\n const updatedDomainErrors =\n ArrayHelper.removeItemFromIndex<Partial<ApprovedDomain>>(domainErrors, index);\n \n formikProps.setErrors(\n updatedDomainErrors.filter(err => err).length\n ? ({ domains: updatedDomainErrors } as FormikErrors<DomainSettingsModel>)\n : {}\n );\n }\n }\n\n return (\n <Form>\n <div className='col-12 col-md-7 card p-3 mb-3'>\n {options.map(option => (\n <div key={option}>\n {option === 'none' && (\n <DomainSettingsRadio\n option={option}\n selectedOption={selectedOption}\n hasDescription\n view={view}\n onSelectValue={onSelectValue}\n />\n )}\n {option === 'allowed' && (\n <DomainSettingsRadio\n option={option}\n selectedOption={selectedOption}\n view={view}\n hasDescription\n url={ArticleHelper.getLiteArticle(LiteSupportArticle.AccessSettings, 'articles')}\n onSelectValue={onSelectValue}\n >\n <DomainFields\n errors={errors}\n view={view}\n appLinks={appLinks}\n addDomainField={addDomainField}\n onChangeDomain={onChangeDomain}\n removeDomainField={removeDomainField}\n />\n </DomainSettingsRadio>\n )}\n {option === 'any' && (\n <DomainSettingsRadio\n option={option}\n view={view}\n selectedOption={selectedOption}\n hasDescription\n url={ArticleHelper.getLiteArticle(LiteSupportArticle.AccessSettings, 'articles')}\n onSelectValue={onSelectValue}\n />\n )}\n </div>\n ))}\n\n <div className='d-flex'>\n <div className='rounded p-2 bg-light-blue text-info fw-semibold'>\n <Text namespace={namespace} phrase={infoMessagePhraseMap[view][selectedOption]} />\n </div>\n </div>\n </div>\n <FormButtons<DomainSettingsModel> isNew={false} variant='dark'/>\n </Form>\n );\n}\n\ninterface DomainSettingsProps {\n initialValues: DomainSettingsModel,\n view: AccessSettingsGroup,\n options: DomainSettingsOption[],\n errors?: ApprovedDomainErrorResponse[],\n appLinks: AccessSettingAppLinks\n onSaveChanges: (\n values: DomainSettingsModel,\n onDone: (options?: FormSubmissionOptions<DomainSettingsModel>) => void\n ) => void,\n}\n\nexport function DomainSettingsFormWrapper(props: DomainSettingsProps) {\n const { initialValues, view, options, errors, appLinks, onSaveChanges } = props;\n\n return (\n <FormWrapper<DomainSettingsModel>\n initialValues={initialValues}\n validate={DomainValidation}\n validateOnChange={false}\n validateOnBlur={false}\n onSubmit={onSaveChanges}\n >\n <DomainSettingsForm view={view} options={options} errors={errors} appLinks={appLinks}></DomainSettingsForm>\n </FormWrapper>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EntityType, LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { PillTabSelector } from 'libs/shared/components/pill-tab-selector/PillTabSelector';\nimport { AccessSettingAppLinks } from 'libs/shared/interfaces/domains/AccessSettingAppLinks';\n\nconst namespace = 'settings.domainSettingsTabs';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface DomainSettingsTabsProps {\n active: 'requesting-access' | 'teacher-invites' | 'automatic-access',\n appLinks: AccessSettingAppLinks\n}\n\nexport function DomainSettingsTabs(props: DomainSettingsTabsProps): JSX.Element {\n const { active, appLinks } = props;\n \n return (\n <div className='mb-3'>\n <PillTabSelector\n tabs={[{\n name: getPhrase('requestingAccess'),\n appLink: appLinks.requestingAccess,\n active: active === 'requesting-access',\n analyticsData: {\n name: getPhrase('requestingAccess'),\n url: Core.AppLinkHelper.getHref(appLinks.requestingAccess)\n },\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Url,\n location: LocationContext.MagicTabs\n }\n }, {\n name: getPhrase('teacherInvites'),\n appLink: appLinks.teacherInvites,\n active: active === 'teacher-invites',\n analyticsData: {\n name: LanguageService.getPhrase(namespace, 'teacherInvites'),\n url: Core.AppLinkHelper.getHref(appLinks.teacherInvites)\n },\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Url,\n location: LocationContext.MagicTabs\n }\n }, {\n name: getPhrase('automaticAccess'),\n appLink: appLinks.automaticAccess,\n active: active === 'automatic-access',\n analyticsData: {\n name: LanguageService.getPhrase(namespace, 'automaticAccess'),\n url: Core.AppLinkHelper.getHref(appLinks.automaticAccess)\n },\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Url,\n location: LocationContext.MagicTabs\n }\n }]}\n />\n </div>\n );\n}","import React from 'react';\n\nexport function CloseIcon(): JSX.Element {\n return (\n <svg viewBox='0 0 24 24'>\n <path d='M11.959 10.641l4.402-4.296a.964.964 0 0 1 1.358 0 .951.951 0 0 1 0 1.35l-4.403 4.297 4.403 4.378a.951.951 0 0 1 0 1.35.964.964 0 0 1-1.358 0l-4.402-4.378-4.32 4.378a.964.964 0 0 1-1.358 0 .951.951 0 0 1 0-1.35l4.32-4.378-4.32-4.362a.951.951 0 0 1 0-1.35.964.964 0 0 1 1.358 0l4.32 4.361z'/>\n </svg>\n );\n}","import React from 'react';\n\nimport { CloseIcon } from 'libs/shared/images/components/CloseIcon';\n\nimport styles from './clearable-input.scss';\n\ninterface ClearInputProps extends React.HTMLProps<HTMLInputElement> {\n showClearButton?: boolean;\n onClickClear: () => void;\n}\n\nexport const ClearableInput = React.forwardRef((\n props: ClearInputProps,\n ref: React.ForwardedRef<HTMLInputElement>\n) => {\n const { onClickClear, showClearButton, ...inputProps } = props;\n\n return (\n <div className='position-relative'>\n <input\n {...inputProps}\n ref={ref}\n className={`${props.className} ${styles.clearableInput}`}\n />\n {(!!props.value || showClearButton) &&\n <span\n className={`${styles.clearInput} position-absolute cursor-pointer text-secondary`}\n role='button'\n onClick={onClickClear}\n >\n <div className='d-inline-block svg-container md'>\n <CloseIcon />\n </div>\n </span>\n }\n </div>\n );\n});","// extracted by mini-css-extract-plugin\nexport default {\"clearInput\":\"ygMgF\",\"clearableInput\":\"aYpO7\"};","import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\nimport { useMediaQuery } from 'libs/shared/hooks/UseMediaQuery';\nimport { PartialLoadingHelper } from 'libs/shared/utils/PartialLoadingHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { SvgContainer, SvgContainerSize } from '../svg-container/SvgContainer';\n\nexport interface Breadcrumb {\n name: string;\n appLink?: Core.AppLink;\n active?: boolean;\n}\n\ninterface BreadcrumbItemProps {\n breadcrumb: Breadcrumb;\n withBackIcon?: boolean;\n}\n\nexport const BreadcrumbItem = ({ breadcrumb: { name, appLink, active }, withBackIcon }: BreadcrumbItemProps) => (\n <li className={`breadcrumb-item${active ? ' active' : ''}`}>\n {active\n ? <strong>{name}</strong>\n : <AppLink appLink={appLink}>\n {withBackIcon && <SvgContainer svgName={cvSvgLibrary.ChevronLeft} size={SvgContainerSize.Small} />}\n <span className={withBackIcon ? 'ms-2' : ''}>{name}</span>\n </AppLink>\n }\n </li>\n);\n\ninterface BreadcrumbsProps {\n breadcrumbs: Breadcrumb[];\n}\n\nexport const Breadcrumbs = ({ breadcrumbs }: BreadcrumbsProps) => {\n const isMobile = useMediaQuery(MediaQueryStrings.XS);\n\n const length = breadcrumbs?.length;\n\n if (!length || (isMobile && length < 2))\n return <></>;\n\n if (isMobile)\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n <BreadcrumbItem breadcrumb={breadcrumbs[length - 2]} withBackIcon />\n </ol>\n </nav>\n );\n\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n {breadcrumbs.map((b, idx) => <BreadcrumbItem key={idx} breadcrumb={b} />)}\n </ol>\n </nav>\n );\n};\n\nexport const PartialBreadcrumbs = React.memo(function({ numItems = 3 }: { numItems?: number; }) {\n const isMobile = useMediaQuery(MediaQueryStrings.XS);\n\n if (isMobile) {\n return (\n <div className='partial-loading-background' style={{ height: '1.3125rem', width: '6rem' }} />\n );\n }\n\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n {PartialLoadingHelper.getPartialLoadingItems({ numItems }).map(({ width }, idx) => (\n <li key={idx} className='breadcrumb-item'>\n <span className='d-inline-block partial-loading-background' style={{ width }} dangerouslySetInnerHTML={{ __html: '&nbsp' }} />\n </li>\n ))}\n </ol>\n </nav>\n );\n});","import * as React from 'react';\nimport { ButtonProps } from 'react-bootstrap';\nimport { useFormikContext } from 'formik';\n\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { FormSize } from 'libs/shared/components/forms/form-field/FormField';\nimport { SpinnerButton } from 'libs/shared/components/spinner-button/SpinnerButton';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { useCanSubmitForm } from 'libs/shared/hooks/UseCanSubmitForm';\n\nconst namespace = 'shared.formButtons';\n\ninterface FormButtonsProps {\n isNew?: boolean;\n submitText?: string;\n variant?: ButtonProps['variant'];\n size?: FormSize;\n className?: string;\n}\n\nexport function FormButtons<Values extends HashObject>(props: FormButtonsProps): JSX.Element {\n const formikProps = useFormikContext<Values>();\n\n const canSubmit = useCanSubmitForm(formikProps);\n\n return (\n <SpinnerButton\n variant={props.variant || 'primary'}\n type='submit'\n disabled={!canSubmit}\n size={props.size}\n className={props.className ? props.className : ''}\n showSpinner={formikProps.isSubmitting}\n >\n {props.submitText\n ? <>{props.submitText}</>\n : <Text namespace={namespace} phrase={props.isNew ? 'create' : 'save'} />}\n </SpinnerButton>\n );\n}\n","import * as React from 'react';\nimport { Formik, FormikConfig, FormikContextType, FormikErrors, FormikHelpers, FormikProps, FormikValues, useFormikContext } from 'formik';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\n/**\n * Note: This currently doesn't support arrays, but the need for arrays as initial\n * form data has not yet come up\n */\nfunction omitNullInitialValues<Values extends FormikValues>(initialValues: Values): Values {\n if (!initialValues)\n return {} as Values;\n\n const values = ObjectHelper.deepClone(initialValues);\n\n function omitChildValues(child: Values): void {\n Object.keys(values).forEach((key: keyof Values) => {\n if (!values.hasOwnProperty(key))\n return;\n \n if (ObjectHelper.isObject(child[key]))\n omitChildValues(child[key]);\n else if (values[key] === null)\n delete values[key];\n });\n }\n\n omitChildValues(values);\n return values;\n}\n\n// Omit attributes from FormikConfig that are defined in FormWrapperProps.\ntype ModifiedFormikConfig<Values extends FormikValues> = Omit<FormikConfig<Values>, 'initialValues' | 'onSubmit'>;\n\ninterface InitialStatus {\n allowInitialSubmit: boolean;\n}\n\nexport type FormSubmissionOptions<FormValues = FormikValues> = {\n reset?: boolean;\n errors?: FormikErrors<FormValues>;\n};\n\ninterface FormWrapperProps<FormValues extends FormikValues, ApiValues extends FormikValues> {\n initialValues: Partial<FormValues | ApiValues>;\n onSubmit: (data: FormValues, onDone: (options?: FormSubmissionOptions<FormValues>) => void) => void;\n castInitialValues?: boolean; // cast to validationSchema\n castValuesOnSubmit?: boolean; // cast to validationSchema\n allowInitialSubmit?: boolean; // if true, useCanSubmitForm will allow submit without any user changes.\n}\n\nFormWrapper.defaultProps = {\n castInitialValues: true,\n castValuesOnSubmit: true\n};\n\nexport function FormWrapper<\n FormValues extends FormikValues = FormikValues,\n ApiValues extends FormikValues = FormValues,\n ExtraProps = HashObject\n>(props: ModifiedFormikConfig<FormValues> & ExtraProps & FormWrapperProps<FormValues, ApiValues>): JSX.Element {\n const { castInitialValues, castValuesOnSubmit, initialValues, onSubmit, ...formikProps } = props;\n\n /**\n * If castInitialValues is true, cast initialValues to the validationSchema.\n * This will ensure that any data fetched from the api conforms to the expected form data shape.\n */\n const formattedInitialValues: FormValues = castInitialValues && props.validationSchema\n ? props.validationSchema.cast(omitNullInitialValues(initialValues))\n : initialValues;\n\n const onSubmitHandler = (\n values: FormValues,\n { setSubmitting, resetForm, setFieldError }: FormikHelpers<FormValues>\n ) => {\n /**\n * validationSchema.cast will coerce the values to the types defined in validationSchema.\n * This is useful for trimming inputs:\n * e.g. if a value field has type Yup.string().trim(), it will be automatically trimmed.\n */\n const formattedData = castValuesOnSubmit && props.validationSchema\n ? props.validationSchema.cast(values)\n : values;\n\n onSubmit(formattedData, (options: FormSubmissionOptions<FormValues> = {}) => {\n options.reset && resetForm();\n\n if (options.errors) {\n for (const [ key, value ] of Object.entries(options.errors)) {\n setFieldError(key, value);\n }\n }\n\n setSubmitting(false);\n });\n };\n\n const initialStatus: InitialStatus = {\n allowInitialSubmit: props.allowInitialSubmit\n };\n\n return (\n <Formik<FormValues, ExtraProps>\n enableReinitialize\n {...(formikProps as ModifiedFormikConfig<FormValues> & ExtraProps)}\n initialValues={formattedInitialValues}\n onSubmit={onSubmitHandler}\n initialStatus={initialStatus}\n >\n {FunctionHelper.isFunction(props.children)\n ? (f: FormikProps<FormValues>) => (props.children as (f: FormikProps<FormValues>) => React.ReactNode)(f)\n : React.Children.count(props.children) ? props.children : null\n }\n </Formik>\n );\n}\n\nexport function useFormikContextWrapper<T>(): FormikContextType<T> {\n return useFormikContext<T>();\n}","import React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Badge, BadgeType } from 'libs/shared/components/badges/Badge';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\n\nimport { SvgContainer } from '../svg-container/SvgContainer';\n\nimport styles from './pill-tab-selector.scss';\n\ninterface TabContentsProps {\n tab: PillTab;\n}\n\nfunction TabContents(props: TabContentsProps): JSX.Element {\n return (\n <>\n {!!props.tab.svgName && (\n <div className={props.tab.name ? 'pe-1' : ''}>\n <SvgContainer svgName={props.tab.svgName} />\n </div>\n )}\n\n {props.tab.name}\n\n {typeof (props.tab.count) === 'number' && (\n <div className='ps-2'>\n <Badge type={BadgeType.Count} data={props.tab.count} />\n </div>\n )}\n </>\n );\n}\n\nexport interface PillTab {\n name: string;\n active: boolean;\n svgName?: string;\n\n className?: string;\n\n appLink?: Core.AppLink;\n onSelect?: () => void;\n\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n\n count?: number;\n}\n\ninterface PillTabSelectorProps {\n tabs: PillTab[];\n containerRef?: (el: HTMLElement) => void;\n listClassName?: string;\n className?: string;\n borderRadius?: 'sm' | 'lg'\n}\n\nPillTabSelector.defaultProps = {\n borderRadius: 'lg'\n};\n\nexport function PillTabSelector(props: PillTabSelectorProps): JSX.Element {\n function onSelectTab(tab: PillTab): void {\n if (tab.active || !tab.onSelect)\n return;\n\n tab.onSelect();\n\n if (tab.analyticsData && tab.analyticsOptions)\n AnalyticsHelper.logUserAction(tab.analyticsData, tab.analyticsOptions);\n }\n\n return (\n <nav className={props.className ?? ''} ref={props.containerRef}>\n <ul className={`\n list-unstyled d-inline-block m-0 ${styles.pillTabSelector}\n ${props.borderRadius ? styles.radiusSmall : ''}\n ${props.listClassName}\n `}>\n {props.tabs.map((tab, index) => {\n return (\n <li\n className={`\n p-0 ${styles.tab} ${tab.active ? 'btn btn-dark' : 'btn btn-outline-dark'}\n ${tab.name ? styles.minWidth : ''} ${tab.className}\n `}\n key={index}\n >\n {tab.appLink ? (\n <AppLink\n appLink={tab.appLink}\n analyticsData={tab.analyticsData}\n analyticsOptions={tab.analyticsOptions}\n className={`\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ${styles.tabLink}\n `}\n >\n <TabContents tab={tab} />\n </AppLink>\n ) : (\n <DivButton\n className={`\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset p-2 text-nowrap ${styles.tabLink}\n `}\n onClick={() => onSelectTab(tab)}\n >\n <TabContents tab={tab} />\n </DivButton>\n )}\n </li>\n );\n })}\n </ul>\n </nav>\n );\n}\n","export enum AccessSettingsGroup {\n RequestingAccess = 'requestingAccess',\n TeacherInvites = 'teacherInvites',\n AutomaticAccess = 'automaticAccess'\n}","export enum AccessType {\n Request = 'request',\n AutoJoin = 'auto-join',\n NoRequest = 'no-request'\n}","// Article name mapped to article ID on support site. Used by `ArticleHelper`\n\nexport enum OnlineSupportArticle {\n AddToPlaylist = '115005679748',\n EditSsoAccounts = '8202508040345',\n\n // LE\n LibraryEditor = '360001974533',\n VideoAccess = '360000153947',\n AddFromOnline = '360011718234',\n UploadToLibraryEditor = '360012069334',\n PBTErrorCodes = '360012421153',\n ManuelReview = '360020004534',\n LibraryReview = '360000163788',\n}\n\nexport enum LiteSupportArticle {\n Integrations = '4407268725529',\n Classrooms = '4405362551833',\n MakeInteractive = '4405370510873',\n EditSsoAccounts = '8202605666073',\n UploadToLibraryEditor = '10672936659865',\n AddFromLite = '10671345281561',\n ManageSsoYearGroups = '14691130889241',\n ContentReview = '18525199576601',\n ContentPermissions = '14692125209497',\n AccessSettings = '22110291468057',\n ContentGuidelines = '24133696186009',\n FoxtelFaq = '24133519542169',\n ViviIntegration = '23826297956377',\n AppleTvIntegration = '25832373739929',\n RssFeed = '32567445635097'\n}\n","import { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { AccessType } from 'libs/shared/enums/AccessType';\nimport { ApprovedDomain, DomainSettingsModel } from 'libs/shared/interfaces/domains/ApprovedDomain';\n\nfunction has(accessType: AccessType, domains: ApprovedDomain[]): boolean {\n return !!ArrayHelper.findWhere(domains, { accessType });\n}\n\nfunction getFilteredDomains(domains: ApprovedDomain[], ...accessTypes: AccessType[]): ApprovedDomain[] {\n return domains.filter(domain => accessTypes.some(accessType => accessType === domain.accessType));\n}\n\nexport const DomainSettingsFormHelper = {\n getInitialJoinRequests(domains: ApprovedDomain[]): DomainSettingsModel {\n const filteredDomains = getFilteredDomains(domains, AccessType.Request, AccessType.NoRequest);\n \n if (has(AccessType.Request, filteredDomains))\n return { selectedOption: 'allowed', domains: filteredDomains };\n\n if (has(AccessType.NoRequest, filteredDomains))\n return { selectedOption: 'none', domains: []};\n \n return { selectedOption: 'any', domains: []};\n },\n getInitialAccessBehaviour(domains: ApprovedDomain[]): DomainSettingsModel {\n const filteredDomains = getFilteredDomains(domains, AccessType.AutoJoin);\n\n if (has(AccessType.AutoJoin, filteredDomains))\n return { selectedOption: 'allowed', domains: filteredDomains };\n\n return { selectedOption: 'none', domains: []};\n },\n formatRequestData(\n prevDomains: ApprovedDomain[],\n values: DomainSettingsModel,\n accessType: AccessType\n ): ApprovedDomain[] {\n const { domains, selectedOption } = values;\n const prevAutoJoinDomains = getFilteredDomains(prevDomains, AccessType.AutoJoin);\n const prevRequestDomains = getFilteredDomains(prevDomains, AccessType.Request, AccessType.NoRequest);\n\n if (accessType === AccessType.Request) {\n let requestDomains: ApprovedDomain[] = [];\n switch (selectedOption) {\n case 'none':\n requestDomains = [{ accessType: AccessType.NoRequest, domain: '' }];\n break;\n case 'allowed':\n requestDomains = domains.map(domain => ({ ...domain, accessType: AccessType.Request }));\n break;\n case 'any':\n }\n return [ ...prevAutoJoinDomains, ...requestDomains ];\n }\n\n if (accessType === AccessType.AutoJoin) {\n let autoJoinDomains: ApprovedDomain[] = [];\n switch (selectedOption) {\n case 'allowed':\n autoJoinDomains = domains.map(domain => ({ ...domain, accessType: AccessType.AutoJoin }));\n break;\n case 'none':\n }\n return [ ...prevRequestDomains, ...autoJoinDomains ];\n }\n }\n};\n","const DEFAULT_PARTIAL_LOADING_OPTIONS: PartialLoadingOptions = {\n numItems: 5,\n minWidth: 50, // px\n maxWidth: 100 // px\n};\n\nexport interface PartialLoadingOptions {\n numItems?: number;\n minWidth?: number;\n maxWidth?: number;\n}\n\ninterface PartialLoadingItem {\n width: string;\n}\n\nexport const PartialLoadingHelper = {\n getPartialLoadingItems(options: PartialLoadingOptions = {}): PartialLoadingItem[] {\n const opts = {\n ...DEFAULT_PARTIAL_LOADING_OPTIONS,\n ...options\n };\n\n const getRandomFilterWidth = () => Math.max(Math.floor(Math.random() * opts.maxWidth), opts.minWidth);\n\n return [...Array(opts.numItems)].map(() => ({ width: `${getRandomFilterWidth()}px` }));\n }\n};","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { Breadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { useGetSettingsGroups } from 'apps/settings/hooks/useGetSettingsGroups';\n\nconst namespace = 'settings.settingsLayout';\n\n/**\n * Checks if the current user has permission to access the settings module\n */\nexport const useCanAccessSettings = (requiredPermissions: PermissionName | PermissionName[]): boolean => {\n const { hasPermissions } = usePermissions();\n const settingsGroups = useGetSettingsGroups();\n\n /**\n * TODO: Update all settings pages to pasas required permissions, because checking the \n * `useGetSettingsGroups()` values clearly doesnt work for settings pages with multiple\n * applinks inside of them. - Sha\n */\n if (requiredPermissions)\n return hasPermissions(requiredPermissions);\n\n const currentRoute = Core.AppLinkHelper.getCurrentAppLink();\n\n /**\n * Allows us to have popups sitting in other locations be used\n * by our settings pages. For example the manage video access popup\n * in the \"videos with restricted access\" page - Sha\n */\n if (currentRoute.application !== AppChannels.SETTINGS)\n return true;\n\n return settingsGroups.some(group => {\n return group.modules.some(settingsModule => {\n if ('appLink' in settingsModule) {\n return settingsModule.appLink.action === currentRoute.action;\n }\n\n return false;\n });\n });\n};\n\ninterface SettingsLayoutProps {\n heading: string;\n breadcrumbs: string[];\n description?: string;\n requiredPermissions?: PermissionName | PermissionName[];\n headingButton?: () => JSX.Element;\n}\n\nexport function SettingsLayout(props: React.PropsWithChildren<SettingsLayoutProps>): JSX.Element {\n const canAccess = useCanAccessSettings(props.requiredPermissions);\n\n React.useEffect(() => {\n if (!canAccess) {\n Core.AppLinkHelper.trigger({\n application: AppChannels.SETTINGS,\n action: Actions.Settings.HOME\n }, { replace: true });\n }\n }, [canAccess]);\n\n if (!canAccess)\n return <></>;\n\n const breadcrumbs = props.breadcrumbs.map((name, i) => ({\n name,\n appLink: {\n application: AppChannels.SETTINGS,\n action: Actions.Settings.HOME\n },\n active: i === props.breadcrumbs.length - 1\n }));\n\n return (\n <div className='px-3'>\n <div className='d-flex align-items-center justify-content-between'>\n <h1 className='h2'>{props.heading}</h1>\n {props.headingButton?.()}\n </div>\n <div className='pb-3'>\n <Breadcrumbs\n breadcrumbs={[\n {\n name: LanguageService.getPhrase(namespace, 'settingsBreadcrumb'),\n appLink: {\n application: AppChannels.SETTINGS,\n action: Actions.Settings.HOME\n }\n },\n ...breadcrumbs\n ]}\n />\n </div>\n {props.description &&\n <>\n <p>{props.description}</p>\n <hr />\n </>\n }\n\n {props.children}\n </div>\n );\n}","import { Core } from 'libs/common/backbone/index';\n\nimport { AccessSettingsGroup } from 'libs/shared/enums/AccessSettingsGroup';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nexport const AccessSettingsAppLinks: { [key in AccessSettingsGroup]: Core.AppLink } = {\n [AccessSettingsGroup.RequestingAccess]: {\n application: AppChannels.SETTINGS,\n action: Actions.Settings.REQUESTING_ACCESS\n },\n [AccessSettingsGroup.TeacherInvites]: {\n application: AppChannels.SETTINGS,\n action: Actions.Settings.TEACHER_INVITES\n },\n [AccessSettingsGroup.AutomaticAccess]: {\n application: AppChannels.SETTINGS,\n action: Actions.Settings.AUTOMATIC_ACCESS\n }\n};\n","import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { Flight } from 'libs/common/flight';\n\nimport { ApprovedDomain } from 'libs/shared/interfaces/domains/ApprovedDomain';\n\nexport const DomainRequests = {\n domains(customerId: string): Flight.Request {\n return {\n url: `{gateway}/v1/customers/${customerId}/approved-domains`,\n key: 'domains',\n normalize: false\n };\n },\n updateDomains(\n customerId: string,\n data: ApprovedDomain[]\n ): Flight.Request {\n return {\n url: `{gateway}/v1/customers/${customerId}/approved-domains`,\n key: 'update:domains',\n type: HttpVerbs.PUT,\n data,\n normalize: false,\n invalidationKeys: ['domains']\n };\n }\n};","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { useSettings } from 'libs/shared/hooks/useSettings';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nexport function useDomainSettingsSwitch() {\n const { isLoadingSettings, domainSettings } = useSettings(LocationContext.Settings);\n\n React.useEffect(() => {\n if (isLoadingSettings)\n return;\n\n if (!domainSettings) {\n Core.AppLinkHelper.trigger({\n application: AppChannels.SETTINGS,\n action: Actions.Settings.HOME\n }, { replace: true });\n }\n }, [ domainSettings, isLoadingSettings ]);\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"pillTabSelector\":\"Hdi6o\",\"tab\":\"RvNxr\",\"minWidth\":\"GHSz9\",\"radiusSmall\":\"VhJJa\",\"tabLink\":\"WFyvo\"};"],"names":["domainRegex","RegExp","DomainValidation","values","domains","selectedOption","errors","forEach","domain","index","find","currentDomain","currentIndex","hasChanged","test","length","namespace","getPhrase","LanguageService","errorMessagePhraseMap","requestingAccess","automaticAccess","props","formikProps","view","appLinks","onChangeDomain","removeDomainField","actionMap","AccessSettingsGroup","action","viewAppLink","application","args","getDomainErrorCode","className","ClearableInput","type","name","placeholder","value","onChange","e","preventDefault","updatedDomain","currentTarget","handleChange","onClickClear","autoComplete","showClearButton","domainErrorCode","Text","phrase","options","AppLink","appLink","getDomainErrorMessage","DomainFields","addDomainField","error","errorIndex","ArrayHelper","setFieldError","errorCode","render","map","key","IconButton","svgName","onClick","radioPhraseMap","none","label","description","allowed","any","option","hasDescription","url","onSelectValue","children","FormCheck","id","checked","target","href","infoMessagePhraseMap","DomainSettingsForm","setFieldValue","setErrors","clearFieldError","domainErrors","updatedDomainErrors","filter","err","ArticleHelper","FormButtons","isNew","variant","DomainSettingsFormWrapper","initialValues","onSaveChanges","FormWrapper","validate","validateOnChange","validateOnBlur","onSubmit","DomainSettingsTabs","active","tabs","analyticsData","analyticsOptions","actionType","entity","location","teacherInvites","CloseIcon","viewBox","d","ref","inputProps","role","BreadcrumbItem","breadcrumb","withBackIcon","size","S","Breadcrumbs","breadcrumbs","isMobile","b","idx","PartialBreadcrumbs","numItems","style","height","width","dangerouslySetInnerHTML","__html","canSubmit","disabled","showSpinner","isSubmitting","submitText","castInitialValues","castValuesOnSubmit","formattedInitialValues","validationSchema","cast","omitChildValues","child","Object","keys","hasOwnProperty","omitNullInitialValues","initialStatus","allowInitialSubmit","enableReinitialize","setSubmitting","resetForm","formattedData","reset","entries","f","useFormikContextWrapper","defaultProps","TabContents","tab","count","data","PillTabSelector","containerRef","borderRadius","listClassName","onSelect","onSelectTab","AccessType","OnlineSupportArticle","LiteSupportArticle","has","accessType","getFilteredDomains","accessTypes","some","DomainSettingsFormHelper","getInitialJoinRequests","filteredDomains","getInitialAccessBehaviour","formatRequestData","prevDomains","prevAutoJoinDomains","prevRequestDomains","requestDomains","autoJoinDomains","DEFAULT_PARTIAL_LOADING_OPTIONS","minWidth","maxWidth","PartialLoadingHelper","getPartialLoadingItems","opts","Array","Math","max","floor","random","useCanAccessSettings","requiredPermissions","hasPermissions","settingsGroups","currentRoute","group","modules","settingsModule","SettingsLayout","canAccess","replace","i","heading","headingButton","AccessSettingsAppLinks","DomainRequests","customerId","normalize","updateDomains","invalidationKeys","useDomainSettingsSwitch","isLoadingSettings","domainSettings"],"sourceRoot":""}
@@ -1,3 +0,0 @@
1
- /*! For license information please see 9230-6dee40b1fb-lite.chunk.js.LICENSE.txt */
2
- "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[9230],{83657:(e,t,n)=>{n.d(t,{e:()=>s});var r=n(32735),a=n(91967),o=n(10874),i=n(76177),c=n(42735),l=n(86509);function s(e){var t=r.useMemo((function(){return e.actions.sort((function(e,t){return e.order-t.order}))}),[e.actions]),n=[],s=[];t.forEach((function(e){e.button?n.push(e):s.push(e)}));var u="d-flex";return e.className&&(u+=" ".concat(e.className)),n.length||s.length?r.createElement("div",{className:u},n.length?n.map((function(t,n){return r.createElement(r.Fragment,{key:n},function(){if(t.label){var n=a.q.isFunction(t.label)?t.label:function(){return r.createElement(r.Fragment,null,t.label)};return r.createElement(c.K,{appLink:t.appLink,href:t.href,onClick:t.onClick,svgName:t.svgName,svgSize:e.dropdownToggleSvgSize,className:t.className,tooltip:t.tooltip,showSpinner:t.showSpinner,analyticsData:t.analyticsData,analyticsOptions:t.analyticsOptions,openInNewTab:t.openInNewTab,disabled:t.disabled},n())}var l=r.createElement(o.h,{appLink:t.appLink,href:t.href,onClick:t.onClick,svgName:t.svgName,className:t.className,analyticsData:t.analyticsData,analyticsOptions:t.analyticsOptions,openInNewTab:t.openInNewTab,disabled:t.disabled,showBorder:t.showBorder,customSize:e.customSize});return t.tooltip?r.createElement(i.u,{title:t.tooltip,spanHack:!0},l):l}())})):r.createElement(r.Fragment,null),e.sortComponent&&e.sortComponent,s.length?r.createElement(l.m,{actions:s,dropdownToggleClassName:e.actionsDropdownClassName,dropdownToggleSvgSize:e.dropdownToggleSvgSize,fetchMore:e.fetchMore}):r.createElement(r.Fragment,null)):r.createElement(r.Fragment,null)}},86509:(e,t,n)=>{n.d(t,{m:()=>h});var r=n(32735),a=n(91967),o=n(81886),i=n(45157),c=n(49985),l=n(36848),s=n(83914),u=n(76177),m=n(35223);const d={dropdownToggle:"UCAnJ"};function p(){return r.createElement(r.Fragment,null,r.createElement("div",{style:{padding:"0.53125rem 1rem"}},r.createElement("div",{className:"partial-loading-background",style:{height:"1.0625rem",width:"8rem"}})),r.createElement("div",{style:{padding:"0.53125rem 1rem"}},r.createElement("div",{className:"partial-loading-background",style:{height:"1.0625rem",width:"12rem"}})),r.createElement("div",{style:{padding:"0.53125rem 1rem"}},r.createElement("div",{className:"partial-loading-background",style:{height:"1.0625rem",width:"11rem"}})),r.createElement("div",{style:{padding:"0.53125rem 1rem"}},r.createElement("div",{className:"partial-loading-background",style:{height:"1.0625rem",width:"9rem"}})))}function f(e){var t="dropdown-item";return e&&(t+=" ".concat(e)),t}function v(e){var t=a.q.isFunction(e.action.label)?e.action.label:function(){return r.createElement(r.Fragment,null,e.action.label)};if(e.action.appLink)return r.createElement(l.F,{appLink:e.action.appLink,onClick:e.action.onClick,className:f(e.action.className),analyticsData:e.action.analyticsData,analyticsOptions:e.action.analyticsOptions,openInNewTab:e.action.openInNewTab,disabled:e.action.disabled},e.action.svgName&&r.createElement(s.x,{svgName:e.action.svgName,className:"d-inline-block svg-container me-2 align-middle"}),r.createElement("span",{className:"align-middle"},t()));function n(t){t.preventDefault(),e.action.analyticsData&&e.action.analyticsOptions&&c.k.logUserAction(e.action.analyticsData,e.action.analyticsOptions),a.q.isFunction(e.action.onClick)&&e.action.onClick(),e.action.href&&o.Q.Ab.PageLoad(e.action.href,e.action.openInNewTab)}return e.action.href?r.createElement("a",{className:f(e.action.className),onClick:n,href:e.action.href},e.action.svgName&&r.createElement(s.x,{svgName:e.action.svgName,className:"d-inline-block svg-container me-2 align-middle"}),r.createElement("span",{className:"align-middle"},t())):r.createElement("span",{className:"cursor-pointer ".concat(f(e.action.className)),onClick:n,role:"button",tabIndex:0,onKeyDown:function(e){return"Enter"===e.key&&n(e)}},e.action.svgName&&r.createElement(s.x,{svgName:e.action.svgName,className:"d-inline-block svg-container me-2"}),t())}function h(e){if(!e.actions||!e.actions.length)return r.createElement(r.Fragment,null);var t=e.actions.some((function(e){return e.lazyPlaceholder})),n="dropdown";e.className&&(n+=" ".concat(e.className));var a,o="actions-dropdown-".concat(i.Y.getRandomInt()),c="dropdown-toggle px-0 ".concat(d.dropdownToggle);return e.dropdownToggleClassName&&(c+=" ".concat(e.dropdownToggleClassName)),r.createElement("div",{className:n},r.createElement("button",{className:c,type:"button",id:o,"data-bs-toggle":"dropdown","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","aria-label":"More actions dropdown",onClick:t?e.fetchMore:null},r.createElement(s.x,{svgName:m.vn.More,size:e.dropdownToggleSvgSize})),r.createElement("ul",{className:"dropdown-menu dropdown-menu-end dropdown-menu-right font-size-normal","aria-labelledby":o},t?r.createElement(p,null):e.actions.map((function(e,t){var n=void 0!==a&&a!==e.group;return a=e.group,e.tooltip?r.createElement("li",{key:t},n&&r.createElement("hr",{className:"dropdown-divider",role:"separator"}),r.createElement(u.u,{title:e.tooltip,spanHack:!0},r.createElement(v,{action:e}))):r.createElement("li",{key:t},n&&r.createElement("hr",{className:"dropdown-divider",role:"separator"}),r.createElement(v,{action:e}))}))))}h.defaultProps={dropdownToggleClassName:"btn btn-light",dropdownToggleSvgSize:s.S.Small}},49935:(e,t,n)=>{n.d(t,{Oo:()=>m,b2:()=>d});var r=n(32735),a=n(36848),o=n(86764),i=n(3747),c=n(5859),l=n(35223),s=n(83914),u=function(e){var t=e.breadcrumb,n=t.name,o=t.appLink,i=t.active,c=e.withBackIcon;return r.createElement("li",{className:"breadcrumb-item".concat(i?" active":"")},i?r.createElement("strong",null,n):r.createElement(a.F,{appLink:o},c&&r.createElement(s.x,{svgName:l.vn.ChevronLeft,size:s.S.Small}),r.createElement("span",{className:c?"ms-2":""},n)))},m=function(e){var t=e.breadcrumbs,n=(0,i.a)(o.r.XS),a=null==t?void 0:t.length;return!a||n&&a<2?r.createElement(r.Fragment,null):n?r.createElement("nav",{"aria-label":"breadcrumb"},r.createElement("ol",{className:"breadcrumb m-0 p-0"},r.createElement(u,{breadcrumb:t[a-2],withBackIcon:!0}))):r.createElement("nav",{"aria-label":"breadcrumb"},r.createElement("ol",{className:"breadcrumb m-0 p-0"},t.map((function(e,t){return r.createElement(u,{key:t,breadcrumb:e})}))))},d=r.memo((function(e){var t=e.numItems,n=void 0===t?3:t;return(0,i.a)(o.r.XS)?r.createElement("div",{className:"partial-loading-background",style:{height:"1.3125rem",width:"6rem"}}):r.createElement("nav",{"aria-label":"breadcrumb"},r.createElement("ol",{className:"breadcrumb m-0 p-0"},c.u.getPartialLoadingItems({numItems:n}).map((function(e,t){var n=e.width;return r.createElement("li",{key:t,className:"breadcrumb-item"},r.createElement("span",{className:"d-inline-block partial-loading-background",style:{width:n},dangerouslySetInnerHTML:{__html:"&nbsp"}}))}))))}))},61254:(e,t,n)=>{n.d(t,{s:()=>c});var r=n(32735),a=n(42648);function o(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,o,i,c=[],l=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=o.call(n)).done)&&(c.push(r.value),c.length!==t);l=!0);}catch(e){s=!0,a=e}finally{try{if(!l&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(s)throw a}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return i(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?i(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var c=r.forwardRef((function(e,t){var n=o(r.useState(e.containerHeight||0),2),i=n[0],c=n[1],l=o(r.useState(0),2),s=l[0],u=l[1],m=r.useRef(null);r.useEffect((function(){var t,n;e.containerHeight||c(null!==(n=null===(t=m.current)||void 0===t?void 0:t.clientHeight)&&void 0!==n?n:0)}),[m.current]);var d,p,f,v=e.items.length,h=Math.ceil(i/e.rowHeight),g=e.rowHeight*v,y=Math.max(0,Math.floor(s/e.rowHeight)-h),b=Math.min(v,y+3*h);return r.createElement("div",{style:(f=null!==(p=null===(d=m.current)||void 0===d?void 0:d.getBoundingClientRect().top)&&void 0!==p?p:0,{height:e.containerHeight||"calc(100vh - ".concat(window.pageYOffset+f+30,"px)"),minHeight:"".concat(5*e.rowHeight,"px"),overflow:"auto"}),ref:m},r.createElement(a.$B,{onScroll:function(e){u(e.currentTarget.scrollTop)},autoHeightMin:g,autoHeightMax:g,ref:t},r.createElement("div",{style:{height:g,paddingTop:y*e.rowHeight}},r.createElement("ul",{className:"w-100 position-relative d-table striped-list list-unstyled no-full-width"},!!e.staticComponentAboveRows&&e.staticComponentAboveRows,function(){for(var t=[],n=y;n<b;){var r=e.items[n];r&&t.push(e.getComponent(r,n)),n++}return t}(),!!e.staticComponentBelowRows&&e.staticComponentBelowRows))))}))},99705:(e,t,n)=>{var r,a;n.d(t,{b:()=>a}),function(e){e.AddToPlaylist="115005679748",e.EditSsoAccounts="8202508040345",e.LibraryEditor="360001974533",e.VideoAccess="360000153947",e.AddFromOnline="360011718234",e.UploadToLibraryEditor="360012069334",e.PBTErrorCodes="360012421153",e.ManuelReview="360020004534",e.LibraryReview="360000163788"}(r||(r={})),function(e){e.Integrations="4407268725529",e.Classrooms="4405362551833",e.MakeInteractive="4405370510873",e.EditSsoAccounts="8202605666073",e.UploadToLibraryEditor="10672936659865",e.AddFromLite="10671345281561",e.ManageSsoYearGroups="14691130889241",e.ContentReview="18525199576601",e.ContentPermissions="14692125209497",e.AccessSettings="22110291468057",e.ContentGuidelines="24133696186009",e.FoxtelFaq="24133519542169",e.ViviIntegration="23826297956377",e.AppleTvIntegration="25832373739929",e.RssFeed="32567445635097"}(a||(a={}))},5859:(e,t,n)=>{function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}n.d(t,{u:()=>o});var a={numItems:5,minWidth:50,maxWidth:100},o={getPartialLoadingItems:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=Object.assign(Object.assign({},a),t);return(e=Array(n.numItems),function(e){if(Array.isArray(e))return r(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return r(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?r(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()).map((function(){return{width:"".concat(Math.max(Math.floor(Math.random()*n.maxWidth),n.minWidth),"px")}}))}}},81803:(e,t,n)=>{n.d(t,{d:()=>f});var r=n(32735),a=n(81886),o=n(23481),i=n(49935),c=n(22902),l=n(14070),s=n(97291),u=n(96368);function m(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var d="settings.settingsLayout",p=function(e){var t=(0,c.T)().hasPermissions,n=(0,u.e)();if(e)return t(e);var r=a.Q.C$.getCurrentAppLink();return r.application!==s.O.SETTINGS||n.some((function(e){return e.modules.some((function(e){return"appLink"in e&&e.appLink.action===r.action}))}))};function f(e){var t,n=p(e.requiredPermissions);if(r.useEffect((function(){n||a.Q.C$.trigger({application:s.O.SETTINGS,action:l.e.Settings.HOME},{replace:!0})}),[n]),!n)return r.createElement(r.Fragment,null);var c,u=e.breadcrumbs.map((function(t,n){return{name:t,appLink:{application:s.O.SETTINGS,action:l.e.Settings.HOME},active:n===e.breadcrumbs.length-1}}));return r.createElement("div",{className:"px-3"},r.createElement("div",{className:"d-flex align-items-center justify-content-between"},r.createElement("h1",{className:"h2"},e.heading),null===(t=e.headingButton)||void 0===t?void 0:t.call(e)),r.createElement("div",{className:"pb-3"},r.createElement(i.Oo,{breadcrumbs:[{name:o.T.getPhrase(d,"settingsBreadcrumb"),appLink:{application:s.O.SETTINGS,action:l.e.Settings.HOME}}].concat((c=u,function(e){if(Array.isArray(e))return m(e)}(c)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(c)||function(e,t){if(e){if("string"==typeof e)return m(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?m(e,t):void 0}}(c)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()))})),e.description&&r.createElement(r.Fragment,null,r.createElement("p",null,e.description),r.createElement("hr",null)),e.children)}},28611:(e,t,n)=>{n.d(t,{i:()=>o});var r=n(32735);const a={numberContainer:"JBRDi"};function o(e){var t=e.number,n=e.children,o=e.className,i=void 0===o?"":o;return r.createElement("div",{className:"d-flex align-items-center mb-3 ".concat(i)},r.createElement("div",{className:"d-flex align-items-center justify-content-center bg-dark rounded-circle ".concat(a.numberContainer)},r.createElement("span",{className:"text-light"},t)),r.createElement("div",{className:"ms-2"},n))}},65271:(e,t,n)=>{n.r(t),n.d(t,{AppleTvSettingsView:()=>ne});var r=n(32735),a=n(23481),o=n(61254),i=n(16714),c=n(69883),l=n(83657),s=n(86509),u=n(83914),m=n(35223),d=n(12399);const p={indicator:"xidrU"};function f(e){return f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},f(e)}function v(e,t,n){return(t=function(e){var t=function(e,t){if("object"!=f(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,"string");if("object"!=f(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==f(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var h=a.T.encloseNamespace("settings.deviceListItem");function g(e){var t=e.status,n=e.name,a=e.onUnpair,o=e.onRename;return r.createElement("li",{className:"d-flex align-items-center p-2 justify-content-between"},r.createElement("div",{className:"d-flex align-items-center"},r.createElement(u.x,{svgName:m.vn.AppleTv,className:"svg-container me-2"}),r.createElement("div",null,n)),r.createElement("div",{className:"d-flex align-items-center"},r.createElement(E,{status:t}),o&&r.createElement(l.e,{actions:[{svgName:m.vn.Edit,className:"btn btn-link svg-container",onClick:o,button:!0,disabled:t!==d.L.Available}]}),r.createElement(s.m,{actions:[{label:h("unpairActionButton"),onClick:a}],dropdownToggleClassName:"btn ms-3"})))}var y=v(v(v({},d.L.Available,"bg-success"),d.L.Busy,"bg-warning"),d.L.Offline,"bg-gray-500"),b=v(v(v({},d.L.Available,h("availableStatusLabel")),d.L.Busy,h("busyStatusLabel")),d.L.Offline,h("offlineStatusLabel"));function E(e){var t,n,a=null!==(t=y[e.status])&&void 0!==t?t:"",o=null!==(n=b[e.status])&&void 0!==n?n:"";return r.createElement("div",{className:"d-flex align-items-center me-4"},r.createElement("div",{className:"".concat(p.indicator," ").concat(a," me-2")}),r.createElement("span",null,o))}var w=n(81803),N=n(20354),S=n(1666),x=n(2744),k=n(31949),A=n(86086);function T(e,t){if(e){if("string"==typeof e)return L(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?L(e,t):void 0}}function L(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var C=n(89725),I=n(11607),O=n(86794),j=n(83345),P=n(99705),F=n(12778),M=n(99742),_=n(28611);const B={deviceInput:"hkziS",pinInput:"_oWnE",image:"s5WWG",inputWrapper:"BTvzv"};var D="settings.appleTv.pairDeviceView",H=a.T.encloseNamespace(D);function R(e){var t=e.deviceName,n=e.pin,a=e.onDeviceNameChange,o=e.onPinChange,i=e.onActivate;return r.createElement("div",{className:"rounded-3 px-4 py-3 mt-3 bg-light-blue d-flex flex-row justify-content-between"},r.createElement("div",null,r.createElement("p",{className:"fw-bold"},r.createElement(j.x,{namespace:D,phrase:"instructionsHeading"})),r.createElement(_.i,{number:1},r.createElement("div",{className:"d-flex align-items-center flex-wrap"},r.createElement(j.x,{namespace:D,phrase:"instructionsStep1Fragment1"}),r.createElement(O.b,{className:"mx-1",size:u.S.Small},r.createElement(C.F,null)),r.createElement(j.x,{namespace:D,phrase:"instructionsStep1Fragment2"}),r.createElement(u.x,{svgName:m.vn.AppleTv,size:u.S.Small}),r.createElement(j.x,{namespace:D,phrase:"instructionsStep1Fragment3"}))),r.createElement(_.i,{number:2},r.createElement(j.x,{namespace:D,phrase:"instructionsStep2"})),r.createElement("div",{className:"".concat(B.inputWrapper," d-flex align-items-end form-group flex-wrap")},r.createElement("div",{className:"d-flex flex-column me-2 mb-3"},r.createElement("label",{className:"fw-bold mb-1",htmlFor:"create"},r.createElement(j.x,{namespace:D,phrase:"deviceNameInputLabel"})),r.createElement("input",{id:"device",className:"form-control form-control-md ".concat(B.deviceInput),value:t,onChange:function(e){return a(e.target.value)},autoComplete:"off",placeholder:H("deviceNameInputPlaceholder")})),r.createElement("div",{className:"d-flex flex-column me-2 mb-3"},r.createElement("label",{className:"fw-bold mb-1",htmlFor:"create"},r.createElement(j.x,{namespace:D,phrase:"pinInputLabel"})),r.createElement("input",{id:"pin",className:"form-control form-control-md ".concat(B.pinInput),value:n,onChange:function(e){return o(e.target.value)},autoComplete:"off",placeholder:"1234"})),r.createElement(I.L,{onClick:i,className:"btn btn-dark mb-3"},r.createElement(j.x,{namespace:D,phrase:"activateButton"}))),r.createElement(_.i,{number:3},r.createElement(j.x,{namespace:D,phrase:"instructionsStep3Fragment1"}),r.createElement(u.x,{svgName:m.vn.Cast,size:u.S.Small}),r.createElement(j.x,{namespace:D,phrase:"instructionsStep3Fragment2"})),r.createElement("a",{href:F.o.getLiteArticle(P.b.AppleTvIntegration),target:"_blank",className:"text-info mt-2"},r.createElement(j.x,{namespace:D,phrase:"learnMore"}))),r.createElement("div",{className:"ms-2 d-flex align-items-center"},r.createElement("img",{className:B.image,role:"presentation",src:M.W.Devices.APPLE_TV})))}var z=n(9111),G=n(13876);function U(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var W="settings.appleTvSettings.renameDevicePopup",$=a.T.encloseNamespace(W);function q(e){var t,n,a=(t=r.useState(e.name),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,o,i,c=[],l=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=o.call(n)).done)&&(c.push(r.value),c.length!==t);l=!0);}catch(e){s=!0,a=e}finally{try{if(!l&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(s)throw a}}return c}}(t,n)||function(e,t){if(e){if("string"==typeof e)return U(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?U(e,t):void 0}}(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),o=a[0],i=a[1],c=o.trim();return r.createElement(z.G,{title:$("title"),closePopup:e.closePopup},r.createElement("div",{className:"form-group"},r.createElement("label",{className:"fw-bold mb-2",htmlFor:"edit"},r.createElement(j.x,{namespace:W,phrase:"inputLabel"})),r.createElement("input",{value:o,onChange:function(e){return i(e.target.value)},className:"form-control form-control-md mb-4",autoFocus:!0,placeholder:$("inputPlaceholder")})),r.createElement(G.u,null,r.createElement(G.u.Cancel,{onClick:e.closePopup}),r.createElement(G.u.Submit,{disabled:!c,variant:"dark",text:$("saveButton"),onClick:function(){return e.onRename(c)},showSpinner:e.showSpinner})))}var V="settings.appleTvSettings.unpairDevicePopup",Y=a.T.encloseNamespace(V);function Q(e){var t=e.closePopup,n=e.showSpinner,a=e.deviceName,o=e.onUnpair;return r.createElement(z.G,{title:Y("title"),closePopup:t},r.createElement("p",null,r.createElement(j.x,{namespace:V,phrase:"warning",options:{name:a}})),r.createElement("p",null,r.createElement(j.x,{namespace:V,phrase:"subWarning"})),r.createElement(G.u,null,r.createElement(G.u.Cancel,{onClick:t}),r.createElement(G.u.Submit,{variant:"danger",text:Y("unpairButton"),onClick:o,showSpinner:n})))}function J(e){return J="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},J(e)}function K(){K=function(){return t};var e,t={},n=Object.prototype,r=n.hasOwnProperty,a=Object.defineProperty||function(e,t,n){e[t]=n.value},o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",c=o.asyncIterator||"@@asyncIterator",l=o.toStringTag||"@@toStringTag";function s(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{s({},"")}catch(e){s=function(e,t,n){return e[t]=n}}function u(e,t,n,r){var o=t&&t.prototype instanceof g?t:g,i=Object.create(o.prototype),c=new I(r||[]);return a(i,"_invoke",{value:A(e,n,c)}),i}function m(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}t.wrap=u;var d="suspendedStart",p="suspendedYield",f="executing",v="completed",h={};function g(){}function y(){}function b(){}var E={};s(E,i,(function(){return this}));var w=Object.getPrototypeOf,N=w&&w(w(O([])));N&&N!==n&&r.call(N,i)&&(E=N);var S=b.prototype=g.prototype=Object.create(E);function x(e){["next","throw","return"].forEach((function(t){s(e,t,(function(e){return this._invoke(t,e)}))}))}function k(e,t){function n(a,o,i,c){var l=m(e[a],e,o);if("throw"!==l.type){var s=l.arg,u=s.value;return u&&"object"==J(u)&&r.call(u,"__await")?t.resolve(u.__await).then((function(e){n("next",e,i,c)}),(function(e){n("throw",e,i,c)})):t.resolve(u).then((function(e){s.value=e,i(s)}),(function(e){return n("throw",e,i,c)}))}c(l.arg)}var o;a(this,"_invoke",{value:function(e,r){function a(){return new t((function(t,a){n(e,r,t,a)}))}return o=o?o.then(a,a):a()}})}function A(t,n,r){var a=d;return function(o,i){if(a===f)throw Error("Generator is already running");if(a===v){if("throw"===o)throw i;return{value:e,done:!0}}for(r.method=o,r.arg=i;;){var c=r.delegate;if(c){var l=T(c,r);if(l){if(l===h)continue;return l}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(a===d)throw a=v,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);a=f;var s=m(t,n,r);if("normal"===s.type){if(a=r.done?v:p,s.arg===h)continue;return{value:s.arg,done:r.done}}"throw"===s.type&&(a=v,r.method="throw",r.arg=s.arg)}}}function T(t,n){var r=n.method,a=t.iterator[r];if(a===e)return n.delegate=null,"throw"===r&&t.iterator.return&&(n.method="return",n.arg=e,T(t,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),h;var o=m(a,t.iterator,n.arg);if("throw"===o.type)return n.method="throw",n.arg=o.arg,n.delegate=null,h;var i=o.arg;return i?i.done?(n[t.resultName]=i.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,h):i:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,h)}function L(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function C(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function I(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(L,this),this.reset(!0)}function O(t){if(t||""===t){var n=t[i];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var a=-1,o=function n(){for(;++a<t.length;)if(r.call(t,a))return n.value=t[a],n.done=!1,n;return n.value=e,n.done=!0,n};return o.next=o}}throw new TypeError(J(t)+" is not iterable")}return y.prototype=b,a(S,"constructor",{value:b,configurable:!0}),a(b,"constructor",{value:y,configurable:!0}),y.displayName=s(b,l,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===y||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,b):(e.__proto__=b,s(e,l,"GeneratorFunction")),e.prototype=Object.create(S),e},t.awrap=function(e){return{__await:e}},x(k.prototype),s(k.prototype,c,(function(){return this})),t.AsyncIterator=k,t.async=function(e,n,r,a,o){void 0===o&&(o=Promise);var i=new k(u(e,n,r,a),o);return t.isGeneratorFunction(n)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},x(S),s(S,l,"Generator"),s(S,i,(function(){return this})),s(S,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},t.values=O,I.prototype={constructor:I,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(C),!t)for(var n in this)"t"===n.charAt(0)&&r.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var n=this;function a(r,a){return c.type="throw",c.arg=t,n.next=r,a&&(n.method="next",n.arg=e),!!a}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],c=i.completion;if("root"===i.tryLoc)return a("end");if(i.tryLoc<=this.prev){var l=r.call(i,"catchLoc"),s=r.call(i,"finallyLoc");if(l&&s){if(this.prev<i.catchLoc)return a(i.catchLoc,!0);if(this.prev<i.finallyLoc)return a(i.finallyLoc)}else if(l){if(this.prev<i.catchLoc)return a(i.catchLoc,!0)}else{if(!s)throw Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return a(i.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var a=this.tryEntries[n];if(a.tryLoc<=this.prev&&r.call(a,"finallyLoc")&&this.prev<a.finallyLoc){var o=a;break}}o&&("break"===e||"continue"===e)&&o.tryLoc<=t&&t<=o.finallyLoc&&(o=null);var i=o?o.completion:{};return i.type=e,i.arg=t,o?(this.method="next",this.next=o.finallyLoc,h):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),h},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),C(n),h}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var a=r.arg;C(n)}return a}}throw Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:O(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),h}},t}function X(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,o,i,c=[],l=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=o.call(n)).done)&&(c.push(r.value),c.length!==t);l=!0);}catch(e){s=!0,a=e}finally{try{if(!l&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(s)throw a}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return Z(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Z(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Z(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var ee=function(e,t,n,r){return new(n||(n=Promise))((function(a,o){function i(e){try{l(r.next(e))}catch(e){o(e)}}function c(e){try{l(r.throw(e))}catch(e){o(e)}}function l(e){var t;e.done?a(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(i,c)}l((r=r.apply(e,t||[])).next())}))},te=a.T.encloseNamespace("settings.appleTv");function ne(){var e=function(){var e,t,n,a,o=(n=r.useState([]),a=2,function(e){if(Array.isArray(e))return e}(n)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,o,i,c=[],l=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=o.call(n)).done)&&(c.push(r.value),c.length!==t);l=!0);}catch(e){s=!0,a=e}finally{try{if(!l&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(s)throw a}}return c}}(n,a)||T(n,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.")}()),i=o[0],c=o[1],l=r.useRef(),s=N.a.useGetFetchAsync(),u=N.a.useBasicFetch(k.N.currentUser()),m=N.a.useBasicFetch((null===(e=u.data)||void 0===e?void 0:e.isAuthenticated)&&S.h.customer(u.data.customerId));return r.useEffect((function(){var e,t,n;if((null===(e=u.data)||void 0===e?void 0:e.isAuthenticated)&&m.hasCompleted)return l.current=new A.w({fetchAccessToken:function(){return s(x.z.getAppleTvAccessToken())},userId:parseInt(null===(t=u.data)||void 0===t?void 0:t.id)}),null===(n=l.current)||void 0===n||n.on("deviceschange",(function(){var e;c(function(e){return function(e){if(Array.isArray(e))return L(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||T(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}(null===(e=l.current)||void 0===e?void 0:e.getDevices()))})),function(){var e;return null===(e=l.current)||void 0===e?void 0:e.dispose()}}),[null===(t=u.data)||void 0===t?void 0:t.isAuthenticated,m.hasCompleted]),{devices:i,pair:function(e){var t,n;return null===(t=l.current)||void 0===t?void 0:t.pair(Object.assign(Object.assign({},e),{crmId:parseInt(null===(n=m.data)||void 0===n?void 0:n.crmId)}))},unpair:function(e){var t;return null===(t=l.current)||void 0===t?void 0:t.unpair(e)},rename:function(e){return null==l?void 0:l.current.renameDevice(e)}}}(),t=e.devices,n=e.pair,a=e.unpair,l=e.rename,s=X(r.useState(""),2),u=s[0],m=s[1],d=X(r.useState(""),2),p=d[0],f=d[1],v=X(r.useState(),2),h=v[0],y=v[1],b=X(r.useState(),2),E=b[0],C=b[1],I=X(r.useState(!1),2),O=I[0],j=I[1],P=(0,c.Z)();return r.createElement(w.d,{heading:te("heading"),breadcrumbs:[te("heading")],requiredPermissions:i.C.ManageIntegrations},h&&r.createElement(q,{name:h.name,showSpinner:O,onRename:function(e){return function(e,t){return ee(this,void 0,void 0,K().mark((function n(){return K().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.prev=0,j(!0),n.next=4,l({deviceId:e,deviceName:t});case 4:y(void 0),P.success(te("deviceRenamingSuccessMessage")),n.next=12;break;case 8:n.prev=8,n.t0=n.catch(0),console.error(n.t0),P.error(te("deviceRenamingErrorMessage"));case 12:return n.prev=12,j(!1),n.finish(12);case 15:case"end":return n.stop()}}),n,null,[[0,8,12,15]])})))}(h.id,e)},closePopup:function(){return y(void 0)}}),E&&r.createElement(Q,{showSpinner:O,deviceName:E.name,onUnpair:function(){return function(e){return ee(this,void 0,void 0,K().mark((function t(){return K().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,j(!0),t.next=4,a(e);case 4:C(void 0),P.success(te("deviceUnpairingSuccessMessage")),t.next=12;break;case 8:t.prev=8,t.t0=t.catch(0),console.error(t.t0),P.error(te("deviceUnpairingErrorMessage"));case 12:return t.prev=12,j(!1),t.finish(12);case 15:case"end":return t.stop()}}),t,null,[[0,8,12,15]])})))}(E.id)},closePopup:function(){return C(void 0)}}),r.createElement(R,{deviceName:u,pin:p,onDeviceNameChange:m,onPinChange:f,onActivate:function(){return ee(this,void 0,void 0,K().mark((function e(){var t,r;return K().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(e.prev=0,t=u.trim(),r=p.trim(),t){e.next=5;break}return e.abrupt("return");case 5:if(r){e.next=7;break}return e.abrupt("return");case 7:return e.next=9,n({deviceName:t,pin:r});case 9:m(""),f(""),P.success(te("devicePairingSuccessMessage")),e.next=18;break;case 14:e.prev=14,e.t0=e.catch(0),console.error(e.t0),P.error(te("devicePairingErrorMessage"));case 18:case"end":return e.stop()}}),e,null,[[0,14]])})))}}),t.length?r.createElement("h2",{className:"h5 mt-4"},te("activatedListHeading")):null,r.createElement(o.s,{items:t,rowHeight:55,getComponent:function(e){return r.createElement(g,{key:e.id,name:e.name,status:e.status,onUnpair:function(){return C(e)}})}}))}},95569:(e,t,n)=>{n.d(t,{Ds:()=>a,P2:()=>r});var r=function(e,t){var n=window.performance.now();return function(){var r=window.performance.now();r-n>=t&&(e.apply(void 0,arguments),n=r)}},a=function(e,t,n){var r,a=this,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:window,i=function(){for(var i=arguments.length,c=new Array(i),l=0;l<i;l++)c[l]=arguments[l];var s=!1,u=function(){r=null,u=null,e.apply(this,c)};return!r&&n&&(e.apply(a,c),s=!0),o.clearTimeout(r),r=o.setTimeout(u,t),s};return i.cancel=function(){o.clearTimeout(r),r=null},i}}}]);
3
- //# sourceMappingURL=9230-6dee40b1fb-lite.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scripts/9230-6dee40b1fb-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/components/actions/Actions.tsx","file:///app/packages/libs/shared/src/components/actions/actions.scss","file:///app/packages/libs/shared/src/components/actions/ActionsDropdown.tsx","file:///app/packages/libs/shared/src/components/breadcrumbs/Breadcrumbs.tsx","file:///app/packages/libs/shared/src/components/windowed-list/WindowedList.tsx","file:///app/packages/libs/shared/src/enums/SupportArticle.ts","file:///app/packages/libs/shared/src/utils/PartialLoadingHelper.ts","file:///app/packages/projects/lite/src/apps/settings/components/settings-layout/SettingsLayout.tsx","file:///app/packages/projects/lite/src/apps/settings/components/settings-ordered-list-item/settings-ordered-list-item.scss","file:///app/packages/projects/lite/src/apps/settings/components/settings-ordered-list-item/SettingsOrderedListItem.tsx","file:///app/packages/projects/lite/src/apps/settings/components/device-list-item/device-list-item.scss","file:///app/packages/projects/lite/src/apps/settings/components/device-list-item/DeviceListItem.tsx","file:///app/packages/projects/lite/src/apps/settings/views/integration-settings/apple-tv-settings/pair-device-view/pair-device-view.scss","file:///app/packages/projects/lite/src/apps/settings/views/integration-settings/apple-tv-settings/pair-device-view/PairDeviceView.tsx","file:///app/packages/projects/lite/src/apps/settings/views/integration-settings/apple-tv-settings/rename-device-popup/RenameDevicePopup.tsx","file:///app/packages/projects/lite/src/apps/settings/views/integration-settings/apple-tv-settings/unpair-device-popup/UnpairDevicePopup.tsx","file:///app/packages/projects/lite/src/apps/settings/views/integration-settings/apple-tv-settings/AppleTvSettingsView.tsx","file:///app/packages/projects/lite/src/apps/settings/hooks/useAppleTvClient.ts","file:///app/packages/projects/player/src/utils/fn.ts"],"sourcesContent":["import * as React from 'react';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\nimport { SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { BaseObject } from 'libs/shared/interfaces';\n\nimport { ActionButton } from './ActionButton';\nimport { ActionsDropdown } from './ActionsDropdown';\n\nexport interface ActionOptions {\n order?: number;\n label?: string | (() => JSX.Element);\n appLink?: Core.AppLink;\n href?: string;\n onClick?: () => void;\n svgName?: string;\n className?: string;\n button?: boolean; // If true, a button will be rendered. Otherwise the action will be rendered in the dropdown.\n tooltip?: string;\n showSpinner?: boolean;\n showBorder?: boolean; // only works for button without text label\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n disabled?: boolean;\n openInNewTab?: boolean; // Only used if appLink or href is provided\n group?: string;\n lazyPlaceholder?: boolean;\n}\n\nexport type ActionGenerator = (obj: BaseObject) => ActionOptions[];\n\ninterface ActionsProps {\n actions: ActionOptions[];\n className?: string;\n actionsDropdownClassName?: string;\n dropdownToggleSvgSize?: SvgContainerSize;\n sortComponent?: JSX.Element;\n customSize?: boolean;\n fetchMore?: () => void;\n}\n\nexport function Actions(props: ActionsProps): JSX.Element {\n const orderedActions = React.useMemo(() => props.actions.sort((a, b) => a.order - b.order), [props.actions]);\n\n const buttonActions: ActionOptions[] = [];\n const moreActions: ActionOptions[] = [];\n\n orderedActions.forEach(a => {\n if (a.button)\n buttonActions.push(a);\n else\n moreActions.push(a);\n });\n\n let className = 'd-flex';\n\n if (props.className)\n className += ` ${props.className}`;\n\n if (!buttonActions.length && !moreActions.length)\n return <></>;\n\n return (\n <div className={className}>\n {buttonActions.length ? buttonActions.map((a, idx) => (\n <React.Fragment key={idx}>\n {(() => {\n if (a.label) {\n const label = FunctionHelper.isFunction(a.label)\n ? a.label\n : () => <>{a.label}</>;\n\n return (\n <ActionButton\n appLink={a.appLink}\n href={a.href}\n onClick={a.onClick}\n svgName={a.svgName}\n svgSize={props.dropdownToggleSvgSize}\n className={a.className}\n tooltip={a.tooltip}\n showSpinner={a.showSpinner}\n analyticsData={a.analyticsData}\n analyticsOptions={a.analyticsOptions}\n openInNewTab={a.openInNewTab}\n disabled={a.disabled}\n >\n {label()}\n </ActionButton>\n );\n }\n\n const iconButton = (\n <IconButton\n appLink={a.appLink}\n href={a.href}\n onClick={a.onClick}\n svgName={a.svgName}\n className={a.className}\n analyticsData={a.analyticsData}\n analyticsOptions={a.analyticsOptions}\n openInNewTab={a.openInNewTab}\n disabled={a.disabled}\n showBorder={a.showBorder}\n customSize={props.customSize}\n />\n );\n\n return a.tooltip\n ? <Tooltip title={a.tooltip} spanHack>{iconButton}</Tooltip>\n : iconButton;\n })()}\n </React.Fragment>\n )) : <></>}\n {props.sortComponent && props.sortComponent}\n {moreActions.length ? (\n <ActionsDropdown\n actions={moreActions}\n dropdownToggleClassName={props.actionsDropdownClassName}\n dropdownToggleSvgSize={props.dropdownToggleSvgSize}\n fetchMore={props.fetchMore}\n />\n ) : <></>}\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"dropdownToggle\":\"UCAnJ\"};","import * as React from 'react';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { Core } from 'libs/common/core';\nimport { RandomHelper } from 'libs/common/react/utils/RandomHelper';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { ActionOptions } from './Actions';\n\nimport styles from './actions.scss';\n\nfunction LazyDropdownItems(): JSX.Element {\n return (\n <>\n <div style={{ padding: '0.53125rem 1rem' }}>\n <div className='partial-loading-background' style={{ height: '1.0625rem', width: '8rem' }}></div>\n </div>\n <div style={{ padding: '0.53125rem 1rem' }}>\n <div className='partial-loading-background' style={{ height: '1.0625rem', width: '12rem' }}></div>\n </div>\n <div style={{ padding: '0.53125rem 1rem' }}>\n <div className='partial-loading-background' style={{ height: '1.0625rem', width: '11rem' }}></div>\n </div>\n <div style={{ padding: '0.53125rem 1rem' }}>\n <div className='partial-loading-background' style={{ height: '1.0625rem', width: '9rem' }}></div>\n </div>\n </>\n );\n}\n\nfunction getDropdownItemClassName(actionClassName?: string): string {\n let className = 'dropdown-item';\n\n if (actionClassName)\n className += ` ${actionClassName}`;\n\n return className;\n}\n\nexport type DropdownActionOptions = Omit<ActionOptions, 'button'>;\n\ninterface ActionsDropdownItemProps {\n action: DropdownActionOptions;\n}\n\nfunction ActionsDropdownItem(props: ActionsDropdownItemProps): React.ReactElement {\n const label = FunctionHelper.isFunction(props.action.label)\n ? props.action.label\n : () => <>{props.action.label}</>;\n\n if (props.action.appLink)\n return (\n <AppLink\n appLink={props.action.appLink}\n onClick={props.action.onClick}\n className={getDropdownItemClassName(props.action.className)}\n analyticsData={props.action.analyticsData}\n analyticsOptions={props.action.analyticsOptions}\n openInNewTab={props.action.openInNewTab}\n disabled={props.action.disabled}\n >\n {props.action.svgName && <SvgContainer svgName={props.action.svgName} className='d-inline-block svg-container me-2 align-middle' />}\n <span className='align-middle'>{label()}</span>\n </AppLink>\n );\n\n function onClick(e: React.MouseEvent | React.KeyboardEvent): void {\n e.preventDefault();\n\n if (props.action.analyticsData && props.action.analyticsOptions)\n AnalyticsHelper.logUserAction(props.action.analyticsData, props.action.analyticsOptions);\n\n if (FunctionHelper.isFunction(props.action.onClick))\n props.action.onClick();\n\n if (props.action.href)\n Core.LocationUtils.PageLoad(props.action.href, props.action.openInNewTab);\n }\n\n if (props.action.href) {\n return (\n <a\n className={getDropdownItemClassName(props.action.className)}\n onClick={onClick}\n href={props.action.href}\n >\n {props.action.svgName && <SvgContainer svgName={props.action.svgName} className='d-inline-block svg-container me-2 align-middle' />}\n <span className='align-middle'>{label()}</span>\n </a>\n );\n }\n\n return (\n <span\n className={`cursor-pointer ${getDropdownItemClassName(props.action.className)}`}\n onClick={onClick}\n role='button'\n tabIndex={0}\n onKeyDown={(e: React.KeyboardEvent) => e.key === 'Enter' && onClick(e)}\n >\n {props.action.svgName && <SvgContainer svgName={props.action.svgName} className='d-inline-block svg-container me-2' />}\n {label()}\n </span>\n );\n}\n\ninterface ActionsDropdownProps {\n actions: DropdownActionOptions[];\n className?: string;\n dropdownToggleClassName?: string;\n dropdownToggleSvgSize?: SvgContainerSize;\n fetchMore?: () => void;\n}\n\nActionsDropdown.defaultProps = {\n dropdownToggleClassName: 'btn btn-light',\n dropdownToggleSvgSize: SvgContainerSize.Small\n};\n\nexport function ActionsDropdown(props: ActionsDropdownProps): React.ReactElement {\n if (!props.actions || !props.actions.length)\n return <></>;\n\n const isLazy = props.actions.some(a => a.lazyPlaceholder);\n\n let className = 'dropdown';\n\n if (props.className)\n className += ` ${props.className}`;\n\n // Generate unique id to avoid collisions.\n const dropdownToggleId = `actions-dropdown-${RandomHelper.getRandomInt()}`;\n\n let dropdownToggleClassName = `dropdown-toggle px-0 ${styles.dropdownToggle}`;\n\n if (props.dropdownToggleClassName)\n dropdownToggleClassName += ` ${props.dropdownToggleClassName}`;\n\n let currentGroup: string;\n\n return (\n <div className={className}>\n <button\n className={dropdownToggleClassName}\n type='button'\n id={dropdownToggleId}\n data-bs-toggle='dropdown'\n data-toggle='dropdown'\n aria-haspopup='true'\n aria-expanded='false'\n aria-label={'More actions dropdown'}\n onClick={isLazy ? props.fetchMore : null}\n >\n <SvgContainer svgName={cvSvgLibrary.More} size={props.dropdownToggleSvgSize} />\n </button>\n <ul className='dropdown-menu dropdown-menu-end dropdown-menu-right font-size-normal' aria-labelledby={dropdownToggleId}>\n {isLazy ?\n <LazyDropdownItems /> :\n props.actions.map((a, idx) => {\n const showDivider = currentGroup !== undefined && currentGroup !== a.group;\n currentGroup = a.group;\n \n if (a.tooltip) {\n return (\n <li key={idx}>\n {showDivider && <hr className='dropdown-divider' role='separator'></hr>}\n <Tooltip title={a.tooltip} spanHack>\n <ActionsDropdownItem action={a} />\n </Tooltip>\n \n </li>\n );\n }\n \n return (\n <li key={idx}>\n {showDivider && <hr className='dropdown-divider' role='separator'></hr>}\n <ActionsDropdownItem action={a} />\n </li>\n );\n })\n }\n </ul>\n </div>\n );\n}","import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\nimport { useMediaQuery } from 'libs/shared/hooks/UseMediaQuery';\nimport { PartialLoadingHelper } from 'libs/shared/utils/PartialLoadingHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { SvgContainer, SvgContainerSize } from '../svg-container/SvgContainer';\n\nexport interface Breadcrumb {\n name: string;\n appLink?: Core.AppLink;\n active?: boolean;\n}\n\ninterface BreadcrumbItemProps {\n breadcrumb: Breadcrumb;\n withBackIcon?: boolean;\n}\n\nexport const BreadcrumbItem = ({ breadcrumb: { name, appLink, active }, withBackIcon }: BreadcrumbItemProps) => (\n <li className={`breadcrumb-item${active ? ' active' : ''}`}>\n {active\n ? <strong>{name}</strong>\n : <AppLink appLink={appLink}>\n {withBackIcon && <SvgContainer svgName={cvSvgLibrary.ChevronLeft} size={SvgContainerSize.Small} />}\n <span className={withBackIcon ? 'ms-2' : ''}>{name}</span>\n </AppLink>\n }\n </li>\n);\n\ninterface BreadcrumbsProps {\n breadcrumbs: Breadcrumb[];\n}\n\nexport const Breadcrumbs = ({ breadcrumbs }: BreadcrumbsProps) => {\n const isMobile = useMediaQuery(MediaQueryStrings.XS);\n\n const length = breadcrumbs?.length;\n\n if (!length || (isMobile && length < 2))\n return <></>;\n\n if (isMobile)\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n <BreadcrumbItem breadcrumb={breadcrumbs[length - 2]} withBackIcon />\n </ol>\n </nav>\n );\n\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n {breadcrumbs.map((b, idx) => <BreadcrumbItem key={idx} breadcrumb={b} />)}\n </ol>\n </nav>\n );\n};\n\nexport const PartialBreadcrumbs = React.memo(function({ numItems = 3 }: { numItems?: number; }) {\n const isMobile = useMediaQuery(MediaQueryStrings.XS);\n\n if (isMobile) {\n return (\n <div className='partial-loading-background' style={{ height: '1.3125rem', width: '6rem' }} />\n );\n }\n\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n {PartialLoadingHelper.getPartialLoadingItems({ numItems }).map(({ width }, idx) => (\n <li key={idx} className='breadcrumb-item'>\n <span className='d-inline-block partial-loading-background' style={{ width }} dangerouslySetInnerHTML={{ __html: '&nbsp' }} />\n </li>\n ))}\n </ol>\n </nav>\n );\n});","import React from 'react';\nimport { Scrollbars } from 'react-custom-scrollbars-2';\n\ninterface WindowedListProps<TObject> {\n items: TObject[];\n getComponent: (item: TObject, index: number) => JSX.Element;\n rowHeight: number;\n containerHeight?: number;\n\n staticComponentAboveRows?: JSX.Element;\n staticComponentBelowRows?: JSX.Element;\n}\n\nexport const WindowedList = React.forwardRef((\n props: WindowedListProps<any>,\n ref: React.Ref<Scrollbars>\n) => {\n const [ availableHeight, setAvailableHeight ] = React.useState<number>(props.containerHeight || 0);\n const [ scrollTop, setScrollTop ] = React.useState<number>(0);\n\n const tableRef = React.useRef<HTMLDivElement>(null);\n\n React.useEffect(() => {\n if (props.containerHeight)\n return;\n\n setAvailableHeight(tableRef.current?.clientHeight ?? 0);\n }, [tableRef.current]);\n\n const numRows = props.items.length;\n const totalRowsVisible = Math.ceil(availableHeight / props.rowHeight);\n const totalHeight = props.rowHeight * numRows;\n\n const startIndex = Math.max(\n 0,\n Math.floor(scrollTop / props.rowHeight) - totalRowsVisible\n );\n\n const endIndex = Math.min(\n numRows,\n startIndex + (totalRowsVisible * 3)\n );\n\n function onScrollTable(e: React.UIEvent<HTMLDivElement>): void {\n setScrollTop(e.currentTarget.scrollTop);\n }\n\n function getTableStyles(): React.CSSProperties {\n const tablePosFromTop = tableRef.current?.getBoundingClientRect().top ?? 0;\n\n const height = props.containerHeight || `calc(100vh - ${window.pageYOffset + tablePosFromTop + 30}px)`;\n \n return {\n height,\n minHeight: `${props.rowHeight * 5}px`,\n overflow: 'auto'\n };\n }\n\n function getRows(): JSX.Element[] {\n const items = [];\n \n let index = startIndex;\n while (index < endIndex) {\n const item = props.items[index];\n\n if (item)\n items.push(props.getComponent(item, index));\n \n index++;\n }\n\n return items;\n }\n\n return (\n <div style={getTableStyles()} ref={tableRef}>\n <Scrollbars\n onScroll={onScrollTable}\n autoHeightMin={totalHeight}\n autoHeightMax={totalHeight}\n ref={ref}\n >\n <div style={{ height: totalHeight, paddingTop: startIndex * props.rowHeight }}>\n <ul className='w-100 position-relative d-table striped-list list-unstyled no-full-width'>\n {!!props.staticComponentAboveRows && props.staticComponentAboveRows}\n {getRows()}\n {!!props.staticComponentBelowRows && props.staticComponentBelowRows}\n </ul>\n </div>\n </Scrollbars>\n </div>\n );\n});","// Article name mapped to article ID on support site. Used by `ArticleHelper`\n\nexport enum OnlineSupportArticle {\n AddToPlaylist = '115005679748',\n EditSsoAccounts = '8202508040345',\n\n // LE\n LibraryEditor = '360001974533',\n VideoAccess = '360000153947',\n AddFromOnline = '360011718234',\n UploadToLibraryEditor = '360012069334',\n PBTErrorCodes = '360012421153',\n ManuelReview = '360020004534',\n LibraryReview = '360000163788',\n}\n\nexport enum LiteSupportArticle {\n Integrations = '4407268725529',\n Classrooms = '4405362551833',\n MakeInteractive = '4405370510873',\n EditSsoAccounts = '8202605666073',\n UploadToLibraryEditor = '10672936659865',\n AddFromLite = '10671345281561',\n ManageSsoYearGroups = '14691130889241',\n ContentReview = '18525199576601',\n ContentPermissions = '14692125209497',\n AccessSettings = '22110291468057',\n ContentGuidelines = '24133696186009',\n FoxtelFaq = '24133519542169',\n ViviIntegration = '23826297956377',\n AppleTvIntegration = '25832373739929',\n RssFeed = '32567445635097'\n}\n","const DEFAULT_PARTIAL_LOADING_OPTIONS: PartialLoadingOptions = {\n numItems: 5,\n minWidth: 50, // px\n maxWidth: 100 // px\n};\n\nexport interface PartialLoadingOptions {\n numItems?: number;\n minWidth?: number;\n maxWidth?: number;\n}\n\ninterface PartialLoadingItem {\n width: string;\n}\n\nexport const PartialLoadingHelper = {\n getPartialLoadingItems(options: PartialLoadingOptions = {}): PartialLoadingItem[] {\n const opts = {\n ...DEFAULT_PARTIAL_LOADING_OPTIONS,\n ...options\n };\n\n const getRandomFilterWidth = () => Math.max(Math.floor(Math.random() * opts.maxWidth), opts.minWidth);\n\n return [...Array(opts.numItems)].map(() => ({ width: `${getRandomFilterWidth()}px` }));\n }\n};","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { Breadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { useGetSettingsGroups } from 'apps/settings/hooks/useGetSettingsGroups';\n\nconst namespace = 'settings.settingsLayout';\n\n/**\n * Checks if the current user has permission to access the settings module\n */\nexport const useCanAccessSettings = (requiredPermissions: PermissionName | PermissionName[]): boolean => {\n const { hasPermissions } = usePermissions();\n const settingsGroups = useGetSettingsGroups();\n\n /**\n * TODO: Update all settings pages to pasas required permissions, because checking the \n * `useGetSettingsGroups()` values clearly doesnt work for settings pages with multiple\n * applinks inside of them. - Sha\n */\n if (requiredPermissions)\n return hasPermissions(requiredPermissions);\n\n const currentRoute = Core.AppLinkHelper.getCurrentAppLink();\n\n /**\n * Allows us to have popups sitting in other locations be used\n * by our settings pages. For example the manage video access popup\n * in the \"videos with restricted access\" page - Sha\n */\n if (currentRoute.application !== AppChannels.SETTINGS)\n return true;\n\n return settingsGroups.some(group => {\n return group.modules.some(settingsModule => {\n if ('appLink' in settingsModule) {\n return settingsModule.appLink.action === currentRoute.action;\n }\n\n return false;\n });\n });\n};\n\ninterface SettingsLayoutProps {\n heading: string;\n breadcrumbs: string[];\n description?: string;\n requiredPermissions?: PermissionName | PermissionName[];\n headingButton?: () => JSX.Element;\n}\n\nexport function SettingsLayout(props: React.PropsWithChildren<SettingsLayoutProps>): JSX.Element {\n const canAccess = useCanAccessSettings(props.requiredPermissions);\n\n React.useEffect(() => {\n if (!canAccess) {\n Core.AppLinkHelper.trigger({\n application: AppChannels.SETTINGS,\n action: Actions.Settings.HOME\n }, { replace: true });\n }\n }, [canAccess]);\n\n if (!canAccess)\n return <></>;\n\n const breadcrumbs = props.breadcrumbs.map((name, i) => ({\n name,\n appLink: {\n application: AppChannels.SETTINGS,\n action: Actions.Settings.HOME\n },\n active: i === props.breadcrumbs.length - 1\n }));\n\n return (\n <div className='px-3'>\n <div className='d-flex align-items-center justify-content-between'>\n <h1 className='h2'>{props.heading}</h1>\n {props.headingButton?.()}\n </div>\n <div className='pb-3'>\n <Breadcrumbs\n breadcrumbs={[\n {\n name: LanguageService.getPhrase(namespace, 'settingsBreadcrumb'),\n appLink: {\n application: AppChannels.SETTINGS,\n action: Actions.Settings.HOME\n }\n },\n ...breadcrumbs\n ]}\n />\n </div>\n {props.description &&\n <>\n <p>{props.description}</p>\n <hr />\n </>\n }\n\n {props.children}\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"numberContainer\":\"JBRDi\"};","import React from 'react';\n\nimport styles from './settings-ordered-list-item.scss';\n\ninterface SettingsOrderedListItemProps {\n number: number;\n children: React.ReactNode;\n className?: string;\n}\n\nexport function SettingsOrderedListItem({ number, children, className = '' }: SettingsOrderedListItemProps): JSX.Element {\n return (\n <div className={`d-flex align-items-center mb-3 ${className}`}>\n <div className={`d-flex align-items-center justify-content-center bg-dark rounded-circle ${styles.numberContainer}`}>\n <span className='text-light'>{number}</span>\n </div>\n <div className='ms-2'>\n {children}\n </div>\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"indicator\":\"xidrU\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { Actions as ActionsButton } from 'libs/shared/components/actions/Actions';\nimport { ActionsDropdown } from 'libs/shared/components/actions/ActionsDropdown';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { DeviceStatus } from 'projects/player/plugins/devices-plugin/clients/client-interfaces';\n\nimport styles from './device-list-item.scss';\n\nconst namespace = 'settings.deviceListItem';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface DeviceListItemProps {\n name: string;\n status: DeviceStatus;\n onUnpair: () => void;\n onRename?: () => void;\n}\n\nexport function DeviceListItem(props: DeviceListItemProps): React.ReactElement {\n const { status, name, onUnpair, onRename } = props;\n\n return (\n <li className='d-flex align-items-center p-2 justify-content-between'>\n <div className='d-flex align-items-center'>\n <SvgContainer svgName={cvSvgLibrary.AppleTv} className='svg-container me-2'/>\n <div>{name}</div>\n </div>\n\n <div className='d-flex align-items-center'>\n <DeviceStatusIndicator status={status}/>\n { onRename && <ActionsButton\n actions={[{\n svgName: cvSvgLibrary.Edit,\n className: 'btn btn-link svg-container',\n onClick: onRename,\n button: true,\n disabled: status !== DeviceStatus.Available\n }]}/>\n }\n <ActionsDropdown\n actions={[{ label: getPhrase('unpairActionButton'), onClick: onUnpair }]}\n dropdownToggleClassName='btn ms-3'\n />\n </div>\n </li>\n );\n}\n\nconst statusIndicatorColors = {\n [DeviceStatus.Available]: 'bg-success',\n [DeviceStatus.Busy]: 'bg-warning',\n [DeviceStatus.Offline]: 'bg-gray-500'\n};\n\nconst statusIndicatorLabels = {\n [DeviceStatus.Available]: getPhrase('availableStatusLabel'),\n [DeviceStatus.Busy]: getPhrase('busyStatusLabel'),\n [DeviceStatus.Offline]: getPhrase('offlineStatusLabel')\n};\n\nfunction DeviceStatusIndicator(props: Pick<DeviceListItemProps, 'status'>) {\n const color = statusIndicatorColors[props.status] ?? '';\n const label = statusIndicatorLabels[props.status] ?? '';\n\n return (\n <div className='d-flex align-items-center me-4'>\n <div className={`${styles.indicator} ${color} me-2`} />\n <span>{label}</span>\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"deviceInput\":\"hkziS\",\"pinInput\":\"_oWnE\",\"image\":\"s5WWG\",\"inputWrapper\":\"BTvzv\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { ClickViewAvatar } from 'libs/shared/components/clickview-avatar/ClickViewAvatar';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { SvgContainer2 } from 'libs/shared/components/svg-container/SvgContainer2';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { LiteSupportArticle } from 'libs/shared/enums/SupportArticle';\nimport { ArticleHelper } from 'libs/shared/utils/ArticleHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nimport { SettingsOrderedListItem } from 'apps/settings/components/settings-ordered-list-item/SettingsOrderedListItem';\n\nimport styles from './pair-device-view.scss';\n\nconst namespace = 'settings.appleTv.pairDeviceView';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface PairDeviceViewProps {\n deviceName: string;\n pin: string;\n onDeviceNameChange: (deviceName: string) => void;\n onPinChange: (pin: string) => void;\n onActivate: () => void;\n}\n\nexport function PairDeviceView(props: PairDeviceViewProps): JSX.Element {\n const { deviceName, pin, onDeviceNameChange, onPinChange, onActivate } = props;\n \n return (\n <div className='rounded-3 px-4 py-3 mt-3 bg-light-blue d-flex flex-row justify-content-between'>\n <div>\n <p className='fw-bold'>\n <Text namespace={namespace} phrase='instructionsHeading' />\n </p>\n\n <SettingsOrderedListItem number={1}>\n <div className='d-flex align-items-center flex-wrap'>\n <Text namespace={namespace} phrase='instructionsStep1Fragment1' />\n <SvgContainer2 className='mx-1' size={SvgContainerSize.Small}>\n <ClickViewAvatar />\n </SvgContainer2>\n <Text namespace={namespace} phrase='instructionsStep1Fragment2' />\n <SvgContainer svgName={cvSvgLibrary.AppleTv} size={SvgContainerSize.Small} />\n <Text namespace={namespace} phrase='instructionsStep1Fragment3' />\n </div>\n </SettingsOrderedListItem>\n\n <SettingsOrderedListItem number={2}>\n <Text namespace={namespace} phrase='instructionsStep2' />\n </SettingsOrderedListItem>\n\n <div className={`${styles.inputWrapper} d-flex align-items-end form-group flex-wrap`}>\n <div className='d-flex flex-column me-2 mb-3'>\n <label className='fw-bold mb-1' htmlFor='create'>\n <Text namespace={namespace} phrase='deviceNameInputLabel'/>\n </label>\n <input\n id='device'\n className={`form-control form-control-md ${styles.deviceInput}`}\n value={deviceName}\n onChange={e => onDeviceNameChange(e.target.value)}\n autoComplete='off'\n placeholder={getPhrase('deviceNameInputPlaceholder')}\n />\n </div>\n\n <div className='d-flex flex-column me-2 mb-3'>\n <label className='fw-bold mb-1' htmlFor='create'>\n <Text namespace={namespace} phrase='pinInputLabel'/>\n </label>\n <input\n id='pin'\n className={`form-control form-control-md ${styles.pinInput}`}\n value={pin}\n onChange={e => onPinChange(e.target.value)}\n autoComplete='off'\n placeholder='1234'\n />\n </div>\n\n <DivButton onClick={onActivate} className='btn btn-dark mb-3'>\n <Text namespace={namespace} phrase='activateButton' />\n </DivButton>\n </div>\n\n <SettingsOrderedListItem number={3}>\n <Text namespace={namespace} phrase='instructionsStep3Fragment1' />\n <SvgContainer svgName={cvSvgLibrary.Cast} size={SvgContainerSize.Small} />\n <Text namespace={namespace} phrase='instructionsStep3Fragment2' />\n </SettingsOrderedListItem>\n\n <a\n href={ArticleHelper.getLiteArticle(LiteSupportArticle.AppleTvIntegration)}\n target='_blank'\n className='text-info mt-2'\n >\n <Text namespace={namespace} phrase='learnMore' />\n </a>\n\n </div>\n\n <div className='ms-2 d-flex align-items-center'>\n <img className={styles.image} role='presentation' src={ImageUrls.Devices.APPLE_TV} />\n </div>\n </div>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { PopupViewProps } from 'libs/shared/interfaces';\n\nconst namespace = 'settings.appleTvSettings.renameDevicePopup';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport interface RenameDevicePopupProps extends PopupViewProps {\n name: string;\n showSpinner: boolean;\n onRename: (newName: string) => void;\n}\n\nexport function RenameDevicePopup(props: RenameDevicePopupProps): JSX.Element {\n const [ name, setName ] = React.useState(props.name);\n const trimmedName = name.trim();\n\n return (\n <Popup title={getPhrase('title')} closePopup={props.closePopup}>\n <div className='form-group'>\n <label className='fw-bold mb-2' htmlFor='edit'>\n <Text namespace={namespace} phrase='inputLabel' />\n </label>\n <input\n value={name}\n onChange={e => setName(e.target.value)}\n className='form-control form-control-md mb-4'\n autoFocus\n placeholder={getPhrase('inputPlaceholder')}\n />\n </div>\n <PopupButtons>\n <PopupButtons.Cancel onClick={props.closePopup} />\n <PopupButtons.Submit\n disabled={!trimmedName}\n variant='dark'\n text={getPhrase('saveButton')}\n onClick={() => props.onRename(trimmedName)}\n showSpinner={props.showSpinner}\n />\n </PopupButtons>\n </Popup>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { PopupViewProps } from 'libs/shared/interfaces';\n\nconst namespace = 'settings.appleTvSettings.unpairDevicePopup';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface UnpairDevicePopupProps extends PopupViewProps {\n showSpinner: boolean;\n deviceName: string;\n onUnpair: () => void;\n}\n\nexport function UnpairDevicePopup(props: UnpairDevicePopupProps): JSX.Element {\n const { closePopup, showSpinner, deviceName, onUnpair } = props;\n \n return (\n <Popup title={getPhrase('title')} closePopup={closePopup}>\n <p>\n <Text namespace={namespace} phrase='warning' options={{ name: deviceName }} />\n </p>\n\n <p>\n <Text namespace={namespace} phrase='subWarning' />\n </p>\n\n <PopupButtons>\n <PopupButtons.Cancel onClick={closePopup} />\n <PopupButtons.Submit\n variant='danger'\n text={getPhrase('unpairButton')}\n onClick={onUnpair}\n showSpinner={showSpinner}\n />\n </PopupButtons>\n </Popup>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { WindowedList } from 'libs/shared/components/windowed-list/WindowedList';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\n\nimport { Device } from 'projects/player/plugins/devices-plugin/clients/client-interfaces';\n\nimport { DeviceListItem } from 'apps/settings/components/device-list-item/DeviceListItem';\nimport { SettingsLayout } from 'apps/settings/components/settings-layout/SettingsLayout';\nimport { useAppleTvClient } from 'apps/settings/hooks/useAppleTvClient';\n\nimport { PairDeviceView } from './pair-device-view/PairDeviceView';\nimport { RenameDevicePopup } from './rename-device-popup/RenameDevicePopup';\nimport { UnpairDevicePopup } from './unpair-device-popup/UnpairDevicePopup';\n\nconst namespace = 'settings.appleTv';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function AppleTvSettingsView(): JSX.Element {\n const { devices, pair, unpair, rename } = useAppleTvClient();\n const [ deviceName, setDeviceName ] = React.useState('');\n const [ pin, setPin ] = React.useState('');\n const [ deviceToRename, setDeviceToRename ] = React.useState<Device>();\n const [ deviceToUnpair, setDeviceToUnpair ] = React.useState<Device>();\n const [ showSpinner, setShowSpinner ] = React.useState(false);\n\n const alerts = useAlerts();\n \n async function onPairDevice() {\n try {\n const trimmedDeviceName = deviceName.trim();\n const trimmedPin = pin.trim();\n\n if (!trimmedDeviceName) return;\n if (!trimmedPin) return;\n\n await pair({ deviceName: trimmedDeviceName, pin: trimmedPin });\n setDeviceName('');\n setPin('');\n \n alerts.success(getPhrase('devicePairingSuccessMessage'));\n } catch (e) {\n console.error(e);\n alerts.error(getPhrase('devicePairingErrorMessage'));\n }\n }\n\n async function onUnpairDevice(deviceId: string) {\n try {\n setShowSpinner(true);\n await unpair(deviceId);\n setDeviceToUnpair(undefined);\n \n alerts.success(getPhrase('deviceUnpairingSuccessMessage'));\n } catch (e) {\n console.error(e);\n alerts.error(getPhrase('deviceUnpairingErrorMessage'));\n } finally {\n setShowSpinner(false);\n }\n }\n\n async function onRenameDevice(deviceId: string, deviceName: string) {\n try {\n setShowSpinner(true);\n await rename({ deviceId, deviceName });\n setDeviceToRename(undefined);\n \n alerts.success(getPhrase('deviceRenamingSuccessMessage'));\n } catch (e) {\n console.error(e);\n alerts.error(getPhrase('deviceRenamingErrorMessage'));\n } finally {\n setShowSpinner(false);\n }\n }\n\n return (\n <SettingsLayout\n heading={getPhrase('heading')}\n breadcrumbs={[getPhrase('heading')]}\n requiredPermissions={PermissionName.ManageIntegrations}\n >\n { deviceToRename && (\n <RenameDevicePopup\n name={deviceToRename.name}\n showSpinner={showSpinner}\n onRename={newName => onRenameDevice(deviceToRename.id, newName)}\n closePopup={() => setDeviceToRename(undefined)}\n />\n )}\n\n { deviceToUnpair && (\n <UnpairDevicePopup\n showSpinner={showSpinner}\n deviceName={deviceToUnpair.name}\n onUnpair={() => onUnpairDevice(deviceToUnpair.id)}\n closePopup={() => setDeviceToUnpair(undefined)}\n />\n )}\n\n <PairDeviceView\n deviceName={deviceName}\n pin={pin}\n onDeviceNameChange={setDeviceName}\n onPinChange={setPin}\n onActivate={onPairDevice}\n />\n\n {devices.length ? <h2 className='h5 mt-4'>{getPhrase('activatedListHeading')}</h2> : null }\n\n <WindowedList\n items={devices}\n rowHeight={55}\n getComponent={(device: Device) => {\n return (\n <DeviceListItem\n key={device.id}\n name={device.name}\n status={device.status}\n onUnpair={() => setDeviceToUnpair(device)}\n // The rename function is a bit janky at the moment, so we'll disable it for now\n // Note: re-pairing the device with a different name works fine..\n // onRename={() => setDeviceToRename(device)}\n />\n );\n }}\n />\n </SettingsLayout>\n );\n}","import React from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\nimport { PlayerIntegrationsRequests } from 'libs/shared/flight-requests/PlayerIntegrationsRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { CurrentUser, Customer } from 'libs/shared/interfaces';\n\nimport { AppleTvClient } from 'projects/player/plugins/devices-plugin/clients/apple-tv/apple-tv-client';\nimport { AppleTvPairRequest, AppleTvRenameRequest, OnlineApiDevice } from 'projects/player/plugins/devices-plugin/clients/apple-tv/apple-tv-interfaces';\nimport { Device } from 'projects/player/plugins/devices-plugin/clients/client-interfaces';\n\ninterface AppleTvClientApi {\n devices: Device[];\n pair: (pairRequest: Omit<AppleTvPairRequest, 'crmId'>) => Promise<OnlineApiDevice>;\n unpair: (id: string) => Promise<void>;\n rename: (renameRequest: AppleTvRenameRequest) => Promise<void>;\n}\n\nexport function useAppleTvClient(): AppleTvClientApi {\n const [ devices, setDevices ] = React.useState<Device[]>([]);\n const client = React.useRef<AppleTvClient>();\n const fetchAsync = Flight.useGetFetchAsync();\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const customer = Flight.useBasicFetch<Customer>(\n currentUser.data?.isAuthenticated &&\n CustomerRequests.customer(currentUser.data.customerId)\n );\n\n React.useEffect(() => {\n if (!currentUser.data?.isAuthenticated) return;\n if (!customer.hasCompleted) return;\n\n client.current = new AppleTvClient({\n fetchAccessToken: () => fetchAsync(PlayerIntegrationsRequests.getAppleTvAccessToken()),\n userId: parseInt(currentUser.data?.id)\n });\n\n client.current?.on('deviceschange', () => {\n setDevices([...client.current?.getDevices()]);\n });\n\n return () => client.current?.dispose();\n }, [ currentUser.data?.isAuthenticated, customer.hasCompleted ]);\n\n function pair(pairRequest: Omit<AppleTvPairRequest, 'crmId'>) {\n return client.current?.pair({ ...pairRequest, crmId: parseInt(customer.data?.crmId) });\n }\n\n function unpair(id: string) {\n return client.current?.unpair(id);\n }\n\n function rename(renameRequest: AppleTvRenameRequest) {\n return client?.current.renameDevice(renameRequest);\n }\n\n return {\n devices,\n pair,\n unpair,\n rename\n };\n}","/**\n * Wraps the given function, `fn`, with a new function that only invokes `fn`\n * at most once per every `wait` milliseconds.\n *\n * @function\n * @param {Function} fn\n * The function to be throttled.\n *\n * @param {number} wait\n * The number of milliseconds by which to throttle.\n *\n * @return {Function}\n */\nexport const throttle = function(fn: any, wait: any): any {\n let last = window.performance.now();\n\n const throttled = function(...args: any[]): any {\n const now = window.performance.now();\n\n if (now - last >= wait) {\n fn(...args);\n last = now;\n }\n };\n\n return throttled;\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked.\n *\n * Inspired by lodash and underscore implementations.\n *\n * @function\n * @param {Function} func\n * The function to wrap with debounce behavior.\n *\n * @param {number} wait\n * The number of milliseconds to wait after the last invocation.\n *\n * @param {boolean} [leading]\n * When true will also invoke the function immediately upon creation.\n *\n * @param {Object} [context=window]\n * The \"context\" in which the debounced function should debounce. For\n * example, if this function should be tied to a Video.js player,\n * the player can be passed here. Alternatively, defaults to the\n * global `window` object.\n *\n * @return {Function}\n * A debounced function that returns true if the wrapped function was executed immediately.\n */\nexport const debounce = function(\n func: any,\n wait: any,\n leading: any,\n context: any = window\n): (...args: any[]) => boolean {\n let timeout: any;\n\n const cancel = () => {\n context.clearTimeout(timeout);\n timeout = null;\n };\n\n /* eslint-disable consistent-this */\n const debounced = (...args: any[]) => {\n let executed = false;\n\n let later = function() {\n timeout = null;\n later = null;\n func.apply(this, args);\n };\n\n if (!timeout && leading) {\n func.apply(this, args);\n executed = true;\n }\n\n context.clearTimeout(timeout);\n timeout = context.setTimeout(later, wait);\n\n return executed;\n };\n /* eslint-enable consistent-this */\n\n debounced.cancel = cancel;\n\n return debounced;\n};\n\n/**\n * A function that returns undefined.\n *\n * Inspired by lodash implementations.\n */\nexport const noop = function(): undefined {\n return undefined;\n};\n"],"names":["Actions","props","orderedActions","actions","sort","a","b","order","buttonActions","moreActions","forEach","button","push","className","length","map","idx","key","label","appLink","href","onClick","svgName","svgSize","dropdownToggleSvgSize","tooltip","showSpinner","analyticsData","analyticsOptions","openInNewTab","disabled","iconButton","showBorder","customSize","title","spanHack","sortComponent","dropdownToggleClassName","actionsDropdownClassName","fetchMore","LazyDropdownItems","style","padding","height","width","getDropdownItemClassName","actionClassName","ActionsDropdownItem","FunctionHelper","action","AppLink","SvgContainer","e","preventDefault","AnalyticsHelper","role","tabIndex","onKeyDown","ActionsDropdown","isLazy","some","lazyPlaceholder","currentGroup","dropdownToggleId","RandomHelper","type","id","size","showDivider","undefined","group","Tooltip","defaultProps","S","BreadcrumbItem","breadcrumb","name","active","withBackIcon","Breadcrumbs","breadcrumbs","isMobile","PartialBreadcrumbs","numItems","dangerouslySetInnerHTML","__html","WindowedList","ref","containerHeight","availableHeight","setAvailableHeight","scrollTop","setScrollTop","tableRef","current","clientHeight","tablePosFromTop","numRows","items","totalRowsVisible","Math","ceil","rowHeight","totalHeight","startIndex","max","floor","endIndex","min","getBoundingClientRect","top","window","pageYOffset","minHeight","overflow","onScroll","currentTarget","autoHeightMin","autoHeightMax","paddingTop","staticComponentAboveRows","index","item","getComponent","getRows","staticComponentBelowRows","OnlineSupportArticle","LiteSupportArticle","DEFAULT_PARTIAL_LOADING_OPTIONS","minWidth","maxWidth","PartialLoadingHelper","getPartialLoadingItems","options","opts","Array","random","namespace","useCanAccessSettings","requiredPermissions","hasPermissions","settingsGroups","currentRoute","application","modules","settingsModule","SettingsLayout","canAccess","replace","i","heading","headingButton","description","children","SettingsOrderedListItem","number","getPhrase","LanguageService","DeviceListItem","status","onUnpair","onRename","DeviceStatusIndicator","statusIndicatorColors","statusIndicatorLabels","color","PairDeviceView","deviceName","pin","onDeviceNameChange","onPinChange","onActivate","Text","phrase","SvgContainer2","ClickViewAvatar","htmlFor","value","onChange","target","autoComplete","placeholder","DivButton","ArticleHelper","src","ImageUrls","RenameDevicePopup","setName","trimmedName","trim","Popup","closePopup","autoFocus","PopupButtons","variant","text","UnpairDevicePopup","AppleTvSettingsView","devices","setDevices","client","fetchAsync","currentUser","UserRequests","customer","data","isAuthenticated","CustomerRequests","customerId","hasCompleted","fetchAccessToken","PlayerIntegrationsRequests","userId","parseInt","on","getDevices","dispose","pair","pairRequest","crmId","unpair","rename","renameRequest","renameDevice","useAppleTvClient","setDeviceName","setPin","deviceToRename","setDeviceToRename","deviceToUnpair","setDeviceToUnpair","setShowSpinner","alerts","PermissionName","newName","deviceId","success","console","error","onRenameDevice","onUnpairDevice","trimmedDeviceName","trimmedPin","device","throttle","fn","wait","last","performance","now","debounce","func","leading","timeout","context","debounced","args","executed","apply","this","clearTimeout","setTimeout","cancel"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[9359],{49935:(e,a,t)=>{t.d(a,{Oo:()=>u,b2:()=>d});var n=t(32735),i=t(36848),r=t(86764),c=t(3747),l=t(5859),s=t(35223),o=t(83914),m=function(e){var a=e.breadcrumb,t=a.name,r=a.appLink,c=a.active,l=e.withBackIcon;return n.createElement("li",{className:"breadcrumb-item".concat(c?" active":"")},c?n.createElement("strong",null,t):n.createElement(i.F,{appLink:r},l&&n.createElement(o.x,{svgName:s.vn.ChevronLeft,size:o.S.Small}),n.createElement("span",{className:l?"ms-2":""},t)))},u=function(e){var a=e.breadcrumbs,t=(0,c.a)(r.r.XS),i=null==a?void 0:a.length;return!i||t&&i<2?n.createElement(n.Fragment,null):t?n.createElement("nav",{"aria-label":"breadcrumb"},n.createElement("ol",{className:"breadcrumb m-0 p-0"},n.createElement(m,{breadcrumb:a[i-2],withBackIcon:!0}))):n.createElement("nav",{"aria-label":"breadcrumb"},n.createElement("ol",{className:"breadcrumb m-0 p-0"},a.map((function(e,a){return n.createElement(m,{key:a,breadcrumb:e})}))))},d=n.memo((function(e){var a=e.numItems,t=void 0===a?3:a;return(0,c.a)(r.r.XS)?n.createElement("div",{className:"partial-loading-background",style:{height:"1.3125rem",width:"6rem"}}):n.createElement("nav",{"aria-label":"breadcrumb"},n.createElement("ol",{className:"breadcrumb m-0 p-0"},l.u.getPartialLoadingItems({numItems:t}).map((function(e,a){var t=e.width;return n.createElement("li",{key:a,className:"breadcrumb-item"},n.createElement("span",{className:"d-inline-block partial-loading-background",style:{width:t},dangerouslySetInnerHTML:{__html:"&nbsp"}}))}))))}))},74696:(e,a,t)=>{t.d(a,{S:()=>o});var n=t(32735),i=t(68050),r=t(69111),c=t(9977),l=t(79967);const s={partialOptions:"Gufgq",partialName:"SicQQ",partialDescription:"dPGMq",partialThumbnail:"vZrnb",partialDragHandle:"iq73R"};function o(e){return n.createElement("div",{className:"mx-2"},Array(e.numVideos).fill(null).map((function(a,t){return n.createElement("div",{className:"d-flex",key:t},e.allowBulkActions&&n.createElement("div",{className:"form-check pe-3 pe-sm-2 mx-0 mx-md-2"}),n.createElement(m,Object.assign({},e)))})))}function m(e){var a=(0,l.k)(),t="sm"===c.O.getSize(a,"md"),o=e.withReordering&&!a.xs;return n.createElement(i.Z,{className:"".concat(t?"":"py-2"," flex-grow-1")},n.createElement(r.Z,Object.assign({},c.O.getThumbnailColumns(),{className:"flex-column align-items-flex-start ".concat(t?"pb-2 pe-1":"mb-1 pe-3 pe-md-2")}),n.createElement(i.Z,null,!!o&&n.createElement("div",{className:"d-flex align-items-center justify-content-center col-2"},n.createElement("div",{className:"partial-loading-background ".concat(s.partialDragHandle)})),n.createElement(r.Z,{xs:c.O.getThumbnailColSize(o)},n.createElement("div",{className:"partial-loading-background ".concat(t?"rounded":"rounded-3"," ").concat(s.partialThumbnail)})))),n.createElement(r.Z,Object.assign({},c.O.getDetailsColumns(),{className:t?"pb-2":"px-2"}),n.createElement("div",{className:"partial-loading-background mb-1 ".concat(s.partialName)}),n.createElement("div",{className:"partial-loading-background ".concat(s.partialDescription)})))}o.defaultProps={numVideos:15}},5859:(e,a,t)=>{function n(e,a){(null==a||a>e.length)&&(a=e.length);for(var t=0,n=Array(a);t<a;t++)n[t]=e[t];return n}t.d(a,{u:()=>r});var i={numItems:5,minWidth:50,maxWidth:100},r={getPartialLoadingItems:function(){var e,a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=Object.assign(Object.assign({},i),a);return(e=Array(t.numItems),function(e){if(Array.isArray(e))return n(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,a){if(e){if("string"==typeof e)return n(e,a);var t={}.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?n(e,a):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()).map((function(){return{width:"".concat(Math.max(Math.floor(Math.random()*t.maxWidth),t.minWidth),"px")}}))}}},44110:(e,a,t)=>{t.d(a,{i:()=>c});var n=t(20354),i=t(89454),r=t(86698),c=function(){var e=(0,r.y)({redirectOnError:!0}),a=e.activePresentation,t=e.getFallbackPresentation,c=a||t();return n.a.useBasicFetch(!!c&&i.O.presentationAudiences(c.id))}},35014:(e,a,t)=>{t.d(a,{I:()=>s});var n=t(16714),i=t(12754),r=t(22902),c=t(15311),l=t(11387);function s(){var e=(0,r.T)(),a=e.hasPermissions,t=e.hasLocalPermissions,s=(0,(0,c.r)().hasProduct)(i.x.Primary);return{canViewGlance:a(n.C.ViewVideoGlance),canViewResources:!0,canViewInteractives:s&&a(n.C.ViewVideoInteractives),canViewClips:s&&a(n.C.ViewVideoClips),canViewCurriculumLinks:a(n.C.ViewCurriculums),canUseActions:t(n.E.UseVideoActions),canViewPublicLayout:!t(n.E.WatchVideos)&&l.C.hasRegionPrefix(),canViewResourceItems:t(n.E.ViewVideoResourceItems),canNavigate:s}}},78630:(e,a,t)=>{t.r(a),t.d(a,{ClipClipsView:()=>O});var n=t(32735),i=t(81886),r=t(23481),c=t(20354),l=t(28400),s=t(65858),o=t(49935),m=t(13231),u=t(51365),d=t(183),p=t(43012),v=t(39151),g=t(1666),b=t(31949),f=t(22902),h=t(14070),E=t(97291),k=t(51855),C=t(10671),y=t(27638),w=t(44110),N=t(35014),I=t(22490),V=t(98620),L=t(82431),x=t(16747),A=r.T.encloseNamespace("shared.videoMedia");function O(e){var a,t,r,O,P,S,j,G=e.clipId,F=(0,y.u)(s.LZ.VideoThumbnail),T=F.setFavourite,_=F.canFavourite,R=(0,k.G)().isPlugin,W=(0,C._)({location:C.i.VideoItem}),B=(0,N.I)(),M=c.a.useBasicFetch(b.N.currentUser()),Z=c.a.useBasicFetch(M.data.isAuthenticated&&g.h.yearGroups(M.data.customerId)),D=c.a.useBasicFetch(p.e.clip(G)),$=null===(t=null===(a=D.data)||void 0===a?void 0:a._parentVideo)||void 0===t?void 0:t.id,H=c.a.useBasicFetch($&&B.canViewClips&&p.e.videoClips($)),U=null===(r=null==H?void 0:H.data)||void 0===r?void 0:r.filter((function(e){return e.id.toString()!==G.toString()})),Y=(null==U?void 0:U.length)||0,z=c.a.useBasicFetch(v.L.config()),Q="".concat(A("otherClipsHeading")," (").concat(Y||"",")"),q=(0,w.i)(),X=(0,f.T)().hasPermissions,J=[{name:null===(O=D.data)||void 0===O?void 0:O.name,appLink:Object.assign(Object.assign({},V.Y.playClip),{args:[G,l.m.slugify(null===(P=D.data)||void 0===P?void 0:P.name)]})},{name:Q,appLink:{application:E.O.CLIPS,action:h.e.Clips.CLIP_CLIPS,args:[G,l.m.slugify(null===(S=D.data)||void 0===S?void 0:S.name)]},active:!0}];return n.useEffect((function(){B.canViewClips||function(){var e;i.Q.C$.trigger(Object.assign(Object.assign({},V.Y.playClip),{args:[G,l.m.slugify(null===(e=D.data)||void 0===e?void 0:e.name)]}),{replace:!0})}()}),[B.canViewClips]),D.data&&(null==U?void 0:U.length)&&z.hasCompleted?n.createElement(u.M.Provider,{value:W},n.createElement("div",{className:"px-3"},n.createElement("h1",{className:"h2 mb-2"},Q),n.createElement("div",{className:"mb-2"},n.createElement(o.Oo,{breadcrumbs:J})),n.createElement(m.E4,{videos:U,yearGroups:Z.data,getVideoAppLink:function(a,t){return I.W.getAppLink(a,Object.assign(Object.assign({},t),{context:d.Q.Widget,contextId:e.clipId}))},hasPermissions:X,getSubTextAppLink:function(e){return L.j.getSeriesAppLink(e.series)},setFavourite:T,canFavourite:_,presentationAudiences:q.data,imageCdnUrl:null===(j=z.data)||void 0===j?void 0:j.imageCdnUrl,isPlugin:R,getClassroomGuideAppLink:I.W.getClassroomGuideAppLink,getInteractiveGuidanceAppLink:I.W.getInteractiveGuidanceAppLink,getResourceGuidanceAppLink:I.W.getResourceGuidanceAppLink}))):n.createElement(x.l,null)}},98620:(e,a,t)=>{t.d(a,{Y:()=>r});var n=t(14070),i=t(97291),r={playVideo:{application:i.O.VIDEOS,action:n.e.Videos.PLAY_VIDEO},playClip:{application:i.O.CLIPS,action:n.e.Clips.PLAY_CLIP}}},16747:(e,a,t)=>{t.d(a,{l:()=>l});var n=t(32735),i=t(49935),r=t(74696);const c={partialHeading:"okxfx"};function l(){return n.createElement("div",{className:"px-3"},n.createElement("div",{className:"partial-loading-background mb-2 ".concat(c.partialHeading)}),n.createElement("div",{className:"mb-2"},n.createElement(i.b2,null)),n.createElement(r.S,null))}},68050:(e,a,t)=>{t.d(a,{Z:()=>o});var n=t(95685),i=t.n(n),r=t(32735),c=t(46304),l=t(74512);const s=r.forwardRef((({bsPrefix:e,className:a,as:t="div",...n},r)=>{const s=(0,c.vE)(e,"row"),o=(0,c.pi)(),m=(0,c.zG)(),u=`${s}-cols`,d=[];return o.forEach((e=>{const a=n[e];let t;delete n[e],null!=a&&"object"==typeof a?({cols:t}=a):t=a;const i=e!==m?`-${e}`:"";null!=t&&d.push(`${u}${i}-${t}`)})),(0,l.jsx)(t,{ref:r,...n,className:i()(a,s,...d)})}));s.displayName="Row";const o=s}}]);
2
- //# sourceMappingURL=9359-fa72fcdedc-lite.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scripts/9359-fa72fcdedc-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/components/breadcrumbs/Breadcrumbs.tsx","file:///app/packages/libs/shared/src/components/video-list/partial-loading/partial-video-list.scss","file:///app/packages/libs/shared/src/components/video-list/partial-loading/PartialVideoList.tsx","file:///app/packages/libs/shared/src/utils/PartialLoadingHelper.ts","file:///app/packages/projects/lite/src/shared/hooks/usePresentationAudiences.ts","file:///app/packages/projects/lite/src/shared/hooks/useVideoFeatureAccess.ts","file:///app/packages/projects/lite/src/shared/views/video-media/ClipClipsView.tsx","file:///app/packages/projects/lite/src/shared/views/video-media/VideoMediaAppLinks.ts","file:///app/packages/projects/lite/src/shared/views/video-media/partial-loading/partial-video-media-view.scss","file:///app/packages/projects/lite/src/shared/views/video-media/partial-loading/PartialVideoMediaView.tsx","file:///app/node_modules/react-bootstrap/esm/Row.js"],"sourcesContent":["import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\nimport { useMediaQuery } from 'libs/shared/hooks/UseMediaQuery';\nimport { PartialLoadingHelper } from 'libs/shared/utils/PartialLoadingHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { SvgContainer, SvgContainerSize } from '../svg-container/SvgContainer';\n\nexport interface Breadcrumb {\n name: string;\n appLink?: Core.AppLink;\n active?: boolean;\n}\n\ninterface BreadcrumbItemProps {\n breadcrumb: Breadcrumb;\n withBackIcon?: boolean;\n}\n\nexport const BreadcrumbItem = ({ breadcrumb: { name, appLink, active }, withBackIcon }: BreadcrumbItemProps) => (\n <li className={`breadcrumb-item${active ? ' active' : ''}`}>\n {active\n ? <strong>{name}</strong>\n : <AppLink appLink={appLink}>\n {withBackIcon && <SvgContainer svgName={cvSvgLibrary.ChevronLeft} size={SvgContainerSize.Small} />}\n <span className={withBackIcon ? 'ms-2' : ''}>{name}</span>\n </AppLink>\n }\n </li>\n);\n\ninterface BreadcrumbsProps {\n breadcrumbs: Breadcrumb[];\n}\n\nexport const Breadcrumbs = ({ breadcrumbs }: BreadcrumbsProps) => {\n const isMobile = useMediaQuery(MediaQueryStrings.XS);\n\n const length = breadcrumbs?.length;\n\n if (!length || (isMobile && length < 2))\n return <></>;\n\n if (isMobile)\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n <BreadcrumbItem breadcrumb={breadcrumbs[length - 2]} withBackIcon />\n </ol>\n </nav>\n );\n\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n {breadcrumbs.map((b, idx) => <BreadcrumbItem key={idx} breadcrumb={b} />)}\n </ol>\n </nav>\n );\n};\n\nexport const PartialBreadcrumbs = React.memo(function({ numItems = 3 }: { numItems?: number; }) {\n const isMobile = useMediaQuery(MediaQueryStrings.XS);\n\n if (isMobile) {\n return (\n <div className='partial-loading-background' style={{ height: '1.3125rem', width: '6rem' }} />\n );\n }\n\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n {PartialLoadingHelper.getPartialLoadingItems({ numItems }).map(({ width }, idx) => (\n <li key={idx} className='breadcrumb-item'>\n <span className='d-inline-block partial-loading-background' style={{ width }} dangerouslySetInnerHTML={{ __html: '&nbsp' }} />\n </li>\n ))}\n </ol>\n </nav>\n );\n});","// extracted by mini-css-extract-plugin\nexport default {\"partialOptions\":\"Gufgq\",\"partialName\":\"SicQQ\",\"partialDescription\":\"dPGMq\",\"partialThumbnail\":\"vZrnb\",\"partialDragHandle\":\"iq73R\"};","import React from 'react';\nimport { Col, Row } from 'react-bootstrap';\n\nimport { VideoListHelper } from 'libs/shared/components/video-list/VideoListHelper';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\n\nimport styles from './partial-video-list.scss';\n\ninterface PartialVideoListProps {\n withReordering?: boolean;\n numVideos?: number;\n allowBulkActions?: boolean;\n}\n\nPartialVideoList.defaultProps = {\n numVideos: 15\n};\n\nexport function PartialVideoList(props: PartialVideoListProps): JSX.Element {\n return (\n <div className='mx-2'>\n {Array(props.numVideos).fill(null).map((_, i) => (\n <div className='d-flex' key={i}>\n {props.allowBulkActions && <div className='form-check pe-3 pe-sm-2 mx-0 mx-md-2' />}\n <PartialVideoItem {...props} />\n </div>\n ))}\n </div>\n );\n}\n\nexport function PartialVideoItem(props: PartialVideoListProps): JSX.Element {\n const breakpoints = useBreakpoints();\n\n const size = VideoListHelper.getSize(breakpoints, 'md');\n const isSmall = size === 'sm';\n\n const withDragHandle = props.withReordering && !breakpoints.xs;\n\n return (\n <Row className={`${isSmall ? '' : 'py-2'} flex-grow-1`}>\n <Col {...VideoListHelper.getThumbnailColumns()} className={`flex-column align-items-flex-start ${isSmall ? `pb-2 pe-1` : 'mb-1 pe-3 pe-md-2'}`}>\n <Row>\n {!!withDragHandle && (\n <div className='d-flex align-items-center justify-content-center col-2'>\n <div className={`partial-loading-background ${styles.partialDragHandle}`} />\n </div>\n )}\n <Col xs={VideoListHelper.getThumbnailColSize(withDragHandle)}>\n <div className={`partial-loading-background ${isSmall ? 'rounded' : 'rounded-3'} ${styles.partialThumbnail}`} />\n </Col>\n </Row>\n </Col>\n <Col {...VideoListHelper.getDetailsColumns()} className={isSmall ? 'pb-2' : 'px-2'}>\n <div className={`partial-loading-background mb-1 ${styles.partialName}`} />\n <div className={`partial-loading-background ${styles.partialDescription}`} />\n </Col>\n </Row>\n );\n}\n\n","const DEFAULT_PARTIAL_LOADING_OPTIONS: PartialLoadingOptions = {\n numItems: 5,\n minWidth: 50, // px\n maxWidth: 100 // px\n};\n\nexport interface PartialLoadingOptions {\n numItems?: number;\n minWidth?: number;\n maxWidth?: number;\n}\n\ninterface PartialLoadingItem {\n width: string;\n}\n\nexport const PartialLoadingHelper = {\n getPartialLoadingItems(options: PartialLoadingOptions = {}): PartialLoadingItem[] {\n const opts = {\n ...DEFAULT_PARTIAL_LOADING_OPTIONS,\n ...options\n };\n\n const getRandomFilterWidth = () => Math.max(Math.floor(Math.random() * opts.maxWidth), opts.minWidth);\n\n return [...Array(opts.numItems)].map(() => ({ width: `${getRandomFilterWidth()}px` }));\n }\n};","import { Flight } from 'libs/common/react/index';\n\nimport { AudienceRequests } from 'libs/shared/flight-requests/AudienceRequests';\nimport { PresentationAudience } from 'libs/shared/interfaces';\n\nimport { usePresentation } from 'shared/hooks/usePresentation';\n\nexport const usePresentationAudiences = () => {\n const { activePresentation, getFallbackPresentation } = usePresentation({ redirectOnError: true });\n\n const presentation = activePresentation || getFallbackPresentation();\n\n const audiences = Flight.useBasicFetch<PresentationAudience[]>(\n !!presentation &&\n AudienceRequests.presentationAudiences(presentation.id)\n );\n\n return audiences;\n};","import { LocalPermissionName, PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ProductId } from 'libs/shared/enums/ProductId';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useProducts } from 'libs/shared/hooks/UseProducts';\n\nimport { LiteRouteHelper } from 'shared/utils/LiteRouteHelper';\n\nexport interface VideoFeaturesHash {\n canViewGlance: boolean;\n canViewResources: boolean;\n canViewInteractives: boolean;\n canViewClips: boolean;\n canUseActions: boolean;\n canViewPublicLayout: boolean;\n canNavigate: boolean;\n canViewCurriculumLinks: boolean;\n canViewResourceItems: boolean;\n}\n\nexport function useVideoFeatureAccess() {\n const { hasPermissions, hasLocalPermissions } = usePermissions();\n const { hasProduct } = useProducts();\n\n const hasNP = hasProduct(ProductId.Primary);\n\n function showPublicLayout(): boolean {\n /**\n * Authenticated users should never see the placeholder\n */\n if (hasLocalPermissions(LocalPermissionName.WatchVideos))\n return false;\n\n /**\n * Accessing a play page unathenticated will have different contextual behabviours:\n * - For a share page, the user should see the video and never the placeholder\n * - For a public browsing page (ie. using a route-prefix) they should see the placeholder\n */\n return LiteRouteHelper.hasRegionPrefix();\n }\n\n return {\n canViewGlance: hasPermissions(PermissionName.ViewVideoGlance),\n canViewResources: true,\n canViewInteractives: hasNP && hasPermissions(PermissionName.ViewVideoInteractives),\n canViewClips: hasNP && hasPermissions(PermissionName.ViewVideoClips),\n canViewCurriculumLinks: hasPermissions(PermissionName.ViewCurriculums),\n canUseActions: hasLocalPermissions(LocalPermissionName.UseVideoActions),\n canViewPublicLayout: showPublicLayout(),\n canViewResourceItems: hasLocalPermissions(LocalPermissionName.ViewVideoResourceItems),\n canNavigate: hasNP\n };\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { Breadcrumb, Breadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { VideoList } from 'libs/shared/components/video-list/VideoList';\nimport { VideoActionsContext } from 'libs/shared/context/VideoActionsContext';\nimport { RelatedVideosContext } from 'libs/shared/enums/RelatedVideosContext';\nimport { ClipRequests } from 'libs/shared/flight-requests/ClipRequests';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { Clip, Config, CurrentUser, YearGroup } from 'libs/shared/interfaces';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { usePluginHelper } from 'shared/hooks/use-plugin-helper/usePluginHelper';\nimport { useVideoActions, VideoActionsLocation } from 'shared/hooks/use-video-actions/useVideoActions';\nimport { useLiteFavourites } from 'shared/hooks/useLiteFavourites';\nimport { usePresentationAudiences } from 'shared/hooks/usePresentationAudiences';\nimport { useVideoFeatureAccess } from 'shared/hooks/useVideoFeatureAccess';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\nimport { VideoMediaAppLinks } from 'shared/views/video-media/VideoMediaAppLinks';\n\nimport { SeriesAppLinkHelper } from 'apps/series/SeriesAppLinkHelper';\n\nimport { PartialVideoMediaView } from './partial-loading/PartialVideoMediaView';\n\nconst namespace = 'shared.videoMedia';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface ClipClipsViewProps {\n clipId: string;\n}\n\nexport function ClipClipsView(props: ClipClipsViewProps): JSX.Element {\n const { clipId } = props;\n const { setFavourite, canFavourite } = useLiteFavourites(LocationContext.VideoThumbnail);\n const { isPlugin } = usePluginHelper();\n \n const videoActions = useVideoActions({ location: VideoActionsLocation.VideoItem });\n const featureAccess = useVideoFeatureAccess();\n\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 clip = Flight.useBasicFetch<Clip>(ClipRequests.clip(clipId));\n const parentVideoId = clip.data?._parentVideo?.id;\n const clips = Flight.useBasicFetch<Clip[]>(\n parentVideoId && featureAccess.canViewClips && ClipRequests.videoClips(parentVideoId)\n );\n \n const content = clips?.data?.filter(clip => clip.id.toString() !== clipId.toString());\n const count = content?.length || 0;\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n const title = `${getPhrase('otherClipsHeading')} (${count || ''})`;\n\n const audiences = usePresentationAudiences();\n const { hasPermissions } = usePermissions();\n\n const breadcrumbs: Breadcrumb[] = [{\n name: clip.data?.name,\n appLink: {\n ...VideoMediaAppLinks.playClip,\n args: [ clipId, TextHelper.slugify(clip.data?.name) ]\n }\n }, {\n name: title,\n appLink: {\n application: AppChannels.CLIPS,\n action: Actions.Clips.CLIP_CLIPS,\n args: [ clipId, TextHelper.slugify(clip.data?.name) ]\n },\n active: true\n }];\n\n function redirectToPlaypage(): void {\n Core.AppLinkHelper.trigger({\n ...VideoMediaAppLinks.playClip,\n args: [ clipId, TextHelper.slugify(clip.data?.name) ]\n }, { replace: true });\n }\n\n React.useEffect(() => {\n if (!featureAccess.canViewClips) {\n redirectToPlaypage();\n }\n }, [featureAccess.canViewClips]);\n\n if (!clip.data || !content?.length || !config.hasCompleted)\n return <PartialVideoMediaView />;\n\n return (\n <VideoActionsContext.Provider value={videoActions}>\n <div className='px-3'>\n <h1 className='h2 mb-2'>{title}</h1>\n \n <div className='mb-2'>\n <Breadcrumbs breadcrumbs={breadcrumbs}/>\n </div>\n\n <VideoList\n videos={content}\n yearGroups={yearGroups.data}\n getVideoAppLink={(video, opts) => VideoAppLinkHelper.getAppLink(video, {\n ...opts,\n context: RelatedVideosContext.Widget,\n contextId: props.clipId\n })}\n hasPermissions={hasPermissions}\n getSubTextAppLink={video => SeriesAppLinkHelper.getSeriesAppLink(video.series)}\n setFavourite={setFavourite}\n canFavourite={canFavourite}\n presentationAudiences={audiences.data}\n imageCdnUrl={config.data?.imageCdnUrl}\n isPlugin={isPlugin}\n getClassroomGuideAppLink={VideoAppLinkHelper.getClassroomGuideAppLink}\n getInteractiveGuidanceAppLink={VideoAppLinkHelper.getInteractiveGuidanceAppLink}\n getResourceGuidanceAppLink={VideoAppLinkHelper.getResourceGuidanceAppLink}\n />\n </div>\n </VideoActionsContext.Provider>\n );\n}","\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nexport const VideoMediaAppLinks = {\n playVideo: {\n application: AppChannels.VIDEOS,\n action: Actions.Videos.PLAY_VIDEO\n },\n playClip: {\n application: AppChannels.CLIPS,\n action: Actions.Clips.PLAY_CLIP\n }\n};","// extracted by mini-css-extract-plugin\nexport default {\"partialHeading\":\"okxfx\"};","import React from 'react';\n\nimport { PartialBreadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { PartialVideoList } from 'libs/shared/components/video-list/partial-loading/PartialVideoList';\n\nimport styles from './partial-video-media-view.scss';\n\nexport function PartialVideoMediaView(): JSX.Element {\n return (\n <div className='px-3'>\n <div className={`partial-loading-background mb-2 ${styles.partialHeading}`} />\n <div className='mb-2'>\n <PartialBreadcrumbs/>\n </div>\n <PartialVideoList />\n </div>\n );\n}","\"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;"],"names":["BreadcrumbItem","breadcrumb","name","appLink","active","withBackIcon","className","svgName","size","S","Breadcrumbs","breadcrumbs","isMobile","length","map","b","idx","key","PartialBreadcrumbs","numItems","style","height","width","dangerouslySetInnerHTML","__html","PartialVideoList","props","Array","numVideos","fill","_","i","allowBulkActions","PartialVideoItem","breakpoints","useBreakpoints","isSmall","VideoListHelper","withDragHandle","withReordering","xs","Row","Col","defaultProps","DEFAULT_PARTIAL_LOADING_OPTIONS","minWidth","maxWidth","PartialLoadingHelper","getPartialLoadingItems","options","opts","Math","max","floor","random","usePresentationAudiences","redirectOnError","activePresentation","getFallbackPresentation","presentation","id","useVideoFeatureAccess","hasPermissions","hasLocalPermissions","hasNP","hasProduct","canViewGlance","canViewResources","canViewInteractives","canViewClips","canViewCurriculumLinks","canUseActions","canViewPublicLayout","canViewResourceItems","canNavigate","getPhrase","ClipClipsView","clipId","u","setFavourite","canFavourite","isPlugin","videoActions","location","featureAccess","currentUser","yearGroups","data","isAuthenticated","customerId","clip","parentVideoId","_parentVideo","clips","content","filter","toString","count","config","title","audiences","args","application","action","replace","redirectToPlaypage","hasCompleted","value","videos","getVideoAppLink","video","context","contextId","getSubTextAppLink","series","presentationAudiences","imageCdnUrl","getClassroomGuideAppLink","getInteractiveGuidanceAppLink","getResourceGuidanceAppLink","VideoMediaAppLinks","playVideo","playClip","PartialVideoMediaView","bsPrefix","as","Component","ref","decoratedBsPrefix","minBreakpoint","sizePrefix","classes","forEach","brkPoint","propValue","cols","infix","push","displayName"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[9399],{49935:(e,a,t)=>{t.d(a,{Oo:()=>u,b2:()=>d});var n=t(32735),i=t(36848),r=t(86764),c=t(3747),l=t(5859),s=t(35223),o=t(83914),m=function(e){var a=e.breadcrumb,t=a.name,r=a.appLink,c=a.active,l=e.withBackIcon;return n.createElement("li",{className:"breadcrumb-item".concat(c?" active":"")},c?n.createElement("strong",null,t):n.createElement(i.F,{appLink:r},l&&n.createElement(o.x,{svgName:s.vn.ChevronLeft,size:o.S.Small}),n.createElement("span",{className:l?"ms-2":""},t)))},u=function(e){var a=e.breadcrumbs,t=(0,c.a)(r.r.XS),i=null==a?void 0:a.length;return!i||t&&i<2?n.createElement(n.Fragment,null):t?n.createElement("nav",{"aria-label":"breadcrumb"},n.createElement("ol",{className:"breadcrumb m-0 p-0"},n.createElement(m,{breadcrumb:a[i-2],withBackIcon:!0}))):n.createElement("nav",{"aria-label":"breadcrumb"},n.createElement("ol",{className:"breadcrumb m-0 p-0"},a.map((function(e,a){return n.createElement(m,{key:a,breadcrumb:e})}))))},d=n.memo((function(e){var a=e.numItems,t=void 0===a?3:a;return(0,c.a)(r.r.XS)?n.createElement("div",{className:"partial-loading-background",style:{height:"1.3125rem",width:"6rem"}}):n.createElement("nav",{"aria-label":"breadcrumb"},n.createElement("ol",{className:"breadcrumb m-0 p-0"},l.u.getPartialLoadingItems({numItems:t}).map((function(e,a){var t=e.width;return n.createElement("li",{key:a,className:"breadcrumb-item"},n.createElement("span",{className:"d-inline-block partial-loading-background",style:{width:t},dangerouslySetInnerHTML:{__html:"&nbsp"}}))}))))}))},74696:(e,a,t)=>{t.d(a,{S:()=>o});var n=t(32735),i=t(68050),r=t(69111),c=t(9977),l=t(79967);const s={partialOptions:"Gufgq",partialName:"SicQQ",partialDescription:"dPGMq",partialThumbnail:"vZrnb",partialDragHandle:"iq73R"};function o(e){return n.createElement("div",{className:"mx-2"},Array(e.numVideos).fill(null).map((function(a,t){return n.createElement("div",{className:"d-flex",key:t},e.allowBulkActions&&n.createElement("div",{className:"form-check pe-3 pe-sm-2 mx-0 mx-md-2"}),n.createElement(m,Object.assign({},e)))})))}function m(e){var a=(0,l.k)(),t="sm"===c.O.getSize(a,"md"),o=e.withReordering&&!a.xs;return n.createElement(i.Z,{className:"".concat(t?"":"py-2"," flex-grow-1")},n.createElement(r.Z,Object.assign({},c.O.getThumbnailColumns(),{className:"flex-column align-items-flex-start ".concat(t?"pb-2 pe-1":"mb-1 pe-3 pe-md-2")}),n.createElement(i.Z,null,!!o&&n.createElement("div",{className:"d-flex align-items-center justify-content-center col-2"},n.createElement("div",{className:"partial-loading-background ".concat(s.partialDragHandle)})),n.createElement(r.Z,{xs:c.O.getThumbnailColSize(o)},n.createElement("div",{className:"partial-loading-background ".concat(t?"rounded":"rounded-3"," ").concat(s.partialThumbnail)})))),n.createElement(r.Z,Object.assign({},c.O.getDetailsColumns(),{className:t?"pb-2":"px-2"}),n.createElement("div",{className:"partial-loading-background mb-1 ".concat(s.partialName)}),n.createElement("div",{className:"partial-loading-background ".concat(s.partialDescription)})))}o.defaultProps={numVideos:15}},5859:(e,a,t)=>{function n(e,a){(null==a||a>e.length)&&(a=e.length);for(var t=0,n=Array(a);t<a;t++)n[t]=e[t];return n}t.d(a,{u:()=>r});var i={numItems:5,minWidth:50,maxWidth:100},r={getPartialLoadingItems:function(){var e,a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=Object.assign(Object.assign({},i),a);return(e=Array(t.numItems),function(e){if(Array.isArray(e))return n(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,a){if(e){if("string"==typeof e)return n(e,a);var t={}.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?n(e,a):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()).map((function(){return{width:"".concat(Math.max(Math.floor(Math.random()*t.maxWidth),t.minWidth),"px")}}))}}},44110:(e,a,t)=>{t.d(a,{i:()=>c});var n=t(20354),i=t(89454),r=t(86698),c=function(){var e=(0,r.y)({redirectOnError:!0}),a=e.activePresentation,t=e.getFallbackPresentation,c=a||t();return n.a.useBasicFetch(!!c&&i.O.presentationAudiences(c.id))}},35014:(e,a,t)=>{t.d(a,{I:()=>s});var n=t(16714),i=t(12754),r=t(22902),c=t(15311),l=t(11387);function s(){var e=(0,r.T)(),a=e.hasPermissions,t=e.hasLocalPermissions,s=(0,(0,c.r)().hasProduct)(i.x.Primary);return{canViewGlance:a(n.C.ViewVideoGlance),canViewResources:!0,canViewInteractives:s&&a(n.C.ViewVideoInteractives),canViewClips:s&&a(n.C.ViewVideoClips),canViewCurriculumLinks:a(n.C.ViewCurriculums),canUseActions:t(n.E.UseVideoActions),canViewPublicLayout:!t(n.E.WatchVideos)&&l.C.hasRegionPrefix(),canViewResourceItems:t(n.E.ViewVideoResourceItems),canNavigate:s}}},33915:(e,a,t)=>{t.r(a),t.d(a,{VideoInteractivesView:()=>S});var n=t(32735),i=t(81886),r=t(23481),c=t(20354),l=t(28400),s=t(65858),o=t(49935),m=t(13231),u=t(51365),d=t(183),p=t(39151),v=t(1666),g=t(20768),b=t(31949),f=t(1575),E=t(22902),h=t(14070),k=t(97291),I=t(51855),V=t(10671),y=t(27638),w=t(44110),N=t(35014),A=t(10741),L=t(22490),O=t(16747),x=t(98620),C=t(82431),P=r.T.encloseNamespace("shared.videoMedia");function S(e){var a,t,r,S,j=e.videoId,G=(0,y.u)(s.LZ.VideoThumbnail),F=G.setFavourite,T=G.canFavourite,R=(0,I.G)().isPlugin,W=(0,V._)({location:V.i.VideoItem}),_=(0,N.I)(),B=c.a.useBasicFetch(b.N.currentUser()),D=c.a.useBasicFetch(B.data.isAuthenticated&&v.h.yearGroups(B.data.customerId)),M=c.a.useBasicFetch(f.R.video(j)),Z=c.a.useBasicFetch(_.canViewInteractives&&g.b.videoInteractives(j)),$=null==Z?void 0:Z.data,H=(null==$?void 0:$.length)||0,Q=c.a.useBasicFetch(p.L.config()),U="".concat(P("interactivesHeading")," (").concat(H||"",")"),Y=(0,w.i)(),z=(0,E.T)().hasPermissions,q=[{name:null===(a=M.data)||void 0===a?void 0:a.name,appLink:Object.assign(Object.assign({},x.Y.playVideo),{args:[j,l.m.slugify(null===(t=M.data)||void 0===t?void 0:t.name)]})},{name:U,appLink:{application:k.O.VIDEOS,action:h.e.Videos.VIDEO_INTERACTIVES,args:[j,l.m.slugify(null===(r=M.data)||void 0===r?void 0:r.name)]},active:!0}];return n.useEffect((function(){_.canViewInteractives||function(){var e;i.Q.C$.trigger(Object.assign(Object.assign({},x.Y.playVideo),{args:[j,l.m.slugify(null===(e=M.data)||void 0===e?void 0:e.name)]}),{replace:!0})}()}),[_.canViewInteractives]),M.data&&(null==$?void 0:$.length)&&Q.hasCompleted?n.createElement(u.M.Provider,{value:W},n.createElement("div",{className:"px-3"},n.createElement("h1",{className:"h2 mb-2"},U),n.createElement("div",{className:"mb-2"},n.createElement(o.Oo,{breadcrumbs:q})),n.createElement(m.E4,{videos:$,yearGroups:D.data,getVideoAppLink:function(a,t){return L.W.getAppLink(a,Object.assign(Object.assign({},t),{context:d.Q.Widget,contextId:e.videoId}))},hasPermissions:z,getSubTextAppLink:function(e){return C.j.getSeriesAppLink(e.series)},setFavourite:F,canFavourite:T,presentationAudiences:Y.data,getPreviewQuestionsAppLink:function(e){return A.j.getPreviewQuestionsAppLink(e)},imageCdnUrl:null===(S=Q.data)||void 0===S?void 0:S.imageCdnUrl,isPlugin:R,getClassroomGuideAppLink:L.W.getClassroomGuideAppLink,getInteractiveGuidanceAppLink:L.W.getInteractiveGuidanceAppLink,getResourceGuidanceAppLink:L.W.getResourceGuidanceAppLink}))):n.createElement(O.l,null)}},98620:(e,a,t)=>{t.d(a,{Y:()=>r});var n=t(14070),i=t(97291),r={playVideo:{application:i.O.VIDEOS,action:n.e.Videos.PLAY_VIDEO},playClip:{application:i.O.CLIPS,action:n.e.Clips.PLAY_CLIP}}},16747:(e,a,t)=>{t.d(a,{l:()=>l});var n=t(32735),i=t(49935),r=t(74696);const c={partialHeading:"okxfx"};function l(){return n.createElement("div",{className:"px-3"},n.createElement("div",{className:"partial-loading-background mb-2 ".concat(c.partialHeading)}),n.createElement("div",{className:"mb-2"},n.createElement(i.b2,null)),n.createElement(r.S,null))}},68050:(e,a,t)=>{t.d(a,{Z:()=>o});var n=t(95685),i=t.n(n),r=t(32735),c=t(46304),l=t(74512);const s=r.forwardRef((({bsPrefix:e,className:a,as:t="div",...n},r)=>{const s=(0,c.vE)(e,"row"),o=(0,c.pi)(),m=(0,c.zG)(),u=`${s}-cols`,d=[];return o.forEach((e=>{const a=n[e];let t;delete n[e],null!=a&&"object"==typeof a?({cols:t}=a):t=a;const i=e!==m?`-${e}`:"";null!=t&&d.push(`${u}${i}-${t}`)})),(0,l.jsx)(t,{ref:r,...n,className:i()(a,s,...d)})}));s.displayName="Row";const o=s}}]);
2
- //# sourceMappingURL=9399-b724e4fb06-lite.chunk.js.map