@clickview/lite 0.0.18-dev.2 → 0.0.18-rc.1

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 (418) hide show
  1. package/dist/css/0.chunk.css.map +1 -0
  2. package/dist/css/1.chunk.css +144 -2
  3. package/dist/css/1.chunk.css.map +1 -0
  4. package/dist/css/10.chunk.css +10 -12
  5. package/dist/css/10.chunk.css.map +1 -0
  6. package/dist/css/11.chunk.css +5 -9
  7. package/dist/css/11.chunk.css.map +1 -0
  8. package/dist/css/12.chunk.css.map +1 -0
  9. package/dist/css/13.chunk.css.map +1 -0
  10. package/dist/css/14.chunk.css.map +1 -0
  11. package/dist/css/16.chunk.css.map +1 -0
  12. package/dist/css/18.chunk.css.map +1 -0
  13. package/dist/css/19.chunk.css +6 -2
  14. package/dist/css/19.chunk.css.map +1 -0
  15. package/dist/css/2.chunk.css +14 -0
  16. package/dist/css/20.chunk.css +2 -6
  17. package/dist/css/21.chunk.css +1 -3
  18. package/dist/css/21.chunk.css.map +1 -0
  19. package/dist/css/22.chunk.css +2 -2
  20. package/dist/css/22.chunk.css.map +1 -0
  21. package/dist/css/23.chunk.css +3 -1
  22. package/dist/css/23.chunk.css.map +1 -0
  23. package/dist/css/24.chunk.css +1 -3
  24. package/dist/css/24.chunk.css.map +1 -0
  25. package/dist/css/25.chunk.css +2 -2
  26. package/dist/css/25.chunk.css.map +1 -0
  27. package/dist/css/26.chunk.css +3 -1
  28. package/dist/css/26.chunk.css.map +1 -0
  29. package/dist/css/27.chunk.css +66 -2
  30. package/dist/css/27.chunk.css.map +1 -0
  31. package/dist/css/28.chunk.css +48 -2
  32. package/dist/css/28.chunk.css.map +1 -0
  33. package/dist/css/29.chunk.css +43 -4
  34. package/dist/css/29.chunk.css.map +1 -0
  35. package/dist/css/3.chunk.css +13 -7
  36. package/dist/css/3.chunk.css.map +1 -0
  37. package/dist/css/30.chunk.css +1 -3
  38. package/dist/css/30.chunk.css.map +1 -0
  39. package/dist/css/31.chunk.css +5 -2
  40. package/dist/css/31.chunk.css.map +1 -0
  41. package/dist/css/32.chunk.css +4 -1
  42. package/dist/css/32.chunk.css.map +1 -0
  43. package/dist/css/34.chunk.css +4 -2
  44. package/dist/css/34.chunk.css.map +1 -0
  45. package/dist/css/35.chunk.css +7 -0
  46. package/dist/css/35.chunk.css.map +1 -0
  47. package/dist/css/36.chunk.css +4 -0
  48. package/dist/css/36.chunk.css.map +1 -0
  49. package/dist/css/37.chunk.css +3 -1
  50. package/dist/css/37.chunk.css.map +1 -0
  51. package/dist/css/38.chunk.css +36 -2
  52. package/dist/css/38.chunk.css.map +1 -0
  53. package/dist/css/4.chunk.css +5 -13
  54. package/dist/css/4.chunk.css.map +1 -0
  55. package/dist/css/44.chunk.css +1 -1
  56. package/dist/css/45.chunk.css +9 -0
  57. package/dist/css/45.chunk.css.map +1 -0
  58. package/dist/css/5.chunk.css +2 -8
  59. package/dist/css/5.chunk.css.map +1 -0
  60. package/dist/css/9.chunk.css +15 -7
  61. package/dist/css/lite-app.css.map +1 -0
  62. package/dist/libs/analytics/src/AnalyticsService.d.ts +52 -0
  63. package/dist/libs/analytics/src/clients/BaseAnalyticsClient.d.ts +24 -0
  64. package/dist/libs/analytics/src/clients/CollectionApiClient.d.ts +48 -0
  65. package/dist/libs/analytics/src/clients/DebuggerClient.d.ts +7 -0
  66. package/dist/libs/analytics/src/constants/ApplicationOptionsKey.d.ts +1 -0
  67. package/dist/libs/analytics/src/constants/CountryRegionMapping.d.ts +7 -0
  68. package/dist/libs/analytics/src/constants/Regions.d.ts +6 -0
  69. package/dist/libs/analytics/src/enrichers/BaseAnalyticsEnricher.d.ts +19 -0
  70. package/dist/libs/analytics/src/enrichers/CoreContextEnricher.d.ts +22 -0
  71. package/dist/libs/analytics/src/enrichers/UserDataEnricher.d.ts +10 -0
  72. package/dist/libs/analytics/src/enums/CountryCode.d.ts +5 -0
  73. package/dist/libs/analytics/src/interfaces/AnalyticsTypes.d.ts +49 -5
  74. package/dist/libs/analytics/src/interfaces/VersionData.d.ts +4 -0
  75. package/dist/libs/analytics/src/models/CollectionEvent.d.ts +55 -0
  76. package/dist/libs/analytics/src/transport/EventTransport.d.ts +39 -0
  77. package/dist/libs/analytics/src/utils/CollectionApiClientHelper.d.ts +6 -0
  78. package/dist/libs/analytics/src/utils/DataFormatHelper.d.ts +14 -0
  79. package/dist/libs/analytics/src/utils/EventWhitelistHelper.d.ts +19 -0
  80. package/dist/libs/analytics/src/utils/TypeHelper.d.ts +4 -0
  81. package/dist/libs/analytics/src/utils/UploadDataFormatHelper.d.ts +10 -0
  82. package/dist/libs/analytics/src/utils/UserAgentHelper.d.ts +10 -0
  83. package/dist/libs/analytics/src/utils/VideoDataFormatHelper.d.ts +42 -0
  84. package/dist/libs/common/src/backbone/core/BaseAppRouter.d.ts +5 -1
  85. package/dist/libs/common/src/react/constants/ViewModelActions.d.ts +3 -0
  86. package/dist/libs/common/src/react/hooks/useViewModel.d.ts +4 -0
  87. package/dist/libs/common/src/react/interfaces/ApplicationState.d.ts +3 -1
  88. package/dist/libs/common/src/react/interfaces/ViewModelAction.d.ts +5 -0
  89. package/dist/libs/common/src/react/interfaces/ViewModelPayload.d.ts +5 -0
  90. package/dist/libs/common/src/react/reducers/ViewModelReducer.d.ts +3 -0
  91. package/dist/libs/common/src/react/utils/ArrayHelper.d.ts +1 -1
  92. package/dist/libs/shared/src/apps/content-updates/interfaces/VideoClassificationMapping.d.ts +2 -1
  93. package/dist/libs/shared/src/apps/upload/services/UploadService.d.ts +3 -2
  94. package/dist/libs/shared/src/components/lazy-image/LazyImage.d.ts +1 -1
  95. package/dist/libs/shared/src/components/search-bar/SearchBar.d.ts +5 -0
  96. package/dist/libs/shared/src/components/widgets/fixed-widget/FixedWidget.d.ts +4 -2
  97. package/dist/libs/shared/src/components/widgets/items/subject-widget-item/SubjectWidgetItem.d.ts +4 -3
  98. package/dist/libs/shared/src/constants/BootstrapKeys.d.ts +1 -0
  99. package/dist/libs/shared/src/constants/WithStatements.d.ts +1 -1
  100. package/dist/libs/shared/src/enums/CountryCode.d.ts +5 -0
  101. package/dist/libs/shared/src/enums/SubtitleExtractionOptions.d.ts +4 -0
  102. package/dist/libs/shared/src/enums/WidgetContents.d.ts +2 -1
  103. package/dist/libs/shared/src/flight-requests/FavouriteVideoRequests.d.ts +1 -1
  104. package/dist/libs/shared/src/flight-requests/PreferenceRequests.d.ts +4 -4
  105. package/dist/libs/shared/src/hooks/UseReorderedItems.d.ts +9 -0
  106. package/dist/libs/shared/src/interfaces/models/Config.d.ts +3 -1
  107. package/dist/libs/shared/src/interfaces/models/Group.d.ts +3 -0
  108. package/dist/libs/shared/src/interfaces/models/User.d.ts +2 -1
  109. package/dist/libs/shared/src/interfaces/models/UserChannel.d.ts +7 -0
  110. package/dist/libs/shared/src/interfaces/models/index.d.ts +2 -0
  111. package/dist/libs/shared/src/services/ConfigDataService.d.ts +1 -0
  112. package/dist/libs/shared/src/utils/AudienceHelper.d.ts +5 -1
  113. package/dist/projects/lite/src/apps/classrooms/components/classroom-group-dropdown/ClassroomGroupDropdown.d.ts +3 -2
  114. package/dist/projects/lite/src/apps/classrooms/components/tile-actions/TileActions.d.ts +1 -0
  115. package/dist/projects/lite/src/apps/classrooms/flight-requests/ClassroomRequests.d.ts +1 -1
  116. package/dist/projects/lite/src/apps/classrooms/views/add-students-to-classroom/AddStudentsToClassroomView.d.ts +3 -3
  117. package/dist/projects/lite/src/apps/classrooms/views/create-classroom/CreateClassroomView.d.ts +3 -4
  118. package/dist/projects/lite/src/apps/classrooms/views/create-classroom-group/CreateClassroomGroupView.d.ts +3 -3
  119. package/dist/projects/lite/src/apps/classrooms/views/delete-classroom/DeleteClassroomView.d.ts +4 -4
  120. package/dist/projects/lite/src/apps/classrooms/views/delete-classroom-group/DeleteClassroomGroupView.d.ts +3 -3
  121. package/dist/projects/lite/src/apps/classrooms/views/edit-classroom/EditClassroomView.d.ts +3 -3
  122. package/dist/projects/lite/src/apps/classrooms/views/edit-classroom-group/EditClassroomGroupView.d.ts +3 -3
  123. package/dist/projects/lite/src/apps/classrooms/views/remove-students-from-classroom/RemoveStudentsFromClassroomView.d.ts +3 -3
  124. package/dist/projects/lite/src/apps/content-updates/LiteContentUpdatesApplication.d.ts +1 -1
  125. package/dist/projects/lite/src/apps/default/LiteDefaultApplication.d.ts +2 -2
  126. package/dist/projects/lite/src/apps/playlists/LitePlaylistsApplication.d.ts +2 -1
  127. package/dist/projects/lite/src/apps/playlists/views/delete-playlist/DeletePlaylistView.d.ts +2 -2
  128. package/dist/projects/lite/src/apps/playlists/views/edit-playlist/EditPlaylistView.d.ts +2 -2
  129. package/dist/projects/lite/src/apps/playlists/views/new-playlist/NewPlaylistView.d.ts +2 -2
  130. package/dist/projects/lite/src/apps/playlists/views/playlist/PlaylistViewUtils.d.ts +0 -8
  131. package/dist/projects/lite/src/apps/playlists/views/remove-video-from-playlist/RemoveVideoFromPlaylistView.d.ts +2 -2
  132. package/dist/projects/lite/src/apps/search/components/filter-actions/FilterActions.d.ts +3 -2
  133. package/dist/projects/lite/src/apps/search/components/filter-button/FilterButton.d.ts +3 -2
  134. package/dist/projects/lite/src/apps/search/components/filter-types/checkbox-filter/CheckboxFilter.d.ts +3 -2
  135. package/dist/projects/lite/src/apps/search/components/filter-types/dropdown-filter/DropdownFilter.d.ts +3 -2
  136. package/dist/projects/lite/src/apps/search/components/filter-types/radio-filter/RadioFilter.d.ts +3 -2
  137. package/dist/projects/lite/src/apps/search/components/filter-types/radio-filter/year-level/YearLevelRadioFilter.d.ts +3 -2
  138. package/dist/projects/lite/src/apps/search/components/reset-button/ResetButton.d.ts +3 -2
  139. package/dist/projects/lite/src/apps/search/components/search-filters/SearchFilters.d.ts +3 -2
  140. package/dist/projects/lite/src/apps/search/interfaces/FilterProps.d.ts +3 -2
  141. package/dist/projects/lite/src/apps/search/utils/FilterHelper.d.ts +4 -2
  142. package/dist/projects/lite/src/apps/subjects/LiteSubjectApplication.d.ts +2 -2
  143. package/dist/projects/lite/src/apps/upload/services/FlightVideoUploadDataService.d.ts +5 -0
  144. package/dist/projects/lite/src/apps/user-manager/components/delete-uploaded-student-popup/DeleteUploadedStudentPopup.d.ts +4 -4
  145. package/dist/projects/lite/src/apps/user-manager/components/delete-uploaded-teacher-popup/DeleteUploadedTeacherPopup.d.ts +4 -4
  146. package/dist/projects/lite/src/apps/user-manager/components/edit-uploaded-user-popup/EditUploadedUserPopup.d.ts +4 -4
  147. package/dist/projects/lite/src/apps/user-manager/components/manage-users-list/ManageUsersList.d.ts +3 -2
  148. package/dist/projects/lite/src/apps/user-manager/flight-requests/SchoolUserRequests.d.ts +3 -3
  149. package/dist/projects/lite/src/apps/user-manager/views/create-student/CreateStudentView.d.ts +3 -4
  150. package/dist/projects/lite/src/apps/user-manager/views/create-teacher/CreateTeacherView.d.ts +3 -4
  151. package/dist/projects/lite/src/apps/user-manager/views/edit-student/EditStudentView.d.ts +4 -4
  152. package/dist/projects/lite/src/apps/user-manager/views/edit-teacher/EditTeacherView.d.ts +4 -4
  153. package/dist/projects/lite/src/apps/user-manager/views/remove-user/RemoveUserView.d.ts +4 -4
  154. package/dist/projects/lite/src/apps/user-manager/views/student-upload-review/StudentUploadReviewView.d.ts +4 -2
  155. package/dist/projects/lite/src/apps/user-manager/views/teacher-upload-review/TeacherUploadReviewView.d.ts +4 -2
  156. package/dist/projects/lite/src/shared/components/immersive-reader/ImmersiveReader.d.ts +7 -2
  157. package/dist/projects/lite/src/shared/components/share/copy-embed-html/CopyEmbedHtml.d.ts +4 -2
  158. package/dist/projects/lite/src/shared/constants/LiteViewModels.d.ts +6 -0
  159. package/dist/projects/lite/src/shared/{contexts/player/PlayerContext.d.ts → hooks/useInitPlayerContext.d.ts} +4 -10
  160. package/dist/projects/lite/src/shared/hooks/useNavLock.d.ts +1 -0
  161. package/dist/projects/lite/src/shared/views/share/main-view/MainShareView.d.ts +3 -3
  162. package/dist/projects/lite/src/shared/views/share/settings-view/ShareSettingsView.d.ts +4 -3
  163. package/dist/projects/lite/src/startup/RegisterAnalytics.d.ts +3 -0
  164. package/dist/projects/lite/src/startup/index.d.ts +1 -0
  165. package/dist/scripts/0-525bd75473.chunk.js +1 -0
  166. package/dist/scripts/0.chunk.js +478 -1
  167. package/dist/scripts/0.chunk.js.map +1 -0
  168. package/dist/scripts/1-f6fa17226d.chunk.js +17 -0
  169. package/dist/scripts/1.chunk.js +621 -17
  170. package/dist/scripts/1.chunk.js.map +1 -0
  171. package/dist/scripts/10-f3b34b2d35.chunk.js +1 -0
  172. package/dist/scripts/10.chunk.js +400 -7
  173. package/dist/scripts/10.chunk.js.map +1 -0
  174. package/dist/scripts/11-a698af3f1c.chunk.js +1 -0
  175. package/dist/scripts/11.chunk.js +1289 -7
  176. package/dist/scripts/11.chunk.js.map +1 -0
  177. package/dist/scripts/12-9ace90fcbc.chunk.js +1 -0
  178. package/dist/scripts/12.chunk.js +1059 -7
  179. package/dist/scripts/12.chunk.js.map +1 -0
  180. package/dist/scripts/13-3a4f103546.chunk.js +1 -0
  181. package/dist/scripts/13.chunk.js +751 -7
  182. package/dist/scripts/13.chunk.js.map +1 -0
  183. package/dist/scripts/14-11868e2868.chunk.js +1 -0
  184. package/dist/scripts/14.chunk.js +425 -7
  185. package/dist/scripts/14.chunk.js.map +1 -0
  186. package/dist/scripts/15-78ff5e8be2.chunk.js +1 -0
  187. package/dist/scripts/15.chunk.js +609 -7
  188. package/dist/scripts/15.chunk.js.map +1 -0
  189. package/dist/scripts/16-22f6224811.chunk.js +1 -0
  190. package/dist/scripts/16.chunk.js +648 -7
  191. package/dist/scripts/16.chunk.js.map +1 -0
  192. package/dist/scripts/17-afe6281dd5.chunk.js +1 -0
  193. package/dist/scripts/17.chunk.js +541 -7
  194. package/dist/scripts/17.chunk.js.map +1 -0
  195. package/dist/scripts/18-47be31c0b6.chunk.js +1 -0
  196. package/dist/scripts/18.chunk.js +766 -7
  197. package/dist/scripts/18.chunk.js.map +1 -0
  198. package/dist/scripts/19-89c0b2c20e.chunk.js +1 -0
  199. package/dist/scripts/19.chunk.js +647 -7
  200. package/dist/scripts/19.chunk.js.map +1 -0
  201. package/dist/scripts/2-3b37480a80.chunk.js +7 -0
  202. package/dist/scripts/2.chunk.js +8259 -1
  203. package/dist/scripts/2.chunk.js.map +1 -0
  204. package/dist/scripts/20-32ac3fe0b9.chunk.js +1 -0
  205. package/dist/scripts/20.chunk.js +122 -7
  206. package/dist/scripts/20.chunk.js.map +1 -0
  207. package/dist/scripts/21-891207049a.chunk.js +1 -0
  208. package/dist/scripts/21.chunk.js +1571 -1
  209. package/dist/scripts/21.chunk.js.map +1 -0
  210. package/dist/scripts/22-24236e6723.chunk.js +1 -0
  211. package/dist/scripts/22.chunk.js +1387 -1
  212. package/dist/scripts/22.chunk.js.map +1 -0
  213. package/dist/scripts/23-7b425169bc.chunk.js +1 -0
  214. package/dist/scripts/23.chunk.js +1121 -1
  215. package/dist/scripts/23.chunk.js.map +1 -0
  216. package/dist/scripts/24-40edd30087.chunk.js +1 -0
  217. package/dist/scripts/24.chunk.js +1348 -1
  218. package/dist/scripts/24.chunk.js.map +1 -0
  219. package/dist/scripts/25-887b9ef587.chunk.js +1 -0
  220. package/dist/scripts/25.chunk.js +1137 -1
  221. package/dist/scripts/25.chunk.js.map +1 -0
  222. package/dist/scripts/26-cbe0ff0f77.chunk.js +1 -0
  223. package/dist/scripts/26.chunk.js +906 -1
  224. package/dist/scripts/26.chunk.js.map +1 -0
  225. package/dist/scripts/27-f26afdae78.chunk.js +1 -0
  226. package/dist/scripts/27.chunk.js +1143 -1
  227. package/dist/scripts/27.chunk.js.map +1 -0
  228. package/dist/scripts/28-70414fd373.chunk.js +1 -0
  229. package/dist/scripts/28.chunk.js +656 -1
  230. package/dist/scripts/28.chunk.js.map +1 -0
  231. package/dist/scripts/29-944b5c01a7.chunk.js +1 -0
  232. package/dist/scripts/29.chunk.js +616 -1
  233. package/dist/scripts/29.chunk.js.map +1 -0
  234. package/dist/scripts/3-233f573a92.chunk.js +1 -0
  235. package/dist/scripts/3.chunk.js +585 -1
  236. package/dist/scripts/3.chunk.js.map +1 -0
  237. package/dist/scripts/30-3a229887e9.chunk.js +1 -0
  238. package/dist/scripts/30.chunk.js +557 -1
  239. package/dist/scripts/30.chunk.js.map +1 -0
  240. package/dist/scripts/31-ab038bfc0c.chunk.js +1 -0
  241. package/dist/scripts/31.chunk.js +731 -1
  242. package/dist/scripts/31.chunk.js.map +1 -0
  243. package/dist/scripts/32-8bd6703eef.chunk.js +1 -0
  244. package/dist/scripts/32.chunk.js +957 -1
  245. package/dist/scripts/32.chunk.js.map +1 -0
  246. package/dist/scripts/{35-8b4ce9fc27.chunk.js → 33-4579af9cf9.chunk.js} +1 -1
  247. package/dist/scripts/33.chunk.js +938 -1
  248. package/dist/scripts/33.chunk.js.map +1 -0
  249. package/dist/scripts/{36-cbd8837f89.chunk.js → 34-d8b96d9f9f.chunk.js} +1 -1
  250. package/dist/scripts/34.chunk.js +523 -1
  251. package/dist/scripts/34.chunk.js.map +1 -0
  252. package/dist/scripts/35-666d815525.chunk.js +1 -0
  253. package/dist/scripts/35.chunk.js +414 -1
  254. package/dist/scripts/35.chunk.js.map +1 -0
  255. package/dist/scripts/36-02ce5f3538.chunk.js +1 -0
  256. package/dist/scripts/36.chunk.js +404 -1
  257. package/dist/scripts/36.chunk.js.map +1 -0
  258. package/dist/scripts/37-afd3d321e3.chunk.js +1 -0
  259. package/dist/scripts/37.chunk.js +245 -1
  260. package/dist/scripts/37.chunk.js.map +1 -0
  261. package/dist/scripts/{39-e2aa1689e2.chunk.js → 38-6ad53aa15b.chunk.js} +1 -1
  262. package/dist/scripts/38.chunk.js +343 -1
  263. package/dist/scripts/38.chunk.js.map +1 -0
  264. package/dist/scripts/{40-53d132e3b4.chunk.js → 39-46c747b1d9.chunk.js} +1 -1
  265. package/dist/scripts/39.chunk.js +318 -1
  266. package/dist/scripts/39.chunk.js.map +1 -0
  267. package/dist/scripts/4-6942fee782.chunk.js +1 -0
  268. package/dist/scripts/4.chunk.js +1030 -1
  269. package/dist/scripts/4.chunk.js.map +1 -0
  270. package/dist/scripts/{41-023d613070.chunk.js → 40-c1b8806b1c.chunk.js} +1 -1
  271. package/dist/scripts/40.chunk.js +236 -1
  272. package/dist/scripts/40.chunk.js.map +1 -0
  273. package/dist/scripts/{42-ba3779218d.chunk.js → 41-f4c23477e3.chunk.js} +1 -1
  274. package/dist/scripts/41.chunk.js +231 -1
  275. package/dist/scripts/41.chunk.js.map +1 -0
  276. package/dist/scripts/42-7a5b92d70b.chunk.js +1 -0
  277. package/dist/scripts/42.chunk.js +350 -1
  278. package/dist/scripts/42.chunk.js.map +1 -0
  279. package/dist/scripts/43-97193a87df.chunk.js +1 -0
  280. package/dist/scripts/43.chunk.js +225 -1
  281. package/dist/scripts/43.chunk.js.map +1 -0
  282. package/dist/scripts/{46-6501968ace.chunk.js → 44-7f92272274.chunk.js} +1 -1
  283. package/dist/scripts/44.chunk.js +318 -1
  284. package/dist/scripts/44.chunk.js.map +1 -0
  285. package/dist/scripts/45-265f1a7a42.chunk.js +1 -0
  286. package/dist/scripts/45.chunk.js +64 -1
  287. package/dist/scripts/45.chunk.js.map +1 -0
  288. package/dist/scripts/46-a594ad7eba.chunk.js +1 -0
  289. package/dist/scripts/46.chunk.js +108 -1
  290. package/dist/scripts/46.chunk.js.map +1 -0
  291. package/dist/scripts/47-99777c20cf.chunk.js +1 -0
  292. package/dist/scripts/47.chunk.js +110 -1
  293. package/dist/scripts/47.chunk.js.map +1 -0
  294. package/dist/scripts/48-9880523c82.chunk.js +1 -0
  295. package/dist/scripts/48.chunk.js +148 -1
  296. package/dist/scripts/48.chunk.js.map +1 -0
  297. package/dist/scripts/{50-00ffd5d7c6.chunk.js → 49-5e718594e5.chunk.js} +1 -1
  298. package/dist/scripts/49.chunk.js +142 -1
  299. package/dist/scripts/49.chunk.js.map +1 -0
  300. package/dist/scripts/5-2f631dcd74.chunk.js +1 -0
  301. package/dist/scripts/5.chunk.js +3262 -1
  302. package/dist/scripts/5.chunk.js.map +1 -0
  303. package/dist/scripts/50-8cb0d9cd7d.chunk.js +1 -0
  304. package/dist/scripts/50.chunk.js +145 -1
  305. package/dist/scripts/50.chunk.js.map +1 -0
  306. package/dist/scripts/{52-e5dfa5a640.chunk.js → 51-211b643ca5.chunk.js} +1 -1
  307. package/dist/scripts/51.chunk.js +176 -1
  308. package/dist/scripts/51.chunk.js.map +1 -0
  309. package/dist/scripts/{53-79d5905fc6.chunk.js → 52-bfb2683b5d.chunk.js} +1 -1
  310. package/dist/scripts/52.chunk.js +160 -1
  311. package/dist/scripts/52.chunk.js.map +1 -0
  312. package/dist/scripts/{54-4950ec1d52.chunk.js → 53-3cf5cd5f69.chunk.js} +1 -1
  313. package/dist/scripts/53.chunk.js +98 -1
  314. package/dist/scripts/53.chunk.js.map +1 -0
  315. package/dist/scripts/{55-accb81090d.chunk.js → 54-26807e3e49.chunk.js} +1 -1
  316. package/dist/scripts/54.chunk.js +48 -1
  317. package/dist/scripts/54.chunk.js.map +1 -0
  318. package/dist/scripts/55-d38be4860b.chunk.js +1 -0
  319. package/dist/scripts/55.chunk.js +99 -1
  320. package/dist/scripts/55.chunk.js.map +1 -0
  321. package/dist/scripts/56-d4abc25ec3.chunk.js +1 -0
  322. package/dist/scripts/56.chunk.js +64 -1
  323. package/dist/scripts/56.chunk.js.map +1 -0
  324. package/dist/scripts/57.chunk.js +72 -0
  325. package/dist/scripts/57.chunk.js.map +1 -0
  326. package/dist/scripts/58.chunk.js +73 -0
  327. package/dist/scripts/58.chunk.js.map +1 -0
  328. package/dist/scripts/59.chunk.js +70 -0
  329. package/dist/scripts/59.chunk.js.map +1 -0
  330. package/dist/scripts/6-4d72a3c3fc.chunk.js +1 -0
  331. package/dist/scripts/6.chunk.js +24 -1
  332. package/dist/scripts/6.chunk.js.map +1 -0
  333. package/dist/scripts/60.chunk.js +32 -0
  334. package/dist/scripts/60.chunk.js.map +1 -0
  335. package/dist/scripts/61.chunk.js +29 -0
  336. package/dist/scripts/61.chunk.js.map +1 -0
  337. package/dist/scripts/62.chunk.js +27 -0
  338. package/dist/scripts/62.chunk.js.map +1 -0
  339. package/dist/scripts/63.chunk.js +67 -0
  340. package/dist/scripts/63.chunk.js.map +1 -0
  341. package/dist/scripts/64.chunk.js +80 -0
  342. package/dist/scripts/64.chunk.js.map +1 -0
  343. package/dist/scripts/65.chunk.js +65 -0
  344. package/dist/scripts/65.chunk.js.map +1 -0
  345. package/dist/scripts/66.chunk.js +67 -0
  346. package/dist/scripts/66.chunk.js.map +1 -0
  347. package/dist/scripts/67.chunk.js +104 -0
  348. package/dist/scripts/67.chunk.js.map +1 -0
  349. package/dist/scripts/68.chunk.js +69 -0
  350. package/dist/scripts/68.chunk.js.map +1 -0
  351. package/dist/scripts/69.chunk.js +89 -0
  352. package/dist/scripts/69.chunk.js.map +1 -0
  353. package/dist/scripts/7-90ad392b55.chunk.js +1 -0
  354. package/dist/scripts/7.chunk.js +327 -1
  355. package/dist/scripts/7.chunk.js.map +1 -0
  356. package/dist/scripts/70.chunk.js +36 -0
  357. package/dist/scripts/70.chunk.js.map +1 -0
  358. package/dist/scripts/8.chunk.js +470 -0
  359. package/dist/scripts/8.chunk.js.map +1 -0
  360. package/dist/scripts/9-52877087ef.chunk.js +1 -0
  361. package/dist/scripts/9.chunk.js +471 -7
  362. package/dist/scripts/9.chunk.js.map +1 -0
  363. package/dist/scripts/bundle-99976c17a2.min.js +1 -0
  364. package/dist/scripts/bundle-9f5ad50596.min.js +1 -0
  365. package/dist/scripts/bundle.js +34769 -1
  366. package/dist/scripts/bundle.js.map +1 -0
  367. package/dist/scripts/bundles.json +1 -1
  368. package/package.json +50 -49
  369. package/typings/libs/Trackers.d.ts +10 -0
  370. package/dist/css/33.chunk.css +0 -4
  371. package/dist/css/41.chunk.css +0 -4
  372. package/dist/css/46.chunk.css +0 -2
  373. package/dist/libs/shared/src/context/SearchAppContext.d.ts +0 -9
  374. package/dist/scripts/0-7ab5925809.chunk.js +0 -1
  375. package/dist/scripts/1-08c7a79a47.chunk.js +0 -1
  376. package/dist/scripts/10-20d3430ce2.chunk.js +0 -1
  377. package/dist/scripts/11-7a25650335.chunk.js +0 -1
  378. package/dist/scripts/12-6609af3add.chunk.js +0 -1
  379. package/dist/scripts/13-5adebd80b3.chunk.js +0 -1
  380. package/dist/scripts/14-dbd27fa3a5.chunk.js +0 -1
  381. package/dist/scripts/15-5a0e1ed526.chunk.js +0 -1
  382. package/dist/scripts/16-3adc733311.chunk.js +0 -1
  383. package/dist/scripts/17-a942a8ff32.chunk.js +0 -1
  384. package/dist/scripts/18-ab78fe1ad4.chunk.js +0 -1
  385. package/dist/scripts/19-04ba4906ea.chunk.js +0 -1
  386. package/dist/scripts/2-41fe2d7e77.chunk.js +0 -1
  387. package/dist/scripts/20-f0dcfc47a9.chunk.js +0 -1
  388. package/dist/scripts/21-33e50c0d6b.chunk.js +0 -1
  389. package/dist/scripts/22-d85dfba692.chunk.js +0 -1
  390. package/dist/scripts/23-90201310df.chunk.js +0 -1
  391. package/dist/scripts/24-bc8f0f5709.chunk.js +0 -1
  392. package/dist/scripts/25-317106a5da.chunk.js +0 -1
  393. package/dist/scripts/26-4a3372406a.chunk.js +0 -1
  394. package/dist/scripts/27-074f7ed617.chunk.js +0 -1
  395. package/dist/scripts/28-3f552efb1d.chunk.js +0 -1
  396. package/dist/scripts/29-3b0fed6546.chunk.js +0 -1
  397. package/dist/scripts/3-4c7cdc97d7.chunk.js +0 -7
  398. package/dist/scripts/30-efc1720b45.chunk.js +0 -1
  399. package/dist/scripts/31-fd10b2d2e3.chunk.js +0 -1
  400. package/dist/scripts/32-77df1d4c39.chunk.js +0 -1
  401. package/dist/scripts/33-7c092bbe19.chunk.js +0 -1
  402. package/dist/scripts/34-3c94a6fffe.chunk.js +0 -1
  403. package/dist/scripts/37-ecd001861c.chunk.js +0 -1
  404. package/dist/scripts/38-a42dc5fd6c.chunk.js +0 -1
  405. package/dist/scripts/4-9b843edce7.chunk.js +0 -1
  406. package/dist/scripts/43-9b84379d80.chunk.js +0 -1
  407. package/dist/scripts/44-1bedb97d4b.chunk.js +0 -1
  408. package/dist/scripts/45-b004111b2b.chunk.js +0 -1
  409. package/dist/scripts/47-cece788594.chunk.js +0 -1
  410. package/dist/scripts/48-722f37b837.chunk.js +0 -1
  411. package/dist/scripts/49-cb04b28057.chunk.js +0 -1
  412. package/dist/scripts/5-841e3d083b.chunk.js +0 -1
  413. package/dist/scripts/51-ed260ddadd.chunk.js +0 -1
  414. package/dist/scripts/56-83e51af2a6.chunk.js +0 -1
  415. package/dist/scripts/6-c429467dba.chunk.js +0 -1
  416. package/dist/scripts/7-3c52b41cbf.chunk.js +0 -1
  417. package/dist/scripts/9-fef5ef0698.chunk.js +0 -1
  418. package/dist/scripts/bundle-7782a79aa5.min.js +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/widgets/fixed-widget/FixedWidget.tsx","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/widgets/fixed-widget/FixedWidgetReducer.tsx","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/widgets/fixed-widget/FixedWidgetUtils.ts","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/widgets/fixed-widget/PartialFixedWidget.tsx","webpack://@clickview/lite/C:/ClickView Projects/@clickview/packages/libs/shared/src/components/widgets/fixed-widget/fixed-widget.scss?5b34","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/widgets/sliding-list/SlidingListContainer.tsx","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/widgets/widget-button/WidgetButton.tsx","webpack://@clickview/lite/C:/ClickView Projects/@clickview/packages/libs/shared/src/components/widgets/widget-button/widget-button.scss?ef43","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/enums/CssMeasurement.ts","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/enums/WidgetContents.ts","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/enums/WidgetInteraction.ts","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/hooks/UseGetMediaQueryString.ts","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/hooks/UseHover.ts","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/hooks/UseLazyLoad.ts","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/utils/DragHelper.ts"],"names":[],"mappings":"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","file":"scripts/4.chunk.js","sourcesContent":["import * as React from 'react';\r\n\r\nimport { Core } from 'libs/common/core';\r\nimport { Flight } from 'libs/common/flight';\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\r\n\r\nimport { CssMeasurement } from 'libs/shared/enums/CssMeasurement';\r\nimport { WidgetButton, WidgetButtonDirection } from 'libs/shared/components/widgets/widget-button/WidgetButton';\r\nimport { SlidingListContainer } from 'libs/shared/components/widgets/sliding-list/SlidingListContainer';\r\nimport { useGetMediaQueryString } from 'libs/shared/hooks/UseGetMediaQueryString';\r\nimport { useHover } from 'libs/shared/hooks/UseHover';\r\nimport { WidgetType, WidgetContext } from 'libs/shared/interfaces';\r\nimport { WidgetInteraction } from 'libs/shared/enums/WidgetInteraction';\r\nimport { WidgetContents } from 'libs/shared/enums/WidgetContents';\r\nimport { useLazyLoad } from 'libs/shared/hooks/UseLazyLoad';\r\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\r\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\r\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\r\nimport { ThumbnailSize } from 'libs/shared/enums/ThumbnailSize';\r\n\r\nimport { PartialFixedWidget } from './PartialFixedWidget';\r\nimport { useFetchData, formatData, getCollectionAppLink, getShouldPreload, getOnTouchStart, getOnTouchEnd } from './FixedWidgetUtils';\r\nimport { FixedWidgetReducer, initialWidgetState, lazyWidgetInit } from './FixedWidgetReducer';\r\n\r\nimport styles from './fixed-widget.scss';\r\n\r\nconst namespace = 'shared.fixedWidget';\r\n\r\nexport interface FixedWidgetProps {\r\n id?: string;\r\n name?: string;\r\n description?: string;\r\n\r\n type: WidgetType;\r\n contents: WidgetContents;\r\n\r\n collection?: any;\r\n lazyLoad?: boolean;\r\n fetch?: (...args: any) => Flight.Response<any>;\r\n prefetched?: boolean;\r\n setData?: (data: any) => any;\r\n\r\n childComponent: React.ElementType;\r\n childAppLink: Core.AppLink;\r\n appLink?: Core.AppLink;\r\n settingsAppLink?: Core.AppLink;\r\n}\r\n\r\nFixedWidget.defaultProps = {\r\n type: WidgetType.Row\r\n};\r\n\r\nfunction FixedWidget(props: FixedWidgetProps): JSX.Element {\r\n const [ initialTouchX, setInitialTouchX ] = React.useState(null);\r\n const [ containerWidth, setContainerWidth ] = React.useState(null);\r\n const [ percentageDragged, setPercentageDragged ] = React.useState(0);\r\n\r\n const [ state, dispatch ] = React.useReducer(FixedWidgetReducer, initialWidgetState, lazyWidgetInit);\r\n\r\n const containerRef = React.useRef(null);\r\n const [ buttonsRef, isHovering ] = useHover<HTMLDivElement>();\r\n\r\n const [ isHoveringOnFarLeft, setIsHoveringOnFarLeft ] = React.useState(false);\r\n const [ isHoveringOnFarRight, setIsHoveringOnFarRight ] = React.useState(false);\r\n\r\n const { ref, inView } = useLazyLoad(props.lazyLoad);\r\n const mediaQuery = useGetMediaQueryString();\r\n\r\n React.useEffect(() => {\r\n dispatch({\r\n type: WidgetInteraction.Resize,\r\n payload: {\r\n mediaQuery,\r\n type: props.type,\r\n contents: props.contents,\r\n collection: state.collection\r\n }\r\n });\r\n }, [mediaQuery]);\r\n\r\n const response = useFetchData(props, dispatch, state, mediaQuery, !props.lazyLoad || inView);\r\n\r\n function onSetIsHovering(hovering: boolean, index: number): void {\r\n // This callback will hide the far left button if the user is hovering on the far left widget item.\r\n // Same goes for the far right button & widget item.\r\n if ((index + 1) / state.viewableItems % 1 === 0) {\r\n setIsHoveringOnFarRight(hovering);\r\n } else if (index / state.viewableItems % 1 === 0) {\r\n setIsHoveringOnFarLeft(hovering);\r\n }\r\n }\r\n\r\n const widgetContext: WidgetContext = {\r\n type: state.type,\r\n size: state.currentSize,\r\n collectionSize: state.collection.length,\r\n contents: props.contents\r\n };\r\n\r\n const data = formatData(props, response?.data || props.collection);\r\n\r\n if (response?.hasError)\r\n return <></>;\r\n\r\n if (!data || ObjectHelper.isEmpty(data) && !props.prefetched) {\r\n return (\r\n <div ref={ref}>\r\n <PartialFixedWidget type={props.type} />\r\n </div>\r\n );\r\n }\r\n\r\n if (!state.collection.length)\r\n return <></>;\r\n\r\n const WidgetItemComponent = props.childComponent;\r\n\r\n return (\r\n <div className='pb-3'>\r\n\r\n <div className='mb-1'>\r\n <AppLink appLink={getCollectionAppLink(props.appLink, data)}>\r\n <h2 className='h4 mb-0 d-inline-block align-top pl-1 text-dark'>\r\n {data.name}\r\n {!!props.appLink && (\r\n <SvgContainer svgName={cvSvgLibrary.ChevronRight} size={SvgContainerSize.Small} />\r\n )}\r\n </h2>\r\n {props.settingsAppLink &&\r\n <AppLink appLink={props.settingsAppLink}>\r\n <SvgContainer\r\n svgName={cvSvgLibrary.Cog}\r\n className='d-inline-block svg-container cursor-pointer'\r\n title={LanguageService.getPhrase(namespace, 'preferencesTooltip')}\r\n tooltipPlacement='right'\r\n />\r\n </AppLink>\r\n }\r\n </AppLink>\r\n\r\n {data.description &&\r\n <p className='text-truncate pl-1 mb-0 description'>{data.description}</p>\r\n }\r\n </div>\r\n\r\n <div ref={buttonsRef} className='position-relative'>\r\n {!isHoveringOnFarLeft && <div className={styles.leftOverflowGradient} />}\r\n <WidgetButton\r\n direction={WidgetButtonDirection.Left}\r\n onClick={() => dispatch({ type: WidgetInteraction.Previous })}\r\n hide={isHoveringOnFarLeft || (\r\n state.offset <= state.collection.length && !(isHovering && state.offset !== state.viewableItems)\r\n )}\r\n contents={props.contents}\r\n />\r\n\r\n <SlidingListContainer\r\n position={state.position}\r\n positionType={CssMeasurement.Percentage}\r\n onTouchMove={getOnTouchStart(\r\n state,\r\n containerRef,\r\n containerWidth,\r\n setContainerWidth,\r\n initialTouchX,\r\n setInitialTouchX,\r\n setPercentageDragged\r\n )}\r\n onTouchEnd={getOnTouchEnd(\r\n containerRef,\r\n setInitialTouchX,\r\n percentageDragged,\r\n setPercentageDragged,\r\n dispatch\r\n )}\r\n ref={containerRef}\r\n percentageDragged={percentageDragged}\r\n >\r\n {state.collection.map((widgetItem, index) => {\r\n return (\r\n <WidgetItemComponent\r\n key={widgetItem.id}\r\n data={widgetItem}\r\n appLink={props.childAppLink}\r\n context={widgetContext}\r\n preloadImage={getShouldPreload(state)(widgetItem)}\r\n thumbnailSize={ThumbnailSize.Medium}\r\n onHover={(hovering: boolean) => {\r\n /**\r\n * For some reason this needs to be called after a set timeout, otherwise\r\n * the `useHover` listener on the `buttonsRef` element will not detect it's hover\r\n * event. - Josh\r\n */\r\n window.setTimeout(() => {\r\n onSetIsHovering(hovering, index);\r\n }, 0);\r\n }}\r\n />\r\n );\r\n })}\r\n </SlidingListContainer>\r\n\r\n <WidgetButton\r\n direction={WidgetButtonDirection.Right}\r\n onClick={() => dispatch({ type: WidgetInteraction.Next })}\r\n hide={\r\n isHoveringOnFarRight || (\r\n (state.offset > state.viewableItems || state.offset === state.collection.length) &&\r\n !(isHovering && state.offset < state.collection.length)\r\n )\r\n }\r\n contents={props.contents}\r\n />\r\n {!isHoveringOnFarRight && <div className={styles.rightOverflowGradient} />}\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nconst Memoized = React.memo(FixedWidget);\r\n\r\nexport { Memoized as FixedWidget };","import { ReducerActions } from 'libs/common/react/interfaces';\r\n\r\nimport { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\r\nimport { WidgetContents } from 'libs/shared/enums/WidgetContents';\r\nimport { WidgetInteraction } from 'libs/shared/enums/WidgetInteraction';\r\nimport { WidgetType } from 'libs/shared/interfaces';\r\n\r\nimport { getComputeFunction } from './FixedWidgetUtils';\r\n\r\nexport interface FixedWidgetPayload {\r\n mediaQuery?: MediaQueryStrings;\r\n contents?: WidgetContents;\r\n type?: WidgetType;\r\n collection?: any[];\r\n}\r\n\r\nexport interface FixedWidgetState {\r\n // Current position within the widget collection\r\n offset: number;\r\n // Number of items viewable in slider for the current breakpoint/viewport size\r\n viewableItems: number;\r\n // Relative position of slider in the window. Used for an inline translate3d().\r\n position: number;\r\n // Collection of widget items\r\n collection: any[];\r\n // String representation of the current media query\r\n currentSize: MediaQueryStrings;\r\n // Type of widget being managed. May change on `Resize`.\r\n type: WidgetType;\r\n}\r\n\r\nexport const initialWidgetState: FixedWidgetState = {\r\n offset: 0,\r\n viewableItems: 4,\r\n position: 0,\r\n collection: [],\r\n currentSize: MediaQueryStrings.LG,\r\n type: WidgetType.Row\r\n};\r\n\r\nconst computeNextPosition = (prevState: FixedWidgetState): object => {\r\n const { collection, viewableItems, offset, position } = prevState;\r\n\r\n const remainingCount = collection.length - offset;\r\n\r\n /**\r\n * If the remaining items are evening divisible by the items in view, or,\r\n * we have more items that can be displayed in the view, move the slider a full 100%.\r\n */\r\n if (remainingCount % viewableItems === 0 || remainingCount > viewableItems)\r\n return {\r\n position: position - 100,\r\n offset: offset + viewableItems\r\n };\r\n\r\n /**\r\n * Where there are less items than we can show in a full slide, \r\n * calculate the % movement required to only show those items.\r\n */\r\n if (remainingCount < viewableItems)\r\n return {\r\n position: position - (remainingCount / viewableItems * 100),\r\n offset: offset + remainingCount\r\n };\r\n\r\n /**\r\n * Default back to the current state as a fallback\r\n */\r\n return {\r\n position: position,\r\n offset: offset\r\n };\r\n};\r\n\r\nconst computePreviousPosition = (prevState: FixedWidgetState): object => {\r\n const { viewableItems, offset, position } = prevState;\r\n\r\n const remainingCount = offset - viewableItems;\r\n\r\n if (remainingCount % viewableItems === 0 || remainingCount > viewableItems)\r\n return {\r\n position: position + 100,\r\n offset: offset - viewableItems\r\n };\r\n\r\n if (remainingCount < viewableItems)\r\n return {\r\n position: position + (remainingCount / viewableItems * 100),\r\n offset: offset - remainingCount\r\n };\r\n\r\n return {\r\n position: position,\r\n offset: offset\r\n };\r\n};\r\n\r\nexport function FixedWidgetReducer(\r\n prevState: FixedWidgetState,\r\n action: ReducerActions<WidgetInteraction, FixedWidgetPayload>\r\n): FixedWidgetState {\r\n const { type, payload = {} } = action;\r\n\r\n switch (type) {\r\n case WidgetInteraction.Next: {\r\n return {\r\n ...prevState,\r\n ...computeNextPosition(prevState)\r\n };\r\n }\r\n\r\n case WidgetInteraction.Previous: {\r\n return {\r\n ...prevState,\r\n ...computePreviousPosition(prevState)\r\n };\r\n }\r\n\r\n case WidgetInteraction.Resize: {\r\n const computeViewableItems = getComputeFunction(payload.contents);\r\n const initialSeen = computeViewableItems(payload.mediaQuery, payload.type, payload.collection?.length);\r\n\r\n return {\r\n ...prevState,\r\n currentSize: payload.mediaQuery,\r\n position: 0,\r\n offset: initialSeen,\r\n viewableItems: initialSeen,\r\n type: payload.type\r\n };\r\n }\r\n\r\n case WidgetInteraction.Init: {\r\n const computeViewableItems = getComputeFunction(payload.contents);\r\n const initialSeen = computeViewableItems(payload.mediaQuery, payload.type, payload.collection?.length);\r\n\r\n return lazyWidgetInit({\r\n ...prevState,\r\n collection: payload.collection,\r\n currentSize: payload.mediaQuery,\r\n offset: initialSeen,\r\n viewableItems: initialSeen,\r\n type: payload.type\r\n });\r\n }\r\n\r\n default:\r\n return prevState;\r\n }\r\n}\r\n\r\nexport function lazyWidgetInit(newState: FixedWidgetState): FixedWidgetState {\r\n return { ...initialWidgetState, ...newState };\r\n}","import * as React from 'react';\r\n\r\nimport { Flight } from 'libs/common/flight';\r\nimport { Core } from 'libs/common/core';\r\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\r\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\r\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\r\nimport { ReducerActions } from 'libs/common/react/interfaces';\r\n\r\nimport { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\r\nimport { WidgetInteraction } from 'libs/shared/enums/WidgetInteraction';\r\nimport { WidgetContents } from 'libs/shared/enums/WidgetContents';\r\nimport { BaseObject, WidgetType } from 'libs/shared/interfaces';\r\n\r\nimport { FixedWidgetProps } from './FixedWidget';\r\nimport { FixedWidgetState, FixedWidgetPayload } from './FixedWidgetReducer';\r\n\r\nexport interface WidgetData {\r\n id?: string;\r\n name?: string;\r\n description?: string;\r\n}\r\n\r\nexport function useFetchData(\r\n props: FixedWidgetProps,\r\n dispatch: Function,\r\n state: FixedWidgetState,\r\n mediaQueryType: MediaQueryStrings,\r\n shouldFetch: boolean\r\n): Flight.Response<any> {\r\n const { fetch, setData, type, collection: items, prefetched, contents } = props;\r\n\r\n let data = items;\r\n let res: Flight.Response<any>;\r\n\r\n if (!data || ObjectHelper.isEmpty(data) && !prefetched) {\r\n res = fetch(shouldFetch);\r\n data = res.data;\r\n }\r\n\r\n /**\r\n * Once we have the widget data, lazily update our state with the new collection\r\n */\r\n React.useEffect(() => {\r\n if (!data || ObjectHelper.isEmpty(data))\r\n return;\r\n\r\n dispatch({\r\n type: WidgetInteraction.Init,\r\n payload: {\r\n collection: FunctionHelper.isFunction(setData) ? setData(data) : data,\r\n mediaQuery: mediaQueryType,\r\n type,\r\n contents\r\n }\r\n });\r\n\r\n }, [data]);\r\n\r\n return res;\r\n}\r\n\r\n/**\r\n * This function wrapper determines which widget item images should be pre-fetched by the LazyImage component.\r\n * It does this by looking at which images are going to be shown after the users clicks on the \"Next\"\r\n * widget button.\r\n */\r\nexport function getShouldPreload(state: FixedWidgetState): (widgetItem: any) => boolean {\r\n const { offset, viewableItems, collection } = state;\r\n\r\n // The index of the latest item that has been fetched\r\n const maxLoadedIndex = offset;\r\n\r\n /**\r\n * The indicesToPreload is an array of indices of widget items that should be prefetched by the\r\n * LazyImage component\r\n */\r\n const indicesToPreload: number[] = [];\r\n for (let i = 0; i < maxLoadedIndex + viewableItems; i++) {\r\n indicesToPreload.push(i);\r\n }\r\n\r\n /**\r\n * A widget item calls this function to determine whether or not its image can be pre-fetched.\r\n * This is determined by whether or not its index has been deemed valid to be pre-fetched\r\n * by the scope above\r\n */\r\n return function shouldPreload(widgetItem: any): boolean {\r\n const index = collection.indexOf(widgetItem);\r\n\r\n return indicesToPreload.includes(index);\r\n };\r\n}\r\n\r\nexport function getCollectionAppLink(appLink: Core.AppLink, data: WidgetData): Core.AppLink {\r\n if (!appLink)\r\n return;\r\n\r\n return {\r\n ...appLink,\r\n args: appLink.args || [ data.id, TextHelper.slugify(data.name) ]\r\n };\r\n}\r\n\r\n/**\r\n * Allow explicit name and description props to override the fetched\r\n * data properties.\r\n * \r\n * @param props \r\n * @param data \r\n */\r\nexport function formatData(props: FixedWidgetProps, data: BaseObject): WidgetData {\r\n const { name, description } = props;\r\n\r\n const overrideProps: WidgetData = {};\r\n\r\n if (Array.isArray(data))\r\n return { name, description };\r\n\r\n if (props.name) overrideProps.name = name;\r\n if (props.description) overrideProps.description = description;\r\n\r\n return { ...data, ...overrideProps };\r\n}\r\n\r\n/**\r\n * The functions below are used by the reducer to compute the number of widget items\r\n * displayed on the screen based on the media query, widget type, and total number of items.\r\n */\r\ntype ComputeFunction = (mediaQuery: MediaQueryStrings, type: WidgetType, itemCount: number) => number;\r\n\r\nexport function getComputeFunction(contents: WidgetContents): ComputeFunction {\r\n switch (contents) {\r\n case WidgetContents.Playlists:\r\n return computeViewablePlaylists;\r\n\r\n case WidgetContents.Videos:\r\n return computeViewableVideos;\r\n\r\n case WidgetContents.Subjects:\r\n return computeViewableSubjects;\r\n\r\n case WidgetContents.UserChannels:\r\n return computeViewableUserChannels;\r\n\r\n case WidgetContents.Series:\r\n default:\r\n return computeViewableSeries;\r\n }\r\n}\r\n\r\nfunction computeViewablePlaylists(mediaQuery: MediaQueryStrings, type: WidgetType, itemCount: number): number {\r\n let maxItems: number = 5;\r\n\r\n if (mediaQuery === MediaQueryStrings.XS)\r\n maxItems = 2;\r\n else if (mediaQuery === MediaQueryStrings.SM)\r\n maxItems = 3;\r\n else if (mediaQuery === MediaQueryStrings.MD)\r\n maxItems = 4;\r\n\r\n if (itemCount < maxItems)\r\n maxItems = itemCount;\r\n\r\n return maxItems;\r\n}\r\n\r\nfunction computeViewableVideos(mediaQuery: MediaQueryStrings, type: WidgetType, itemCount: number): number {\r\n let maxItems: number = 4;\r\n\r\n if (mediaQuery === MediaQueryStrings.XS)\r\n maxItems = 2;\r\n else if (mediaQuery === MediaQueryStrings.SM)\r\n maxItems = 3;\r\n else if (mediaQuery === MediaQueryStrings.MD)\r\n maxItems = 4;\r\n else if (\r\n mediaQuery === MediaQueryStrings.LG\r\n || mediaQuery === MediaQueryStrings.XL\r\n || mediaQuery === MediaQueryStrings.XXL\r\n ) {\r\n if (type === WidgetType.LargeRow)\r\n maxItems = 3;\r\n\r\n else if (itemCount < 4)\r\n maxItems = 3;\r\n\r\n else\r\n maxItems = 4;\r\n }\r\n\r\n if (itemCount < maxItems)\r\n maxItems = itemCount;\r\n\r\n return maxItems;\r\n}\r\n\r\nfunction computeViewableSubjects(mediaQuery: MediaQueryStrings, type: WidgetType, itemCount: number): number {\r\n let maxItems: number = 6;\r\n\r\n if (mediaQuery === MediaQueryStrings.SM || mediaQuery === MediaQueryStrings.XS)\r\n maxItems = 3;\r\n else if (mediaQuery === MediaQueryStrings.MD)\r\n maxItems = 4;\r\n else if (mediaQuery === MediaQueryStrings.LG)\r\n maxItems = 5;\r\n else if (mediaQuery === MediaQueryStrings.XL || mediaQuery === MediaQueryStrings.XXL)\r\n maxItems = 6;\r\n\r\n if (itemCount < maxItems)\r\n maxItems = itemCount;\r\n\r\n return maxItems;\r\n}\r\n\r\nfunction computeViewableUserChannels(mediaQuery: MediaQueryStrings, type: WidgetType, itemCount: number): number {\r\n let maxItems: number = 6;\r\n\r\n if (mediaQuery === MediaQueryStrings.SM || mediaQuery === MediaQueryStrings.XS)\r\n maxItems = 3;\r\n else if (mediaQuery === MediaQueryStrings.MD)\r\n maxItems = 4;\r\n else if (mediaQuery === MediaQueryStrings.LG)\r\n maxItems = 5;\r\n else if (mediaQuery === MediaQueryStrings.XL || mediaQuery === MediaQueryStrings.XXL)\r\n maxItems = 6;\r\n\r\n if (itemCount < maxItems)\r\n maxItems = itemCount;\r\n\r\n return maxItems;\r\n}\r\n\r\nfunction computeViewableSeries(mediaQuery: MediaQueryStrings, type: WidgetType, itemCount: number): number {\r\n let maxItems: number = 4;\r\n\r\n if (mediaQuery === MediaQueryStrings.XS)\r\n maxItems = 2;\r\n else if (mediaQuery === MediaQueryStrings.SM)\r\n maxItems = 3;\r\n\r\n if (itemCount < maxItems)\r\n maxItems = itemCount;\r\n\r\n return maxItems;\r\n}\r\n\r\n/**\r\n * Touch event handlers\r\n */\r\nexport function getOnTouchStart(\r\n widgetState: FixedWidgetState,\r\n containerRef: React.MutableRefObject<HTMLDivElement>,\r\n containerWidth: number,\r\n setContainerWidth: React.Dispatch<number>,\r\n initialTouchX: number,\r\n setInitialTouchX: React.Dispatch<number>,\r\n setPercentageDragged: React.Dispatch<number>\r\n): (event: React.TouchEvent<HTMLDivElement>) => void {\r\n return function(event: React.TouchEvent<HTMLDivElement>): void {\r\n const firstTouch = event.touches.item(0);\r\n const touchX = firstTouch.clientX;\r\n\r\n /**\r\n * Runs only on the very first touch event.\r\n * \r\n * Sets the initial x-coordinate as a reference point to calculate how far the user has dragged before\r\n * they release their finder\r\n */\r\n if (!initialTouchX) {\r\n containerRef.current.style.transition = '';\r\n\r\n setContainerWidth(containerRef.current.getBoundingClientRect().width);\r\n setInitialTouchX(touchX);\r\n }\r\n\r\n const pixelsDragged = initialTouchX - touchX;\r\n\r\n // Calculate how far the user has moved their finger as a percentage of the widget's container element\r\n let currentPercentageDragged = ((pixelsDragged / containerWidth) * 100);\r\n\r\n /**\r\n * These 2 if statements prevent the user from dragging the widget beyond its limits.\r\n * One if statement handles if they have dragged to the left, and the other is for dragging to the right.\r\n * \r\n * The same logic is used to hide the widget buttons (see the `hide` prop passed to `<WidgetButton />`)\r\n */\r\n if (currentPercentageDragged < 0 && (widgetState.offset === widgetState.viewableItems))\r\n currentPercentageDragged = 0;\r\n\r\n else if (currentPercentageDragged > 0 && (widgetState.offset === widgetState.collection.length))\r\n currentPercentageDragged = 0;\r\n\r\n setPercentageDragged(currentPercentageDragged);\r\n };\r\n}\r\n\r\nconst DRAG_TOLERANCE = 7.5; // % of container width using to trigger a transition.\r\n\r\nexport function getOnTouchEnd(\r\n containerRef: React.MutableRefObject<HTMLDivElement>,\r\n setInitialTouchX: React.Dispatch<number>,\r\n percentageDragged: number,\r\n setPercentageDragged: React.Dispatch<number>,\r\n dispatch: React.Dispatch<ReducerActions<WidgetInteraction, FixedWidgetPayload>>\r\n): () => void {\r\n return function(): void {\r\n containerRef.current.style.transition = 'transform 500ms ease-in-out 100ms';\r\n setInitialTouchX(null);\r\n\r\n /**\r\n * Only trigger a Next/Previous widget event if the user has dragged beyond DRAG_TOLERANCE% either way of the\r\n * container's width. This means if the user only drags left/right a tiny little bit, the widget\r\n * will simply slide back into its original place.\r\n */\r\n if (Math.abs(percentageDragged) >= DRAG_TOLERANCE) {\r\n const reducerAction = percentageDragged > 0 ? WidgetInteraction.Next : WidgetInteraction.Previous;\r\n\r\n dispatch({\r\n type: reducerAction\r\n });\r\n }\r\n\r\n setPercentageDragged(0);\r\n };\r\n}","import * as React from 'react';\r\n\r\nimport { HashObject } from 'libs/common/react/interfaces/HashObject';\r\n\r\nimport { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\r\nimport { WidgetType } from 'libs/shared/interfaces';\r\nimport { useGetMediaQueryString } from 'libs/shared/hooks/UseGetMediaQueryString';\r\n\r\nimport styles from './fixed-widget.scss';\r\n\r\nfunction useMediaQueryListeners(): HashObject {\r\n const mediaQuery = useGetMediaQueryString();\r\n\r\n if (mediaQuery === MediaQueryStrings.XS)\r\n return {\r\n itemCount: 1,\r\n colSize: 12\r\n };\r\n\r\n if (mediaQuery === MediaQueryStrings.SM)\r\n return {\r\n itemCount: 2,\r\n colSize: 6\r\n };\r\n\r\n if (mediaQuery === MediaQueryStrings.MD)\r\n return {\r\n itemCount: 3,\r\n colSize: 4\r\n };\r\n\r\n return {\r\n itemCount: 4,\r\n colSize: 3\r\n };\r\n}\r\n\r\nconst PartialLoadingItem = ({ colSize }: HashObject) => (\r\n <div className={`col-${colSize}`}>\r\n <div className={`${styles.partialItem} mx-1 partial-loading-background`} />\r\n </div>\r\n);\r\n\r\ninterface PartialFixedWidgetProps {\r\n type: WidgetType;\r\n}\r\n\r\nexport function PartialFixedWidget(props: PartialFixedWidgetProps): JSX.Element {\r\n const { itemCount, colSize } = useMediaQueryListeners();\r\n\r\n let items = [];\r\n for (let i = 0; i < itemCount; i++) {\r\n items.push(<PartialLoadingItem key={i} colSize={colSize} />);\r\n }\r\n\r\n return (\r\n <div className='widget pb-3'>\r\n <div className={`${styles.partialHeading} mx-1 mb-1 partial-loading-background`}></div>\r\n <div className={`${styles.partialDescription} mx-1 my-1 partial-loading-background`}></div>\r\n <div className={`${styles.slidingContainer} row`}>\r\n {items}\r\n </div>\r\n </div>\r\n );\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"leftOverflowGradient\":\"cv--leftOverflowGradient--u_MPi\",\"rightOverflowGradient\":\"cv--rightOverflowGradient--38ooL\",\"partialHeading\":\"cv--partialHeading--OVsdA\",\"partialDescription\":\"cv--partialDescription--1HtA2\",\"partialItem\":\"cv--partialItem--3G2hG\",\"largePartialItem\":\"cv--largePartialItem--NnK8O\"};","import * as React from 'react';\r\nimport { HashObject } from 'libs/common/react/interfaces/HashObject';\r\nimport { UserAgentHelper } from 'libs/common/backbone/utils/UserAgentHelper';\r\n\r\nimport { CssMeasurement } from 'libs/shared/enums/CssMeasurement';\r\nimport { DragHelper } from 'libs/shared/utils/DragHelper';\r\n\r\nconst isTouchScreen = UserAgentHelper.isTouchScreen();\r\n\r\nfunction getPositionStyling(xPosition: number, measurement: CssMeasurement, dragPercentage?: number): object {\r\n // Used in situations where a touch screen user is dragging the `<FixedWidget />`\r\n if (measurement === CssMeasurement.Percentage && dragPercentage)\r\n xPosition = xPosition - dragPercentage;\r\n\r\n return {\r\n transform: `translate3d(${xPosition}${measurement}, 0px, 0px)`,\r\n transition: 'transform 500ms ease-in-out 100ms'\r\n };\r\n}\r\n\r\ninterface SlidingListContainerProps extends React.PropsWithChildren<{}> {\r\n position: number;\r\n positionType: CssMeasurement;\r\n\r\n onDrag?: (event: React.DragEvent<HTMLDivElement>) => void;\r\n onDragEnd?: () => void;\r\n\r\n onTouchMove?: (event: React.TouchEvent<HTMLDivElement>) => void;\r\n onTouchEnd?: () => void;\r\n\r\n percentageDragged?: number;\r\n}\r\n\r\nexport const SlidingListContainer = React.forwardRef((\r\n props: SlidingListContainerProps,\r\n ref: React.MutableRefObject<HTMLDivElement>\r\n): JSX.Element => {\r\n const { children, positionType, onDrag, onDragEnd, onTouchMove, onTouchEnd, percentageDragged, position = 0 } = props;\r\n\r\n function getEventListeners(): HashObject {\r\n const listenerProps: HashObject = {};\r\n\r\n if (onDrag && onDragEnd) {\r\n listenerProps.draggable = true;\r\n listenerProps.onDrag = onDrag;\r\n listenerProps.onDragEnd = onDragEnd;\r\n listenerProps.onDragStart = DragHelper.hideDragImage;\r\n listenerProps.onDragOver = (e: React.DragEvent<HTMLDivElement>) => e.preventDefault();\r\n }\r\n\r\n if (onTouchMove && onTouchEnd && isTouchScreen) {\r\n listenerProps.onTouchMoveCapture = onTouchMove;\r\n listenerProps.onTouchEndCapture = onTouchEnd;\r\n }\r\n\r\n return listenerProps;\r\n }\r\n\r\n return (\r\n <div\r\n className='d-flex flex-nowrap position-relative w-100'\r\n style={getPositionStyling(position, positionType, percentageDragged)}\r\n ref={ref}\r\n {...getEventListeners()}\r\n >\r\n {children}\r\n </div>\r\n );\r\n});","import * as React from 'react';\r\n\r\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\r\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\r\nimport { WidgetContents } from 'libs/shared/enums/WidgetContents';\r\n\r\nimport styles from './widget-button.scss';\r\n\r\nexport enum WidgetButtonDirection {\r\n Left,\r\n Right\r\n}\r\n\r\nfunction getPositionClass(contents: WidgetContents, isLeftDirection: boolean): string {\r\n let className = styles.topPos;\r\n\r\n // Left / Right\r\n if (isLeftDirection)\r\n className += ' ' + styles.left;\r\n else\r\n className += ' ' + styles.right;\r\n\r\n return className;\r\n}\r\n\r\ninterface WidgetButtonProps {\r\n onClick: (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;\r\n direction: WidgetButtonDirection;\r\n hide: boolean;\r\n contents?: WidgetContents;\r\n useGradientBackdrop?: boolean;\r\n}\r\n\r\nexport const WidgetButton = React.memo(function(props: WidgetButtonProps): JSX.Element {\r\n const isLeft = props.direction === WidgetButtonDirection.Left;\r\n\r\n const arrowSvg = isLeft ? cvSvgLibrary.ChevronLeft : cvSvgLibrary.ChevronRight;\r\n\r\n const positionClass = getPositionClass(props.contents, isLeft);\r\n\r\n if (props.hide)\r\n return <></>;\r\n\r\n return (\r\n <>\r\n <div role='button' className={`${positionClass} ${styles.button}`} onClick={props.onClick}>\r\n <SvgContainer\r\n svgName={arrowSvg}\r\n size={SvgContainerSize.Medium}\r\n className='svg-container d-inline-block'\r\n />\r\n </div>\r\n\r\n {props.useGradientBackdrop && <div className={isLeft ? styles.gradientLeft : styles.gradientRight} />}\r\n <div role='button' onClick={props.onClick} className={\r\n isLeft ? styles.extendedClickableAreaLeft : styles.extendedClickableAreaRight\r\n } />\r\n </>\r\n );\r\n}, (prevProps, nextProps) => prevProps.hide === nextProps.hide);","// extracted by mini-css-extract-plugin\nmodule.exports = {\"left\":\"cv--left--789pr\",\"right\":\"cv--right--1P8qt\",\"button\":\"cv--button--24q_F\",\"gradientLeft\":\"cv--gradientLeft--3fkiw\",\"gradientRight\":\"cv--gradientRight--2RDDy\",\"extendedClickableAreaRight\":\"cv--extendedClickableAreaRight--13dgy\",\"extendedClickableAreaLeft\":\"cv--extendedClickableAreaLeft--37LtK\",\"videoTopPos\":\"cv--videoTopPos--1XTRO\",\"topPos\":\"cv--topPos--3_p_J\"};","export enum CssMeasurement {\r\n Percentage = '%',\r\n Pixels = 'px'\r\n}","export enum WidgetContents {\r\n Videos = 'videos',\r\n Series = 'series',\r\n Subjects = 'subjects',\r\n Playlists = 'playlists',\r\n UserChannels = 'user channels'\r\n}","export enum WidgetInteraction {\r\n Init = 'init',\r\n Next = 'next',\r\n Previous = 'previous',\r\n Resize = 'resize',\r\n Drag = 'drag'\r\n}","import { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\r\nimport { useMediaQuery } from './UseMediaQuery';\r\n\r\nexport function useGetMediaQueryString(): MediaQueryStrings {\r\n /**\r\n * I tried to do this by looping through `MediaQueryStrings`'s keys, but you can't run\r\n * hooks in a loop :(\r\n */\r\n const isXS = useMediaQuery(MediaQueryStrings.XS);\r\n const isSM = useMediaQuery(MediaQueryStrings.SM);\r\n const isMD = useMediaQuery(MediaQueryStrings.MD);\r\n const isLG = useMediaQuery(MediaQueryStrings.LG);\r\n const isXL = useMediaQuery(MediaQueryStrings.XL);\r\n const isXXL = useMediaQuery(MediaQueryStrings.XXL);\r\n\r\n let currentString = MediaQueryStrings.LG; // default\r\n if (isXS) currentString = MediaQueryStrings.XS;\r\n if (isSM) currentString = MediaQueryStrings.SM;\r\n if (isMD) currentString = MediaQueryStrings.MD;\r\n if (isLG) currentString = MediaQueryStrings.LG;\r\n if (isXL) currentString = MediaQueryStrings.XL;\r\n if (isXXL) currentString = MediaQueryStrings.XXL;\r\n\r\n return currentString;\r\n}","import * as React from 'react';\r\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\r\n\r\ninterface HoverOptions {\r\n /**\r\n * Classes to be applied to the target element on hover. Useful if you want to style the element on hover\r\n * after a delay (controlled by the `timeout` option below)\r\n */\r\n className?: string;\r\n\r\n /**\r\n * A delay between when the user actually hovers on the element, and when the hook returns `true` for `isHovering`.\r\n * This can be used to determine whether a user has actually intended for a hover event on an element to be\r\n * triggered or not. Defaults to 0.\r\n */\r\n delay?: number;\r\n}\r\n\r\nconst defaultOptions: HoverOptions = {\r\n className: '',\r\n delay: 0\r\n};\r\n\r\n/**\r\n * This hook detects hover events on an element.\r\n * This should only be used where CSS hover events won't suffice for what you are trying to achieve.\r\n */\r\nexport function useHover<T extends HTMLElement>(\r\n options: HoverOptions = defaultOptions\r\n): [ React.MutableRefObject<T>, boolean ] {\r\n const [ isHovering, setHovering ] = React.useState(false);\r\n\r\n const ref = React.useRef<T>(null);\r\n\r\n const triggerHover = FunctionHelper.throttle(() => {\r\n if (options.className)\r\n ref.current?.classList?.add(options.className);\r\n\r\n setHovering(true);\r\n }, options.delay, { leading: false });\r\n\r\n const handleMouseOut = () => {\r\n if (FunctionHelper.isFunction(triggerHover.cancel))\r\n triggerHover.cancel();\r\n\r\n if (options.className)\r\n ref.current?.classList?.remove(options.className);\r\n\r\n setHovering(false);\r\n };\r\n\r\n React.useLayoutEffect(() => {\r\n const node = ref.current;\r\n\r\n if (node) {\r\n node.addEventListener('mouseenter', triggerHover);\r\n node.addEventListener('mouseleave', handleMouseOut);\r\n\r\n return () => {\r\n node.removeEventListener('mouseenter', triggerHover);\r\n node.removeEventListener('mouseleave', handleMouseOut);\r\n };\r\n }\r\n }, [ref.current]);\r\n\r\n return [ ref, isHovering ];\r\n}\r\n\r\nexport function useHoverIntent<T extends HTMLElement>(className: string): [ React.MutableRefObject<T>, boolean ] {\r\n return useHover({\r\n className,\r\n delay: 275\r\n });\r\n}","import * as ReactIntersectionObserver from 'react-intersection-observer';\r\n\r\ninterface LazyUtils {\r\n ref: (node?: Element) => void | null;\r\n inView: boolean;\r\n}\r\n\r\nexport function useLazyLoad(lazyLoadProp: boolean): LazyUtils {\r\n const lazyLoad = lazyLoadProp && !(typeof (window as any).IntersectionObserver === 'undefined');\r\n let [ ref, inView ] = ReactIntersectionObserver.useInView({ triggerOnce: true });\r\n\r\n if (!lazyLoad)\r\n inView = true;\r\n\r\n return { ref, inView };\r\n}","const blankImage = new Image();\r\nblankImage.src = 'data:image/gif;base64,R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs=';\r\n\r\nexport const DragHelper = {\r\n // This removes the image that appears when you drag a draggable HTML element\r\n hideDragImage(event: React.DragEvent<HTMLElement>): void {\r\n event.dataTransfer.setDragImage(blankImage, 0, 0);\r\n }\r\n};"],"sourceRoot":""}
@@ -1 +1 @@
1
- (window.webpackJsonp_clickview_lite=window.webpackJsonp_clickview_lite||[]).push([[41],{396:function(e,r,n){"use strict";n.d(r,"a",(function(){return l}));var t=n(11),a=n(53),o=n(15),s=n(404),c=n(398),i=n(399),u=n(400),l={getSchoolStudents:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=e.filter,n=void 0===r?"":r,o=e.q,i=void 0===o?"":o,u=e.query,l=void 0===u?"":u,m=e.cursor,d=void 0===m?"1":m;return{url:a.a.urlBuilder("api/domain/v1/school/:id/students",e),key:"school:students:".concat(i,":").concat(l,":").concat(n,":").concat(d),successResponse:function(){var e=s.a.revertFilterString(n),r=t.a.Simulator.getAll("school:students",c).filter((function(r){var t,a;return!(i&&!r.name.toLowerCase().includes(i.toLowerCase()))&&(!n||(!e.yearLevel||e.yearLevel===r.yearLevel.id)&&!((null===(t=e.classroom)||void 0===t?void 0:t.length)&&!e.classroom.includes(null===(a=r.classroom)||void 0===a?void 0:a.id)))})),a=s.a.convertWithStatementToObject(l),o=a.sortValue||"name",u=r.sort((function(e,r){return e[o].toLowerCase()<r[o].toLowerCase()?-1:e[o].toLowerCase()>r[o].toLowerCase()?1:0}));a.sortKey&&"orderbydesc"===a.sortKey&&(u=u.reverse());var m=u.slice(25*(+d-1),25*+d),h=u.slice(25*+d).length?+d+1:void 0,p="1"===d?void 0:+d-1;return m.length||(m=u.slice(0,25),h=u.slice(25).length?2:void 0,p=void 0),{data:m,pagination:{cursors:{next:h,previous:p}},count:u.length}},timeout:500}},tempGetAllStudents:function(){return{url:"",key:"get:all:dem:students",successResponse:function(){return t.a.Simulator.getAll("school:students")}}},removeStudentsFromSchool:function(e,r){return{url:"",key:"remove:school:students",invalidationKeys:["school:students"],successResponse:function(){return t.a.Simulator.delete("school:students",e),{}},always:r}},getStudent:function(e){return{url:"/api/domain/v1/users/".concat(e),key:"students:".concat(e),successResponse:function(){return t.a.Simulator.get("school:students",e)}}},createStudent:function(e,r,n){return{url:"/api/domain/v1/users",key:"create:student",type:o.a.POST,invalidationKeys:["school:students"],successResponse:function(){return t.a.Simulator.create("school:students",e)},success:r,error:n}},bulkCreateStudents:function(e,r,n,a){return{url:"/api/domain/v1/users",key:"create:students",type:o.a.POST,invalidationKeys:["school:students"],successResponse:function(){return e.forEach((function(e){return t.a.Simulator.create("school:students",e)})),e},success:r,error:n,always:a}},updateStudent:function(e,r,n){return{url:"/api/domain/v1/users",key:"edit:student",type:o.a.PUT,invalidationKeys:["school:students"],successResponse:function(){return t.a.Simulator.update("school:students",e)},success:r,error:n}},getSchoolTeachers:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=e.filter,n=void 0===r?"":r,o=e.q,s=void 0===o?"":o,c=e.query,u=void 0===c?"":c,l=e.cursor,m=void 0===l?"":l;return{url:a.a.urlBuilder("api/domain/v1/school/:id/teachers",e),key:"school:teachers:".concat(s,":").concat(u,":").concat(n,":").concat(m),successResponse:function(){var e=t.a.Simulator.getAll("school:teachers",i);return{data:e,pagination:{cursors:{}},count:e.length}},timeout:2e3}},removeTeachersFromSchool:function(e,r){return{url:"",key:"remove:school:teachers",invalidationKeys:["school:teachers"],successResponse:function(){return t.a.Simulator.delete("school:teachers",e),{}},always:r}},getTeacher:function(e){return{url:"/api/domain/v1/users/".concat(e),key:"teachers:".concat(e),successResponse:function(){return t.a.Simulator.get("school:teachers",e)}}},createTeacher:function(e,r,n){return{url:"/api/domain/v1/users",key:"create:teacher",type:o.a.POST,invalidationKeys:["school:teachers"],successResponse:function(){return t.a.Simulator.create("school:teachers",e)},success:r,error:n}},bulkCreateTeachers:function(e,r,n,a){return{url:"/api/domain/v1/users",key:"create:teachers",type:o.a.POST,invalidationKeys:["school:teachers"],successResponse:function(){return e.forEach((function(e){return t.a.Simulator.create("school:teachers",e)})),e},success:r,error:n,always:a}},updateTeacher:function(e,r,n){return{url:"/api/domain/v1/users",key:"edit:teacher",type:o.a.PUT,invalidationKeys:["school:teachers"],successResponse:function(){return t.a.Simulator.update("school:teachers",e)},success:r,error:n}},getUserRoles:function(){return{url:"/api/domain/v1/users/roles",key:"user:roles",successResponse:function(){return t.a.Simulator.getAll("user:roles",u)}}},getStudentsGroups:function(e){return{url:"/api/domain/v1/users/".concat(e,"/groups"),key:"user:".concat(e,":groups"),successResponse:function(){return t.a.Simulator.getAll("groups").filter((function(r){return!!r.students.find((function(r){return r.id===e}))}))}}}}},398:function(e){e.exports=JSON.parse('[{"username":"Joosh","name":"Joshua","surname":"Taylor","email":"joshua.taylor@clickview.com.au","yearLevel":{"id":"year-2","name":"Year 2"},"classroom":{"id":"classroom-2-c","name":"Classroom 2-C"}},{"username":"Shale","name":"Shale","surname":"Kuzmanovski","email":"shale.kuzmanovski@clickview.com.au","yearLevel":{"id":"year-2","name":"Year 2"},"classroom":{"id":"classroom-2-a","name":"Classroom 2-A"}},{"username":"Mike","name":"Michael","surname":"O\'McDonald","email":"michael.mcdonnell@clickview.com.au","yearLevel":{"id":"year-2","name":"Year 2"},"classroom":{"id":"classroom-2-a","name":"Classroom 2-A"}},{"username":"Met","name":"Matt","surname":"Trengrove","email":"matt@clickview.com.au","yearLevel":{"id":"year-2","name":"Year 2"},"classroom":{"id":"classroom-2-b","name":"Classroom 2-B"}},{"username":"Big Kev","name":"Don Kevin","surname":"Wellalagodage","email":"kevin.wellalagoladegelagodage@clickview.com.au","yearLevel":{"id":"year-2","name":"Year 1"},"classroom":{"id":"classroom-1-a","name":"Classroom 1-A"}}]')},399:function(e){e.exports=JSON.parse('[{"username":"beb","name":"Beverly","surname":"Li","email":"beverly.li@clickview.com.au","userRole":{"id":"assistant-principal","name":"Assistant Principal"}},{"username":"Bort","name":"Cameron","surname":"Hill","email":"cameron.hill@clickview.com.au","userRole":{"id":"principal","name":"Principal"}},{"username":"jaynice","name":"Janice","surname":"Quach","email":"janice.quach@clickview.com.au","userRole":{"id":"head-of-science","name":"Head of Science"}},{"username":"bread","name":"Prad","surname":"Nepal","email":"prad.nepal@clickview.com.au","userRole":{"id":"head-of-conpiracy-theories","name":"Head of Conspiracy Theories"}}]')},400:function(e){e.exports=JSON.parse('[{"id":"teacher","name":"Teacher"},{"id":"assistant-principal","name":"Assistant Principal"},{"id":"principal","name":"Principal"},{"id":"head-of-science","name":"Head of Science"},{"id":"head-of-conpiracy-theories","name":"Head of Conspiracy Theories"}]')},628:function(e,r,n){"use strict";n.r(r),n.d(r,"RemoveUserView",(function(){return f}));var t=n(0),a=n.n(t),o=n(40),s=n(5),c=n(11),i=n(394),u=n(44),l=n(118),m=n(111),d=n(396);function h(e,r){return function(e){if(Array.isArray(e))return e}(e)||function(e,r){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],t=!0,a=!1,o=void 0;try{for(var s,c=e[Symbol.iterator]();!(t=(s=c.next()).done)&&(n.push(s.value),!r||n.length!==r);t=!0);}catch(e){a=!0,o=e}finally{try{t||null==c.return||c.return()}finally{if(a)throw o}}return n}(e,r)||function(e,r){if(!e)return;if("string"==typeof e)return p(e,r);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return p(e,r)}(e,r)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function p(e,r){(null==r||r>e.length)&&(r=e.length);for(var n=0,t=new Array(r);n<r;n++)t[n]=e[n];return t}var v=s.a.encloseNamespace("userManager.removeUser");function f(e){var r=h(a.a.useState(!1),2),n=r[0],t=r[1],s=Object(o.useDispatch)(),p=Object(i.a)(),f="student"===e.userType;var y=f?"titleStudents":"titleTeachers",S=f?"confirmStudents":"confirmTeachers";return a.a.createElement(m.a,{title:v(y),closePopup:e.closePopup,showLoadingSpinner:n},a.a.createElement("p",null,a.a.createElement(u.b,{namespace:"userManager.removeUser",phrase:S,options:{smartCount:e.userIds.length}})),a.a.createElement(l.a,{buttons:[{variant:"link",onClick:e.closePopup,buttonText:v("cancel")},{variant:"danger",onClick:function(){t(!0);var r=f?d.a.removeStudentsFromSchool:d.a.removeTeachersFromSchool;c.a.fetch(s,r(e.userIds,(function(){t(!1),p.success(v("success",{smartCount:e.userIds.length})),e.closePopup()})))},buttonText:v("remove"),isSpinnerButton:!0,showSpinner:n}]}))}}}]);
1
+ (window.webpackJsonp_clickview_lite=window.webpackJsonp_clickview_lite||[]).push([[40],{415:function(e,r,n){"use strict";n.d(r,"a",(function(){return l}));var t=n(12),a=n(59),o=n(16),s=n(425),c=n(417),i=n(418),u=n(419),l={getSchoolStudents:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=e.filter,n=void 0===r?"":r,o=e.q,i=void 0===o?"":o,u=e.query,l=void 0===u?"":u,m=e.cursor,d=void 0===m?"1":m;return{url:a.a.urlBuilder("api/domain/v1/school/:id/students",e),key:"school:students:".concat(i,":").concat(l,":").concat(n,":").concat(d),successResponse:function(){var e=s.a.revertFilterString(n),r=t.a.Simulator.getAll("school:students",c).filter((function(r){var t,a;return!(i&&!r.name.toLowerCase().includes(i.toLowerCase()))&&(!n||(!e.yearLevel||e.yearLevel===r.yearLevel.id)&&!((null===(t=e.classroom)||void 0===t?void 0:t.length)&&!e.classroom.includes(null===(a=r.classroom)||void 0===a?void 0:a.id)))})),a=s.a.convertWithStatementToObject(l),o=a.sortValue||"name",u=r.sort((function(e,r){return e[o].toLowerCase()<r[o].toLowerCase()?-1:e[o].toLowerCase()>r[o].toLowerCase()?1:0}));a.sortKey&&"orderbydesc"===a.sortKey&&(u=u.reverse());var m=u.slice(25*(+d-1),25*+d),h=u.slice(25*+d).length?+d+1:void 0,p="1"===d?void 0:+d-1;return m.length||(m=u.slice(0,25),h=u.slice(25).length?2:void 0,p=void 0),{data:m,pagination:{cursors:{next:h,previous:p}},count:u.length}},timeout:500}},tempGetAllStudents:function(){return{url:"",key:"get:all:dem:students",successResponse:function(){return t.a.Simulator.getAll("school:students")}}},removeStudentsFromSchool:function(e,r){return{url:"",key:"remove:school:students",invalidationKeys:["school:students"],successResponse:function(){return t.a.Simulator.delete("school:students",e),{}},always:r}},getStudent:function(e){return{url:"/api/domain/v1/users/".concat(e),key:"students:".concat(e),successResponse:function(){return t.a.Simulator.get("school:students",e)}}},createStudent:function(e,r,n){return{url:"/api/domain/v1/users",key:"create:student",type:o.a.POST,invalidationKeys:["school:students"],successResponse:function(){return t.a.Simulator.create("school:students",e)},success:r,error:n}},bulkCreateStudents:function(e,r,n,a){return{url:"/api/domain/v1/users",key:"create:students",type:o.a.POST,invalidationKeys:["school:students"],successResponse:function(){return e.forEach((function(e){return t.a.Simulator.create("school:students",e)})),e},success:r,error:n,always:a}},updateStudent:function(e,r,n){return{url:"/api/domain/v1/users",key:"edit:student",type:o.a.PUT,invalidationKeys:["school:students"],successResponse:function(){return t.a.Simulator.update("school:students",e)},success:r,error:n}},getSchoolTeachers:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=e.filter,n=void 0===r?"":r,o=e.q,s=void 0===o?"":o,c=e.query,u=void 0===c?"":c,l=e.cursor,m=void 0===l?"":l;return{url:a.a.urlBuilder("api/domain/v1/school/:id/teachers",e),key:"school:teachers:".concat(s,":").concat(u,":").concat(n,":").concat(m),successResponse:function(){var e=t.a.Simulator.getAll("school:teachers",i);return{data:e,pagination:{cursors:{}},count:e.length}},timeout:2e3}},removeTeachersFromSchool:function(e,r){return{url:"",key:"remove:school:teachers",invalidationKeys:["school:teachers"],successResponse:function(){return t.a.Simulator.delete("school:teachers",e),{}},always:r}},getTeacher:function(e){return{url:"/api/domain/v1/users/".concat(e),key:"teachers:".concat(e),successResponse:function(){return t.a.Simulator.get("school:teachers",e)}}},createTeacher:function(e,r,n){return{url:"/api/domain/v1/users",key:"create:teacher",type:o.a.POST,invalidationKeys:["school:teachers"],successResponse:function(){return t.a.Simulator.create("school:teachers",e)},success:r,error:n}},bulkCreateTeachers:function(e,r,n,a){return{url:"/api/domain/v1/users",key:"create:teachers",type:o.a.POST,invalidationKeys:["school:teachers"],successResponse:function(){return e.forEach((function(e){return t.a.Simulator.create("school:teachers",e)})),e},success:r,error:n,always:a}},updateTeacher:function(e,r,n){return{url:"/api/domain/v1/users",key:"edit:teacher",type:o.a.PUT,invalidationKeys:["school:teachers"],successResponse:function(){return t.a.Simulator.update("school:teachers",e)},success:r,error:n}},getUserRoles:function(){return{url:"/api/domain/v1/users/roles",key:"user:roles",successResponse:function(){return t.a.Simulator.getAll("user:roles",u)}}},getStudentsGroups:function(e){return{url:"/api/domain/v1/users/".concat(e,"/groups"),key:"user:".concat(e,":groups"),successResponse:function(){return t.a.Simulator.getAll("groups").filter((function(r){return!!r.students.find((function(r){return r.id===e}))}))}}}}},417:function(e){e.exports=JSON.parse('[{"username":"Joosh","name":"Joshua","surname":"Taylor","email":"joshua.taylor@clickview.com.au","yearLevel":{"id":"year-2","name":"Year 2"},"classroom":{"id":"classroom-2-c","name":"Classroom 2-C"}},{"username":"Shale","name":"Shale","surname":"Kuzmanovski","email":"shale.kuzmanovski@clickview.com.au","yearLevel":{"id":"year-2","name":"Year 2"},"classroom":{"id":"classroom-2-a","name":"Classroom 2-A"}},{"username":"Mike","name":"Michael","surname":"O\'McDonald","email":"michael.mcdonnell@clickview.com.au","yearLevel":{"id":"year-2","name":"Year 2"},"classroom":{"id":"classroom-2-a","name":"Classroom 2-A"}},{"username":"Met","name":"Matt","surname":"Trengrove","email":"matt@clickview.com.au","yearLevel":{"id":"year-2","name":"Year 2"},"classroom":{"id":"classroom-2-b","name":"Classroom 2-B"}},{"username":"Big Kev","name":"Don Kevin","surname":"Wellalagodage","email":"kevin.wellalagoladegelagodage@clickview.com.au","yearLevel":{"id":"year-2","name":"Year 1"},"classroom":{"id":"classroom-1-a","name":"Classroom 1-A"}}]')},418:function(e){e.exports=JSON.parse('[{"username":"beb","name":"Beverly","surname":"Li","email":"beverly.li@clickview.com.au","userRole":{"id":"assistant-principal","name":"Assistant Principal"}},{"username":"Bort","name":"Cameron","surname":"Hill","email":"cameron.hill@clickview.com.au","userRole":{"id":"principal","name":"Principal"}},{"username":"jaynice","name":"Janice","surname":"Quach","email":"janice.quach@clickview.com.au","userRole":{"id":"head-of-science","name":"Head of Science"}},{"username":"bread","name":"Prad","surname":"Nepal","email":"prad.nepal@clickview.com.au","userRole":{"id":"head-of-conpiracy-theories","name":"Head of Conspiracy Theories"}}]')},419:function(e){e.exports=JSON.parse('[{"id":"teacher","name":"Teacher"},{"id":"assistant-principal","name":"Assistant Principal"},{"id":"principal","name":"Principal"},{"id":"head-of-science","name":"Head of Science"},{"id":"head-of-conpiracy-theories","name":"Head of Conspiracy Theories"}]')},649:function(e,r,n){"use strict";n.r(r),n.d(r,"RemoveUserView",(function(){return y}));var t=n(0),a=n.n(t),o=n(39),s=n(7),c=n(12),i=n(412),u=n(48),l=n(125),m=n(118),d=n(415),h=n(31);function p(e,r){return function(e){if(Array.isArray(e))return e}(e)||function(e,r){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],t=!0,a=!1,o=void 0;try{for(var s,c=e[Symbol.iterator]();!(t=(s=c.next()).done)&&(n.push(s.value),!r||n.length!==r);t=!0);}catch(e){a=!0,o=e}finally{try{t||null==c.return||c.return()}finally{if(a)throw o}}return n}(e,r)||function(e,r){if(!e)return;if("string"==typeof e)return v(e,r);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return v(e,r)}(e,r)||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 v(e,r){(null==r||r>e.length)&&(r=e.length);for(var n=0,t=new Array(r);n<r;n++)t[n]=e[n];return t}var f=s.a.encloseNamespace("userManager.removeUser");function y(e){var r=p(a.a.useState(!1),2),n=r[0],t=r[1],s=Object(o.useDispatch)(),v=Object(i.a)(),y="student"===e.userType;var S=y?"titleStudents":"titleTeachers",g=y?"confirmStudents":"confirmTeachers";return a.a.createElement(m.a,{title:f(S),closePopup:e.closePopup,showLoadingSpinner:n},a.a.createElement("p",null,a.a.createElement(u.b,{namespace:"userManager.removeUser",phrase:g,options:{smartCount:e.userIds.length}})),a.a.createElement(l.a,{buttons:[{variant:"link",onClick:e.closePopup,buttonText:f("cancel")},{variant:"danger",onClick:function(){t(!0);var r=y?d.a.removeStudentsFromSchool:d.a.removeTeachersFromSchool;c.a.fetch(s,r(e.userIds,(function(){t(!1),h.a.logUserAction({count:e.userIds.length},e.analyticsOptions),v.success(f("success",{smartCount:e.userIds.length})),e.closePopup()})))},buttonText:f("remove"),isSpinnerButton:!0,showSpinner:n}]}))}}}]);
@@ -1 +1,236 @@
1
- (window.webpackJsonp_clickview_lite=window.webpackJsonp_clickview_lite||[]).push([[40],{395:function(e,t,n){"use strict";n.d(t,"a",(function(){return o})),n.d(t,"b",(function(){return s}));var a=n(0),i=n(393),r=n(31),c=n(34),l=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(a=Object.getOwnPropertySymbols(e);i<a.length;i++)t.indexOf(a[i])<0&&Object.prototype.propertyIsEnumerable.call(e,a[i])&&(n[a[i]]=e[a[i]])}return n};function o(e){const{castInitialValues:t,castValuesOnSubmit:n,initialValues:o,onSubmit:s,resetOnSubmit:u}=e,m=l(e,["castInitialValues","castValuesOnSubmit","initialValues","onSubmit","resetOnSubmit"]),d=t&&e.validationSchema?e.validationSchema.cast(function e(t){const n=c.a.deepClone(t);return Object.keys(n).forEach(t=>{n.hasOwnProperty(t)&&(c.a.isObject(n[t])?n[t]=e(n[t]):null===n[t]&&delete n[t])}),n}(o)):o,b={allowInitialSubmit:e.allowInitialSubmit};return a.createElement(i.d,Object.assign({enableReinitialize:!0},m,{initialValues:d,onSubmit:(t,{setSubmitting:a,resetForm:i})=>{const r=n&&e.validationSchema?e.validationSchema.cast(t):t;s(r,()=>{u&&i(),a(!1)})},initialStatus:b}),r.a.isFunction(e.children)?t=>e.children(t):a.Children.count(e.children)?e.children:null)}function s(){return Object(i.f)()}o.defaultProps={castInitialValues:!0,castValuesOnSubmit:!0}},402:function(e,t,n){"use strict";n.d(t,"a",(function(){return i}));var a=n(393);const i={getCustomFormControlClassName(e,t,n,i){let r="form-control";return Object(a.e)(t,n)&&Object(a.e)(e,n)&&(r+=" is-invalid"),i&&(r+=" "+i),r}}},411:function(e,t,n){"use strict";var a=n(0),i=n(393),r=n(27),c=n(31),l=n(402);function o(e){const{values:t}=Object(i.f)(),n=t[e.fieldName];return"string"!=typeof n?a.createElement(a.Fragment,null):a.createElement("div",{className:"float-right text-muted"},n.length,"/",e.limit)}var s=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(a=Object.getOwnPropertySymbols(e);i<a.length;i++)t.indexOf(a[i])<0&&Object.prototype.propertyIsEnumerable.call(e,a[i])&&(n[a[i]]=e[a[i]])}return n};function u(e){const{label:t}=e,n=s(e,["label"]);return a.createElement(r.Form.Group,null,a.createElement("div",{className:"custom-control custom-checkbox"},a.createElement(d,Object.assign({className:"custom-control-input"},n)),a.createElement(r.Form.Label,{className:"custom-control-label",htmlFor:n.id},t)))}n.d(t,"a",(function(){return d})),n.d(t,"b",(function(){return b}));var m=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(a=Object.getOwnPropertySymbols(e);i<a.length;i++)t.indexOf(a[i])<0&&Object.prototype.propertyIsEnumerable.call(e,a[i])&&(n[a[i]]=e[a[i]])}return n};function d(e){const{children:t}=e,n=m(e,["children"]);return a.createElement(i.b,Object.assign({},n),c.a.isFunction(t)?e=>t(e):a.Children.count(t)?t:null)}function b(e){const{label:t,className:n,showCharacterCounter:c}=e,s=m(e,["label","className","showCharacterCounter"]),{errors:b,touched:f}=Object(i.f)();return"checkbox"===s.type?a.createElement(u,Object.assign({},e)):a.createElement(r.Form.Group,null,!!t&&a.createElement(r.Form.Label,{htmlFor:s.id},t),a.createElement(d,Object.assign({className:l.a.getCustomFormControlClassName(b,f,s.name,n)},s)),!!c&&!!s.maxLength&&a.createElement(o,{fieldName:s.name,limit:s.maxLength}),a.createElement(i.a,{name:s.name},e=>a.createElement(r.Form.Control.Feedback,{type:"invalid"},e)))}},412:function(e,t,n){"use strict";var a=n(0),i=n(393);var r=n(114),c=n(44);n.d(t,"a",(function(){return l}));function l(e){const t=Object(i.f)(),n=function(e){var t;const[n,i]=a.useState(!1);return a.useEffect(()=>{var t;e.isValid&&(e.dirty||(null===(t=e.initialStatus)||void 0===t?void 0:t.allowInitialSubmit))?i(!0):i(!1)},[e.isValid,null===(t=e.initialStatus)||void 0===t?void 0:t.allowInitialSubmit,e.dirty,e.values]),a.useEffect(()=>{e.isSubmitting&&i(!1)},[e.isSubmitting]),n}(t);a.useEffect(()=>{function e(e){13===e.keyCode&&n&&t.validateForm().then(e=>{Object.keys(e).length||t.submitForm()})}return window.addEventListener("keypress",e),()=>window.removeEventListener("keypress",e)},[n]);let l="save";return e.isNew&&(l="create"),e.hasNext&&(l="next"),a.createElement(r.a,{showSpinner:t.isSubmitting,type:"submit",disabled:!n},a.createElement(c.b,{namespace:"shared.formButtons",phrase:l}))}},513:function(e,t,n){"use strict";n.d(t,"a",(function(){return f}));var a=n(0),i=n(387),r=n(393),c=n(5),l=n(411),o=n(395),s=n(412),u=n(44);const m="shared.editVideoDetails",d=i.object().shape({name:i.string().max(255,()=>c.a.getPhrase(m,"nameExceeds")).required(()=>c.a.getPhrase(m,"nameRequired")),description:i.string().max(65535,()=>c.a.getPhrase(m,"descriptionExceeds"))});function b(e){const t=Object(r.f)();return a.createElement(r.c,null,a.createElement(l.b,{label:c.a.getPhrase(m,"nameLabel"),type:"text",name:"name",id:"name",placeholder:c.a.getPhrase(m,"namePlaceholder"),autoFocus:!0,value:t.values.name}),a.createElement(l.b,{label:c.a.getPhrase(m,"descriptionLabel"),as:"textarea",name:"description",id:"description",placeholder:c.a.getPhrase(m,"descriptionPlaceholder"),autoFocus:!0,value:t.values.description}),a.createElement("div",{className:"btn-container d-flex justify-content-end"},a.createElement("button",{type:"button",className:"btn btn-link mr-2",onClick:e.onClickCancel},a.createElement(u.b,{namespace:m,phrase:"cancel"})),a.createElement(s.a,{isNew:!1})))}function f(e){const{video:{name:t,description:n},saveVideo:i,onClickCancel:r}=e;return a.createElement(o.a,{initialValues:{name:t,description:n},validationSchema:d,onSubmit:i},a.createElement(b,{onClickCancel:r}))}},624:function(e,t,n){"use strict";n.r(t),n.d(t,"EditVideoView",(function(){return u}));var a=n(0),i=n(40),r=n(11),c=n(75),l=n(112),o=n(513),s=n(118);function u(e){var t=e.id,n=e.closePopup,u=Object(c.a)("combine:uploads:service"),m=r.a.useBasicFetch(s.a.video(t)),d=Object(i.useDispatch)();return m.data?a.createElement(l.a,{closePopup:n,title:"Edit video details"},a.createElement(o.a,{video:m.data,saveVideo:function(e){e.id=m.data.id;var t=s.a.updateVideo(e,(function(){u.updateUploadMetadata(e.id,e.name),n()}));r.a.fetch(d,t)},onClickCancel:n})):a.createElement(a.Fragment,null)}}}]);
1
+ (window["webpackJsonp_clickview_lite"] = window["webpackJsonp_clickview_lite"] || []).push([[40],{
2
+
3
+ /***/ "../../libs/shared/src/context/PageTitleContext.tsx":
4
+ /*!**********************************************************************************************!*\
5
+ !*** C:/ClickView Projects/@clickview/packages/libs/shared/src/context/PageTitleContext.tsx ***!
6
+ \**********************************************************************************************/
7
+ /*! exports provided: PageTitleContext, PageTitleContextProvider */
8
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
9
+
10
+ "use strict";
11
+ __webpack_require__.r(__webpack_exports__);
12
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PageTitleContext", function() { return PageTitleContext; });
13
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PageTitleContextProvider", function() { return PageTitleContextProvider; });
14
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
15
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
16
+ /* harmony import */ var _common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../common/src/backbone/services/LanguageService */ "../../libs/common/src/backbone/services/LanguageService.tsx");
17
+ /* harmony import */ var _utils_PageTitleHelper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/PageTitleHelper */ "../../libs/shared/src/utils/PageTitleHelper.ts");
18
+
19
+
20
+
21
+ const PageTitleContext = react__WEBPACK_IMPORTED_MODULE_0__["createContext"]({});
22
+ const namespace = 'shared.context';
23
+
24
+ const DEFAULT_TITLE = () => _common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_1__["LanguageService"].getPhrase(namespace, 'defaultTitle');
25
+
26
+ const PageTitleContextProvider = ({
27
+ children
28
+ }) => {
29
+ const [currentPageTitle, setCurrentPageTitle] = react__WEBPACK_IMPORTED_MODULE_0__["useState"](DEFAULT_TITLE);
30
+ const [previousPageTitle, setPreviousPageTitle] = react__WEBPACK_IMPORTED_MODULE_0__["useState"](DEFAULT_TITLE);
31
+
32
+ const setPageTitle = title => {
33
+ if (title === currentPageTitle) return;
34
+ if (currentPageTitle !== previousPageTitle) setPreviousPageTitle(currentPageTitle);
35
+ setCurrentPageTitle(title);
36
+ };
37
+
38
+ const revertPageTitle = () => {
39
+ setCurrentPageTitle(previousPageTitle);
40
+ };
41
+
42
+ react__WEBPACK_IMPORTED_MODULE_0__["useEffect"](() => _utils_PageTitleHelper__WEBPACK_IMPORTED_MODULE_2__["PageTitleHelper"].setPageTitle(currentPageTitle), [currentPageTitle]);
43
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](PageTitleContext.Provider, {
44
+ value: {
45
+ setPageTitle,
46
+ revertPageTitle
47
+ }
48
+ }, children);
49
+ };
50
+
51
+ /***/ }),
52
+
53
+ /***/ "../../libs/shared/src/hooks/useSetPageTitle.ts":
54
+ /*!******************************************************************************************!*\
55
+ !*** C:/ClickView Projects/@clickview/packages/libs/shared/src/hooks/useSetPageTitle.ts ***!
56
+ \******************************************************************************************/
57
+ /*! exports provided: useSetPageTitle */
58
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
59
+
60
+ "use strict";
61
+ __webpack_require__.r(__webpack_exports__);
62
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "useSetPageTitle", function() { return useSetPageTitle; });
63
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
64
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
65
+ /* harmony import */ var _common_src_backbone_utils_FunctionHelper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../common/src/backbone/utils/FunctionHelper */ "../../libs/common/src/backbone/utils/FunctionHelper.ts");
66
+ /* harmony import */ var _context_PageTitleContext__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../context/PageTitleContext */ "../../libs/shared/src/context/PageTitleContext.tsx");
67
+
68
+
69
+
70
+ /**
71
+ * Hook function to set the page title using the useEffect hook.
72
+ * @param title - value to set the page title to.
73
+ * @param dependencies - values from the component (e.g. state, props and functions) that are used
74
+ * inside the effect hook.
75
+ */
76
+
77
+ function useSetPageTitle(title, dependencies = []) {
78
+ const {
79
+ setPageTitle
80
+ } = react__WEBPACK_IMPORTED_MODULE_0__["useContext"](_context_PageTitleContext__WEBPACK_IMPORTED_MODULE_2__["PageTitleContext"]);
81
+ react__WEBPACK_IMPORTED_MODULE_0__["useEffect"](() => {
82
+ if (!title || !_common_src_backbone_utils_FunctionHelper__WEBPACK_IMPORTED_MODULE_1__["FunctionHelper"].isFunction(setPageTitle)) return;
83
+ setPageTitle(title);
84
+ }, [title, ...dependencies]);
85
+ }
86
+
87
+ /***/ }),
88
+
89
+ /***/ "../../libs/shared/src/utils/PageTitleHelper.ts":
90
+ /*!******************************************************************************************!*\
91
+ !*** C:/ClickView Projects/@clickview/packages/libs/shared/src/utils/PageTitleHelper.ts ***!
92
+ \******************************************************************************************/
93
+ /*! exports provided: PageTitleHelper */
94
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
95
+
96
+ "use strict";
97
+ __webpack_require__.r(__webpack_exports__);
98
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PageTitleHelper", function() { return PageTitleHelper; });
99
+ /* harmony import */ var _common_src_backbone__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../common/src/backbone */ "../../libs/common/src/backbone/index.ts");
100
+
101
+ const TITLE_LENGTH = 60;
102
+ const SUFFIX = ' - ClickView';
103
+
104
+ const trimTitle = title => {
105
+ if (title.length + SUFFIX.length <= TITLE_LENGTH) return title + SUFFIX;
106
+ return title.substring(0, TITLE_LENGTH - 3) + '...' + SUFFIX;
107
+ };
108
+
109
+ const PageTitleHelper = {
110
+ setPageTitle(title) {
111
+ if (!title) return;
112
+ _common_src_backbone__WEBPACK_IMPORTED_MODULE_0__["Core"].LocationUtils.SetPageTitle(trimTitle(title));
113
+ }
114
+
115
+ };
116
+
117
+ /***/ }),
118
+
119
+ /***/ "./src/apps/playlists/views/delete-playlist/DeletePlaylistView.tsx":
120
+ /*!*************************************************************************!*\
121
+ !*** ./src/apps/playlists/views/delete-playlist/DeletePlaylistView.tsx ***!
122
+ \*************************************************************************/
123
+ /*! exports provided: DeletePlaylistView */
124
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
125
+
126
+ "use strict";
127
+ __webpack_require__.r(__webpack_exports__);
128
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DeletePlaylistView", function() { return DeletePlaylistView; });
129
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
130
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
131
+ /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-redux */ "react-redux");
132
+ /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_1__);
133
+ /* harmony import */ var _libs_common_src_backbone__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../libs/common/src/backbone */ "../../libs/common/src/backbone/index.ts");
134
+ /* harmony import */ var _libs_common_src_react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../../../../libs/common/src/react */ "../../libs/common/src/react/index.ts");
135
+ /* harmony import */ var _libs_common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../../../../../libs/common/src/backbone/services/LanguageService */ "../../libs/common/src/backbone/services/LanguageService.tsx");
136
+ /* harmony import */ var _libs_analytics_src_interfaces__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../../../../../libs/analytics/src/interfaces */ "../../libs/analytics/src/interfaces/index.ts");
137
+ /* harmony import */ var _libs_analytics_src_AnalyticsHelper__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../../../../../libs/analytics/src/AnalyticsHelper */ "../../libs/analytics/src/AnalyticsHelper.ts");
138
+ /* harmony import */ var _libs_shared_src_components_text_Text__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../../../../../libs/shared/src/components/text/Text */ "../../libs/shared/src/components/text/Text.tsx");
139
+ /* harmony import */ var _libs_shared_src_components_popup_PopupButtons__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../../../../../libs/shared/src/components/popup/PopupButtons */ "../../libs/shared/src/components/popup/PopupButtons.tsx");
140
+ /* harmony import */ var _libs_shared_src_components_popup_Popup__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../../../../../../libs/shared/src/components/popup/Popup */ "../../libs/shared/src/components/popup/Popup.tsx");
141
+ /* harmony import */ var _libs_shared_src_hooks_useSetPageTitle__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../../../../../../libs/shared/src/hooks/useSetPageTitle */ "../../libs/shared/src/hooks/useSetPageTitle.ts");
142
+ /* harmony import */ var _libs_shared_src_flight_requests_PlaylistRequests__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../../../../../../libs/shared/src/flight-requests/PlaylistRequests */ "../../libs/shared/src/flight-requests/PlaylistRequests.ts");
143
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
144
+
145
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
146
+
147
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
148
+
149
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
150
+
151
+ function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
152
+
153
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
154
+
155
+
156
+
157
+
158
+
159
+
160
+
161
+
162
+
163
+
164
+
165
+
166
+
167
+ var namespace = 'playlists.deletePlaylist';
168
+ var getPhrase = _libs_common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_4__["LanguageService"].encloseNamespace(namespace);
169
+ function DeletePlaylistView(props) {
170
+ var dispatch = Object(react_redux__WEBPACK_IMPORTED_MODULE_1__["useDispatch"])();
171
+
172
+ var _React$useState = react__WEBPACK_IMPORTED_MODULE_0__["useState"](false),
173
+ _React$useState2 = _slicedToArray(_React$useState, 2),
174
+ showButtonSpinner = _React$useState2[0],
175
+ setShowButtonSpinner = _React$useState2[1];
176
+
177
+ var playlist = _libs_common_src_react__WEBPACK_IMPORTED_MODULE_3__["Flight"].useBasicFetch(_libs_shared_src_flight_requests_PlaylistRequests__WEBPACK_IMPORTED_MODULE_11__["PlaylistRequests"].getPlaylist(props.playlistId));
178
+ Object(_libs_shared_src_hooks_useSetPageTitle__WEBPACK_IMPORTED_MODULE_10__["useSetPageTitle"])(playlist.data && "".concat(getPhrase('title', {
179
+ name: playlist.data.name
180
+ })), [playlist.data]);
181
+
182
+ var deletePlaylist = function deletePlaylist() {
183
+ setShowButtonSpinner(true);
184
+
185
+ var onSuccess = function onSuccess() {
186
+ props.closePopup();
187
+ if (props.routeToOnDelete) _libs_common_src_backbone__WEBPACK_IMPORTED_MODULE_2__["Core"].AppLinkHelper.trigger(props.routeToOnDelete);
188
+ };
189
+
190
+ _libs_common_src_react__WEBPACK_IMPORTED_MODULE_3__["Flight"].fetch(dispatch, _libs_shared_src_flight_requests_PlaylistRequests__WEBPACK_IMPORTED_MODULE_11__["PlaylistRequests"].deletePlaylist(props.playlistId, onSuccess, props.closePopup));
191
+ _libs_analytics_src_AnalyticsHelper__WEBPACK_IMPORTED_MODULE_6__["AnalyticsHelper"].logUserAction({
192
+ id: props.playlistId
193
+ }, _libs_analytics_src_AnalyticsHelper__WEBPACK_IMPORTED_MODULE_6__["AnalyticsHelper"].mergeOptions(props.analyticsOptions, {
194
+ actionType: _libs_analytics_src_interfaces__WEBPACK_IMPORTED_MODULE_5__["UserAction"].Delete,
195
+ entity: _libs_analytics_src_interfaces__WEBPACK_IMPORTED_MODULE_5__["EntityType"].Playlist,
196
+ workflowPhase: _libs_analytics_src_interfaces__WEBPACK_IMPORTED_MODULE_5__["WorkflowPhase"].Complete
197
+ }));
198
+ };
199
+
200
+ var buttons = [{
201
+ variant: 'link',
202
+ onClick: props.closePopup,
203
+ buttonText: getPhrase('keep')
204
+ }, {
205
+ variant: 'danger',
206
+ onClick: deletePlaylist,
207
+ buttonText: getPhrase('confirm'),
208
+ isSpinnerButton: true,
209
+ showSpinner: showButtonSpinner
210
+ }];
211
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_components_text_Text__WEBPACK_IMPORTED_MODULE_7__["LanguageNamespaceContext"].Provider, {
212
+ value: namespace
213
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_components_popup_Popup__WEBPACK_IMPORTED_MODULE_9__["Popup"], {
214
+ title: getPhrase('check'),
215
+ closePopup: props.closePopup,
216
+ showLoadingSpinner: !playlist.data
217
+ }, !!playlist.data && react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
218
+ className: 'delete-playlist-container'
219
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
220
+ className: 'delete-playlist-body'
221
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("p", null, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_components_text_Text__WEBPACK_IMPORTED_MODULE_7__["Text"], {
222
+ phrase: 'warning',
223
+ options: {
224
+ name: playlist.data.name
225
+ }
226
+ })), react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("p", null, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_components_text_Text__WEBPACK_IMPORTED_MODULE_7__["Text"], {
227
+ phrase: 'videoNote'
228
+ }))), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_components_popup_PopupButtons__WEBPACK_IMPORTED_MODULE_8__["PopupButtons"], {
229
+ buttons: buttons
230
+ }))));
231
+ }
232
+
233
+ /***/ })
234
+
235
+ }]);
236
+ //# sourceMappingURL=40.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["file://C:/ClickView Projects/@clickview/packages/libs/shared/src/context/PageTitleContext.tsx","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/hooks/useSetPageTitle.ts","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/utils/PageTitleHelper.ts","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/playlists/views/delete-playlist/DeletePlaylistView.tsx"],"names":[],"mappings":"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","file":"scripts/40.chunk.js","sourcesContent":["import * as React from 'react';\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\nimport { PageTitleHelper } from 'libs/shared/utils/PageTitleHelper';\r\n\r\ninterface IPageTitleContext {\r\n setPageTitle?: (title: string) => void;\r\n revertPageTitle?: () => void;\r\n}\r\n\r\nexport const PageTitleContext = React.createContext<IPageTitleContext>({});\r\n\r\nconst namespace = 'shared.context';\r\n\r\nconst DEFAULT_TITLE = () => LanguageService.getPhrase(namespace, 'defaultTitle');\r\n\r\nexport const PageTitleContextProvider = ({ children }: React.PropsWithChildren<{}>): React.ReactElement => {\r\n const [ currentPageTitle, setCurrentPageTitle ] = React.useState(DEFAULT_TITLE);\r\n const [ previousPageTitle, setPreviousPageTitle ] = React.useState(DEFAULT_TITLE);\r\n\r\n const setPageTitle = (title: string) => {\r\n if (title === currentPageTitle)\r\n return;\r\n\r\n if (currentPageTitle !== previousPageTitle)\r\n setPreviousPageTitle(currentPageTitle);\r\n\r\n setCurrentPageTitle(title);\r\n };\r\n\r\n const revertPageTitle = () => {\r\n setCurrentPageTitle(previousPageTitle);\r\n };\r\n\r\n React.useEffect(() => PageTitleHelper.setPageTitle(currentPageTitle), [currentPageTitle]);\r\n\r\n return (\r\n <PageTitleContext.Provider value={{ setPageTitle, revertPageTitle }}>\r\n {children}\r\n </PageTitleContext.Provider>\r\n );\r\n};","import * as React from 'react';\r\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\r\n\r\nimport { PageTitleContext } from 'libs/shared/context/PageTitleContext';\r\n\r\n/**\r\n * Hook function to set the page title using the useEffect hook.\r\n * @param title - value to set the page title to.\r\n * @param dependencies - values from the component (e.g. state, props and functions) that are used \r\n * inside the effect hook.\r\n */\r\nexport function useSetPageTitle(title: string, dependencies: any[] = []): void {\r\n const { setPageTitle } = React.useContext(PageTitleContext);\r\n\r\n React.useEffect(() => {\r\n if (!title || !FunctionHelper.isFunction(setPageTitle))\r\n return;\r\n\r\n setPageTitle(title);\r\n }, [ title, ...dependencies ]);\r\n}","import { Core } from 'libs/common/core';\r\n\r\nconst TITLE_LENGTH = 60;\r\nconst SUFFIX = ' - ClickView';\r\n\r\nconst trimTitle = (title: string): string => {\r\n if (title.length + SUFFIX.length <= TITLE_LENGTH)\r\n return title + SUFFIX;\r\n\r\n return title.substring(0, TITLE_LENGTH - 3) + '...' + SUFFIX;\r\n};\r\n\r\nexport const PageTitleHelper = {\r\n setPageTitle(title: string): void {\r\n if (!title)\r\n return;\r\n\r\n Core.LocationUtils.SetPageTitle(trimTitle(title));\r\n }\r\n};","import * as React from 'react';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport { Core } from 'libs/common/core';\r\nimport { Flight } from 'libs/common/flight';\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\nimport { UserAction, EntityType, WorkflowPhase } from 'libs/analytics/interfaces';\r\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\r\n\r\nimport { PropsWithPopupViewProps, PropsWithAnalyticsOptions, Playlist } from 'libs/shared/interfaces';\r\n\r\nimport { Text, LanguageNamespaceContext } from 'libs/shared/components/text/Text';\r\nimport { PopupButton, PopupButtons } from 'libs/shared/components/popup/PopupButtons';\r\nimport { Popup } from 'libs/shared/components/popup/Popup';\r\nimport { useSetPageTitle } from 'libs/shared/hooks/useSetPageTitle';\r\n\r\nimport { PlaylistRequests } from 'libs/shared/flight-requests/PlaylistRequests';\r\n\r\nconst namespace = 'playlists.deletePlaylist';\r\nconst getPhrase = LanguageService.encloseNamespace(namespace);\r\n\r\ninterface DeletePlaylistViewProps {\r\n playlistId: string;\r\n routeToOnDelete?: Core.AppLink;\r\n}\r\n\r\ntype PropTypes = PropsWithAnalyticsOptions<PropsWithPopupViewProps<DeletePlaylistViewProps>>;\r\n\r\nexport function DeletePlaylistView(props: PropTypes): React.ReactElement {\r\n const dispatch = useDispatch();\r\n\r\n const [ showButtonSpinner, setShowButtonSpinner ] = React.useState(false);\r\n\r\n const playlist = Flight.useBasicFetch<Playlist>(PlaylistRequests.getPlaylist(props.playlistId));\r\n\r\n useSetPageTitle(playlist.data && `${getPhrase('title', { name: playlist.data.name })}`, [playlist.data]);\r\n\r\n const deletePlaylist = (): void => {\r\n setShowButtonSpinner(true);\r\n\r\n const onSuccess = () => {\r\n props.closePopup();\r\n\r\n if (props.routeToOnDelete)\r\n Core.AppLinkHelper.trigger(props.routeToOnDelete);\r\n };\r\n\r\n Flight.fetch(dispatch, PlaylistRequests.deletePlaylist(props.playlistId, onSuccess, props.closePopup));\r\n\r\n AnalyticsHelper.logUserAction({ id: props.playlistId }, AnalyticsHelper.mergeOptions(props.analyticsOptions, {\r\n actionType: UserAction.Delete,\r\n entity: EntityType.Playlist,\r\n workflowPhase: WorkflowPhase.Complete\r\n }));\r\n };\r\n\r\n const buttons: PopupButton[] = [\r\n {\r\n variant: 'link',\r\n onClick: props.closePopup,\r\n buttonText: getPhrase('keep')\r\n },\r\n {\r\n variant: 'danger',\r\n onClick: deletePlaylist,\r\n buttonText: getPhrase('confirm'),\r\n isSpinnerButton: true,\r\n showSpinner: showButtonSpinner\r\n }\r\n ];\r\n\r\n return (\r\n <LanguageNamespaceContext.Provider value={namespace}>\r\n <Popup title={getPhrase('check')} closePopup={props.closePopup} showLoadingSpinner={!playlist.data}>\r\n {!!playlist.data &&\r\n <div className='delete-playlist-container'>\r\n <div className='delete-playlist-body'>\r\n <p>\r\n <Text phrase='warning' options={{ name: playlist.data.name }} />\r\n </p>\r\n <p><Text phrase='videoNote' /></p>\r\n </div>\r\n <PopupButtons buttons={buttons} />\r\n </div>\r\n }\r\n </Popup>\r\n </LanguageNamespaceContext.Provider>\r\n );\r\n}"],"sourceRoot":""}
@@ -1 +1 @@
1
- (window.webpackJsonp_clickview_lite=window.webpackJsonp_clickview_lite||[]).push([[42],{407:function(e,t,a){"use strict";a.d(t,"a",(function(){return s}));var r=a(63),i=a(34);const s={reorder(e,t,a){if(t===a)return{reorderedItems:e,reorderRequest:null};const i=r.a.moveItem(e,t,a),s=a<e.length-1?i[a+1].id:null;return{reorderedItems:i,reorderRequest:{sourceMemberId:i[a].id,destinationMemberId:s}}},updateState(e,t,a){const s=[],l=i.a.deepClone(a),o=[e];let n=a[e];const d=!!n&&!!n.data&&n.data.length;for(;n&&Array.isArray(n.data);){s.push(...n.data);const t=n.pagination&&n.pagination.cursors&&n.pagination.cursors.next,r=!!t&&`${e}:${t}`;n=t&&a[r],n&&o.push(r)}if(!s.length)return a;const u=r.a.findIndex(s,e=>e.id===t.sourceMemberId),c=[...s],p=c.splice(u,1),y=t.destinationMemberId?r.a.findIndex(c,e=>e.id===t.destinationMemberId):c.length;return c.splice(y,0,p[0]),o.forEach(e=>{const t=c.splice(0,d);l[e].data=t}),l}}},409:function(e,t,a){"use strict";var r,i=a(15),s=a(25),l=a(407),o=a(114);a(41);o.a;class n extends o.a{constructor(e,t=""){super({collectionPrefix:"playlist:videos",id:e,cursor:t})}}!function(e){e[e.Queued=1]="Queued",e[e.Processing=2]="Processing",e[e.Processed=3]="Processed",e[e.Errored=4]="Errored"}(r||(r={}));const d={updatePlaylist:(e,t)=>a=>{const r=Object.assign({},a);return r.hasOwnProperty(e)&&(r[e]=Object.assign(Object.assign({},r[e]),t)),r},deletePlaylist:e=>t=>{const a=Object.assign({},t);return a.hasOwnProperty(e)&&delete a[e],a},incrementVideoCount:(e,t)=>a=>{const r=Object.assign({},a);return r.hasOwnProperty(e)?(r[e].videos||(r[e].videos={}),r[e].videos.count=r[e].videos.count?r[e].videos.count+t:t,r):a}};var u=a(122);a.d(t,"a",(function(){return m}));const c=e=>e?"&cursor="+e:"",p=e=>Number.isInteger(e)?"&maxRatingValue="+e:"",y=(e,t)=>`${e}${t?":"+t:""}`,m={getPlaylist:(e,t,a)=>({url:`/api/domain/v2/objects/${e}?query=${s.a.PLAYLIST}`,key:"playlist:"+e,success:t,error:a}),getSharedPlaylist:(e,t,a,r)=>({url:`${"/api/domain/v2/share/"+e}?query=${s.a.PLAYLIST}${p(t)}`,key:"shared:playlist:"+e,success:a,error:r}),getUserPlaylists:e=>({url:`/api/domain/v2/me/playlists?query={${u.a.getFilterFromSort(e.sort)},limit:100}${s.a.PLAYLIST_COLLECTION}${c(e.cursor)}`,key:e.toString()}),getPlaylistVideos(e,t,a){let r="orderBy:orderindex,limit:100";return Number.isInteger(t)&&(r+=",rating.value:0..."+t),{url:`/api/domain/v2/objects/${e}/videos?query={${r}}${s.a.VIDEO_COLLECTION}${c(a)}`,key:y(`playlist:${e}:videos`,a)}},getSharedPlaylistVideos:(e,t,a)=>({url:`/api/domain/v2/share/${e}/videos?query={orderBy:orderindex,limit:100}${s.a.VIDEO_COLLECTION}${c(a)}${p(t)}`,key:y(`shared:playlist:${e}:videos`,a)}),getVideoPlaylists:(e,t,a)=>({url:`/api/domain/v2/objects/${e}/playlists?query={limit:100,owner.id:[${t}]}`,key:y("video:playlists:"+e,a)}),getIsFollowingPlaylist:(e,t)=>({url:`/api/domain/v2/objects/${e}/followers?query={id:${t}}`,key:`playlist:${e}:following:${t}`,formatData:t=>{var a,r;return{objectId:e,isFollowing:!!(null===(r=null===(a=t)||void 0===a?void 0:a.data)||void 0===r?void 0:r.length)}},normalize:!1}),createPlaylist:(e,t,a,r)=>({key:"create:playlist",url:`/api/domain/v2/objects/${e}/playlists`,data:t,type:i.a.POST,success:a,error:r,invalidationKeys:"user:playlists"}),updatePlaylist:(e,t,a,r)=>({key:"update:playlist",url:"/api/domain/v2/objects/"+e,data:t,type:i.a.PUT,success:a,error:r,updateState:{keys:"playlist:"+e,updateData:d.updatePlaylist("playlist:"+e,t)}}),deletePlaylist:(e,t,a)=>({key:"delete:playlist",url:"/api/domain/v2/objects/"+e,type:i.a.DELETE,success:t,error:a,invalidationKeys:"user:playlists",updateState:{keys:"playlist:"+e,updateData:d.deletePlaylist("playlist:"+e)}}),addToPlaylist(e,t,a,r){const s=["user:playlists",new n(e).toString()];return t.forEach(e=>{s.push("video:playlists:"+e)}),{key:"add:to:playlist",url:`/api/domain/v2/objects/${e}/associate`,data:t,type:i.a.POST,success:a,error:r,invalidationKeys:s,updateState:{keys:"playlist:"+e,updateData:d.incrementVideoCount("playlist:"+e,t.length)}}},reorderVideos:(e,t,a,r)=>({key:"reorder:playlist",url:`/api/domain/v2/objects/${e}/videos/reorder`,data:t,type:i.a.PUT,success:a,error:r,invalidationKeys:"user:playlists",updateState:{keys:`playlist:${e}:videos`,updateData:a=>l.a.updateState(`playlist:${e}:videos`,t,a)}}),removePlaylistVideo:(e,t,a,r)=>({key:"remove:playlist:video",url:`/api/domain/v2/objects/${e}/dissociate?memberId=${t}`,type:i.a.DELETE,success:a,error:r,invalidationKeys:["user:playlists",`playlist:${e}:videos`]}),followPlaylist:(e,t)=>({url:"/api/domain/v2/objects/"+t,key:"follow:playlist:"+e,data:{followedPlaylists:e},type:i.a.PUT}),unfollowPlaylist:(e,t)=>({url:`/api/domain/v2/objects/${t}/followedplaylists/${e}`,key:"unfollow:playlist:"+e,type:i.a.DELETE}),getMigrationTask:(e,t)=>({url:"/api/playlist-app/migration-task",key:"migration:task",formatData:e=>e||{status:r.Processed},success:e,error:t})}},418:function(e,t,a){"use strict";var r=a(0),i=a(32);a(5),a(2);const s=r.createContext({});function l(e,t=[]){const{setPageTitle:a}=r.useContext(s);r.useEffect(()=>{e&&i.a.isFunction(a)&&a(e)},[e,...t])}a.d(t,"a",(function(){return l}))},620:function(e,t,a){"use strict";a.r(t),a.d(t,"DeletePlaylistView",(function(){return f}));var r=a(0),i=a(40),s=a(2),l=a(11),o=a(5),n=a(44),d=a(118),u=a(111),c=a(418),p=a(409);function y(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var a=[],r=!0,i=!1,s=void 0;try{for(var l,o=e[Symbol.iterator]();!(r=(l=o.next()).done)&&(a.push(l.value),!t||a.length!==t);r=!0);}catch(e){i=!0,s=e}finally{try{r||null==o.return||o.return()}finally{if(i)throw s}}return a}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return m(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);"Object"===a&&e.constructor&&(a=e.constructor.name);if("Map"===a||"Set"===a)return Array.from(e);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return m(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function m(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,r=new Array(t);a<t;a++)r[a]=e[a];return r}var v=o.a.encloseNamespace("playlists.deletePlaylist");function f(e){var t=Object(i.useDispatch)(),a=y(r.useState(!1),2),o=a[0],m=a[1],f=l.a.useBasicFetch(p.a.getPlaylist(e.playlistId));Object(c.a)(f.data&&"".concat(v("title",{name:f.data.name})),[f.data]);var g=[{variant:"link",onClick:e.closePopup,buttonText:v("keep")},{variant:"danger",onClick:function(){m(!0);l.a.fetch(t,p.a.deletePlaylist(e.playlistId,(function(){e.closePopup(),e.routeToOnDelete&&s.a.AppLinkHelper.trigger(e.routeToOnDelete)}),e.closePopup))},buttonText:v("confirm"),isSpinnerButton:!0,showSpinner:o}];return r.createElement(n.a.Provider,{value:"playlists.deletePlaylist"},r.createElement(u.a,{title:v("check"),closePopup:e.closePopup,showLoadingSpinner:!f.data},!!f.data&&r.createElement("div",{className:"delete-playlist-container"},r.createElement("div",{className:"delete-playlist-body"},r.createElement("p",null,r.createElement(n.b,{phrase:"warning",options:{name:f.data.name}})),r.createElement("p",null,r.createElement(n.b,{phrase:"videoNote"}))),r.createElement(d.a,{buttons:g}))))}}}]);
1
+ (window.webpackJsonp_clickview_lite=window.webpackJsonp_clickview_lite||[]).push([[41],{424:function(e,t,a){"use strict";a.d(t,"a",(function(){return s}));var r=a(67),i=a(36);const s={reorder(e,t,a){if(t===a)return{reorderedItems:e,reorderRequest:null};const i=r.a.moveItem(e,t,a),s=a<e.length-1?i[a+1].id:null;return{reorderedItems:i,reorderRequest:{sourceMemberId:i[a].id,destinationMemberId:s}}},updateState(e,t,a){const s=[],l=i.a.deepClone(a),o=[e];let n=a[e];const d=!!n&&!!n.data&&n.data.length;for(;n&&Array.isArray(n.data);){s.push(...n.data);const t=n.pagination&&n.pagination.cursors&&n.pagination.cursors.next,r=!!t&&`${e}:${t}`;n=t&&a[r],n&&o.push(r)}if(!s.length)return a;const u=r.a.findIndex(s,e=>e.id===t.sourceMemberId),c=[...s],p=c.splice(u,1),y=t.destinationMemberId?r.a.findIndex(c,e=>e.id===t.destinationMemberId):c.length;return c.splice(y,0,p[0]),o.forEach(e=>{const t=c.splice(0,d);l[e].data=t}),l}}},428:function(e,t,a){"use strict";var r,i=a(16),s=a(27),l=a(424),o=a(121);a(45);o.a;class n extends o.a{constructor(e,t=""){super({collectionPrefix:"playlist:videos",id:e,cursor:t})}}!function(e){e[e.Queued=1]="Queued",e[e.Processing=2]="Processing",e[e.Processed=3]="Processed",e[e.Errored=4]="Errored"}(r||(r={}));const d={updatePlaylist:(e,t)=>a=>{const r=Object.assign({},a);return r.hasOwnProperty(e)&&(r[e]=Object.assign(Object.assign({},r[e]),t)),r},deletePlaylist:e=>t=>{const a=Object.assign({},t);return a.hasOwnProperty(e)&&delete a[e],a},incrementVideoCount:(e,t)=>a=>{const r=Object.assign({},a);return r.hasOwnProperty(e)?(r[e].videos||(r[e].videos={}),r[e].videos.count=r[e].videos.count?r[e].videos.count+t:t,r):a}};var u=a(128);a.d(t,"a",(function(){return m}));const c=e=>e?"&cursor="+e:"",p=e=>Number.isInteger(e)?"&maxRatingValue="+e:"",y=(e,t)=>`${e}${t?":"+t:""}`,m={getPlaylist:(e,t,a)=>({url:`/api/domain/v2/objects/${e}?query=${s.a.PLAYLIST}`,key:"playlist:"+e,success:t,error:a}),getSharedPlaylist:(e,t,a,r)=>({url:`${"/api/domain/v2/share/"+e}?query=${s.a.PLAYLIST}${p(t)}`,key:"shared:playlist:"+e,success:a,error:r}),getUserPlaylists:e=>({url:`/api/domain/v2/me/playlists?query={${u.a.getFilterFromSort(e.sort)},limit:100}${s.a.PLAYLIST_COLLECTION}${c(e.cursor)}`,key:e.toString()}),getPlaylistVideos(e,t,a){let r="orderBy:orderindex,limit:100";return Number.isInteger(t)&&(r+=",rating.value:0..."+t),{url:`/api/domain/v2/objects/${e}/videos?query={${r}}${s.a.VIDEO_COLLECTION}${c(a)}`,key:y(`playlist:${e}:videos`,a)}},getSharedPlaylistVideos:(e,t,a)=>({url:`/api/domain/v2/share/${e}/videos?query={orderBy:orderindex,limit:100}${s.a.VIDEO_COLLECTION}${c(a)}${p(t)}`,key:y(`shared:playlist:${e}:videos`,a)}),getVideoPlaylists:(e,t,a)=>({url:`/api/domain/v2/objects/${e}/playlists?query={limit:100,owner.id:[${t}]}`,key:y("video:playlists:"+e,a)}),getIsFollowingPlaylist:(e,t)=>({url:`/api/domain/v2/objects/${e}/followers?query={id:${t}}`,key:`playlist:${e}:following:${t}`,formatData:t=>{var a,r;return{objectId:e,isFollowing:!!(null===(r=null===(a=t)||void 0===a?void 0:a.data)||void 0===r?void 0:r.length)}},normalize:!1}),createPlaylist:(e,t,a,r)=>({key:"create:playlist",url:`/api/domain/v2/objects/${e}/playlists`,data:t,type:i.a.POST,success:a,error:r,invalidationKeys:"user:playlists"}),updatePlaylist:(e,t,a,r)=>({key:"update:playlist",url:"/api/domain/v2/objects/"+e,data:t,type:i.a.PUT,success:a,error:r,updateState:{keys:"playlist:"+e,updateData:d.updatePlaylist("playlist:"+e,t)}}),deletePlaylist:(e,t,a)=>({key:"delete:playlist",url:"/api/domain/v2/objects/"+e,type:i.a.DELETE,success:t,error:a,invalidationKeys:"user:playlists",updateState:{keys:"playlist:"+e,updateData:d.deletePlaylist("playlist:"+e)}}),addToPlaylist(e,t,a,r){const s=["user:playlists",new n(e).toString()];return t.forEach(e=>{s.push("video:playlists:"+e)}),{key:"add:to:playlist",url:`/api/domain/v2/objects/${e}/associate`,data:t,type:i.a.POST,success:a,error:r,invalidationKeys:s,updateState:{keys:"playlist:"+e,updateData:d.incrementVideoCount("playlist:"+e,t.length)}}},reorderVideos:(e,t,a,r)=>({key:"reorder:playlist",url:`/api/domain/v2/objects/${e}/videos/reorder`,data:t,type:i.a.PUT,success:a,error:r,invalidationKeys:"user:playlists",updateState:{keys:`playlist:${e}:videos`,updateData:a=>l.a.updateState(`playlist:${e}:videos`,t,a)}}),removePlaylistVideo:(e,t,a,r)=>({key:"remove:playlist:video",url:`/api/domain/v2/objects/${e}/dissociate?memberId=${t}`,type:i.a.DELETE,success:a,error:r,invalidationKeys:["user:playlists",`playlist:${e}:videos`]}),followPlaylist:(e,t)=>({url:"/api/domain/v2/objects/"+t,key:"follow:playlist:"+e,data:{followedPlaylists:e},type:i.a.PUT}),unfollowPlaylist:(e,t)=>({url:`/api/domain/v2/objects/${t}/followedplaylists/${e}`,key:"unfollow:playlist:"+e,type:i.a.DELETE}),getMigrationTask:(e,t)=>({url:"/api/playlist-app/migration-task",key:"migration:task",formatData:e=>e||{status:r.Processed},success:e,error:t})}},436:function(e,t,a){"use strict";var r=a(0),i=a(26);a(7),a(2);const s=r.createContext({});function l(e,t=[]){const{setPageTitle:a}=r.useContext(s);r.useEffect(()=>{e&&i.a.isFunction(a)&&a(e)},[e,...t])}a.d(t,"a",(function(){return l}))},641:function(e,t,a){"use strict";a.r(t),a.d(t,"DeletePlaylistView",(function(){return P}));var r=a(0),i=a(39),s=a(2),l=a(12),o=a(7),n=a(3),d=a(31),u=a(48),c=a(125),p=a(118),y=a(436),m=a(428);function v(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var a=[],r=!0,i=!1,s=void 0;try{for(var l,o=e[Symbol.iterator]();!(r=(l=o.next()).done)&&(a.push(l.value),!t||a.length!==t);r=!0);}catch(e){i=!0,s=e}finally{try{r||null==o.return||o.return()}finally{if(i)throw s}}return a}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return f(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);"Object"===a&&e.constructor&&(a=e.constructor.name);if("Map"===a||"Set"===a)return Array.from(e);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return f(e,t)}(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 f(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,r=new Array(t);a<t;a++)r[a]=e[a];return r}var g=o.a.encloseNamespace("playlists.deletePlaylist");function P(e){var t=Object(i.useDispatch)(),a=v(r.useState(!1),2),o=a[0],f=a[1],P=l.a.useBasicFetch(m.a.getPlaylist(e.playlistId));Object(y.a)(P.data&&"".concat(g("title",{name:P.data.name})),[P.data]);var b=[{variant:"link",onClick:e.closePopup,buttonText:g("keep")},{variant:"danger",onClick:function(){f(!0);l.a.fetch(t,m.a.deletePlaylist(e.playlistId,(function(){e.closePopup(),e.routeToOnDelete&&s.a.AppLinkHelper.trigger(e.routeToOnDelete)}),e.closePopup)),d.a.logUserAction({id:e.playlistId},d.a.mergeOptions(e.analyticsOptions,{actionType:n.n.Delete,entity:n.d.Playlist,workflowPhase:n.o.Complete}))},buttonText:g("confirm"),isSpinnerButton:!0,showSpinner:o}];return r.createElement(u.a.Provider,{value:"playlists.deletePlaylist"},r.createElement(p.a,{title:g("check"),closePopup:e.closePopup,showLoadingSpinner:!P.data},!!P.data&&r.createElement("div",{className:"delete-playlist-container"},r.createElement("div",{className:"delete-playlist-body"},r.createElement("p",null,r.createElement(u.b,{phrase:"warning",options:{name:P.data.name}})),r.createElement("p",null,r.createElement(u.b,{phrase:"videoNote"}))),r.createElement(c.a,{buttons:b}))))}}}]);