@clickview/lite 0.0.24-rc.4 → 0.0.24

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 (194) hide show
  1. package/dist/css/11.chunk.css.map +1 -1
  2. package/dist/css/12.chunk.css.map +1 -1
  3. package/dist/css/13.chunk.css.map +1 -1
  4. package/dist/css/14.chunk.css.map +1 -1
  5. package/dist/css/15.chunk.css.map +1 -1
  6. package/dist/css/16.chunk.css.map +1 -1
  7. package/dist/css/17.chunk.css.map +1 -1
  8. package/dist/css/18.chunk.css.map +1 -1
  9. package/dist/css/20.chunk.css.map +1 -1
  10. package/dist/css/29.chunk.css.map +1 -1
  11. package/dist/css/3.chunk.css.map +1 -1
  12. package/dist/css/30.chunk.css.map +1 -1
  13. package/dist/css/31.chunk.css.map +1 -1
  14. package/dist/css/33.chunk.css.map +1 -1
  15. package/dist/css/38.chunk.css +11 -34
  16. package/dist/css/38.chunk.css.map +1 -1
  17. package/dist/css/4.chunk.css +3 -3
  18. package/dist/css/44.chunk.css +11 -3
  19. package/dist/css/44.chunk.css.map +1 -1
  20. package/dist/css/45.chunk.css +38 -0
  21. package/dist/css/45.chunk.css.map +1 -0
  22. package/dist/css/5.chunk.css.map +1 -1
  23. package/dist/css/52.chunk.css +52 -0
  24. package/dist/css/52.chunk.css.map +1 -0
  25. package/dist/css/59.chunk.css +14 -0
  26. package/dist/css/59.chunk.css.map +1 -0
  27. package/dist/css/6.chunk.css.map +1 -1
  28. package/dist/css/60.chunk.css +43 -0
  29. package/dist/css/60.chunk.css.map +1 -0
  30. package/dist/en.json +1 -1
  31. package/dist/libs/shared/src/components/curriculum-links/CurriculumLinks.d.ts +9 -0
  32. package/dist/libs/shared/src/components/widgets/items/resource-widget-item/ResourceWidgetItem.d.ts +12 -0
  33. package/dist/libs/shared/src/enums/CurriculumType.d.ts +6 -0
  34. package/dist/libs/shared/src/flight-requests/ClassificationRequests.d.ts +1 -0
  35. package/dist/libs/shared/src/flight-requests/ResourceRequests.d.ts +11 -0
  36. package/dist/libs/shared/src/interfaces/collections/SubtitleCollection.d.ts +3 -0
  37. package/dist/libs/shared/src/interfaces/models/Curriculum.d.ts +14 -0
  38. package/dist/libs/shared/src/interfaces/models/FileUpload.d.ts +20 -0
  39. package/dist/libs/shared/src/interfaces/models/Language.d.ts +4 -0
  40. package/dist/libs/shared/src/interfaces/models/Pdf.d.ts +4 -0
  41. package/dist/libs/shared/src/interfaces/models/Subtitle.d.ts +7 -0
  42. package/dist/libs/shared/src/interfaces/models/index.d.ts +1 -0
  43. package/dist/libs/shared/src/interfaces/requests/UpdateObjectChannel.d.ts +3 -0
  44. package/dist/libs/shared/src/interfaces/requests/UpdateObjectRating.d.ts +3 -0
  45. package/dist/libs/shared/src/interfaces/requests/UpdateResourceRequest.d.ts +3 -0
  46. package/dist/projects/lite/src/app.d.ts +1 -0
  47. package/dist/projects/lite/src/shared/components/play-page/PlayPage.d.ts +2 -1
  48. package/dist/projects/lite/src/shared/components/synopsis/Synopsis.d.ts +3 -1
  49. package/dist/projects/lite/src/shared/components/video-details/VideoDetails.d.ts +2 -0
  50. package/dist/projects/lite/src/shared/constants/MinimumGlanceHeight.d.ts +1 -0
  51. package/dist/projects/lite/src/shared/views/preview-pdf/PreviewPdfView.d.ts +7 -0
  52. package/dist/scripts/0-b02efe11fb.chunk.js +1 -0
  53. package/dist/scripts/1-4f19a5caea.chunk.js +17 -0
  54. package/dist/scripts/1.chunk.js.map +1 -1
  55. package/dist/scripts/10.chunk.js +484 -1203
  56. package/dist/scripts/10.chunk.js.map +1 -1
  57. package/dist/scripts/11-32e30d10ce.chunk.js +1 -0
  58. package/dist/scripts/11.chunk.js +289 -1388
  59. package/dist/scripts/11.chunk.js.map +1 -1
  60. package/dist/scripts/12-72a5373486.chunk.js +1 -0
  61. package/dist/scripts/12.chunk.js +1371 -283
  62. package/dist/scripts/12.chunk.js.map +1 -1
  63. package/dist/scripts/13-1cd85ad3ee.chunk.js +1 -0
  64. package/dist/scripts/13.chunk.js +361 -394
  65. package/dist/scripts/13.chunk.js.map +1 -1
  66. package/dist/scripts/14-3d60b8ee85.chunk.js +1 -0
  67. package/dist/scripts/14.chunk.js +793 -332
  68. package/dist/scripts/14.chunk.js.map +1 -1
  69. package/dist/scripts/15-90226fb996.chunk.js +1 -0
  70. package/dist/scripts/15.chunk.js +295 -214
  71. package/dist/scripts/15.chunk.js.map +1 -1
  72. package/dist/scripts/16-913b2535ea.chunk.js +1 -0
  73. package/dist/scripts/16.chunk.js +530 -434
  74. package/dist/scripts/16.chunk.js.map +1 -1
  75. package/dist/scripts/17-d6c19ccb60.chunk.js +1 -0
  76. package/dist/scripts/17.chunk.js +296 -170
  77. package/dist/scripts/17.chunk.js.map +1 -1
  78. package/dist/scripts/18-33efcac0c6.chunk.js +1 -0
  79. package/dist/scripts/18.chunk.js +265 -199
  80. package/dist/scripts/18.chunk.js.map +1 -1
  81. package/dist/scripts/19-2380200cfb.chunk.js +1 -0
  82. package/dist/scripts/19.chunk.js +7 -3
  83. package/dist/scripts/19.chunk.js.map +1 -1
  84. package/dist/scripts/2-53e37c2047.chunk.js +1 -0
  85. package/dist/scripts/2.chunk.js +18673 -622
  86. package/dist/scripts/2.chunk.js.map +1 -1
  87. package/dist/scripts/20-ca85f0514e.chunk.js +1 -0
  88. package/dist/scripts/20.chunk.js +1824 -221
  89. package/dist/scripts/20.chunk.js.map +1 -1
  90. package/dist/scripts/21-ef4a226771.chunk.js +1 -0
  91. package/dist/scripts/22-99c04e164f.chunk.js +1 -0
  92. package/dist/scripts/23-028eb81a43.chunk.js +1 -0
  93. package/dist/scripts/23.chunk.js +1 -1
  94. package/dist/scripts/23.chunk.js.map +1 -1
  95. package/dist/scripts/24-68f8df3eca.chunk.js +1 -0
  96. package/dist/scripts/24.chunk.js.map +1 -1
  97. package/dist/scripts/25-7ad07f87d4.chunk.js +1 -0
  98. package/dist/scripts/25.chunk.js.map +1 -1
  99. package/dist/scripts/26-f3dcacfe4f.chunk.js +1 -0
  100. package/dist/scripts/26.chunk.js +1 -1
  101. package/dist/scripts/26.chunk.js.map +1 -1
  102. package/dist/scripts/27-e844268f38.chunk.js +1 -0
  103. package/dist/scripts/28-853bc5de1f.chunk.js +1 -0
  104. package/dist/scripts/29-b164ecafe9.chunk.js +1 -0
  105. package/dist/scripts/29.chunk.js +435 -500
  106. package/dist/scripts/29.chunk.js.map +1 -1
  107. package/dist/scripts/3-a1bd8c9016.chunk.js +7 -0
  108. package/dist/scripts/3.chunk.js +625 -18676
  109. package/dist/scripts/3.chunk.js.map +1 -1
  110. package/dist/scripts/30-2cfcf52ea1.chunk.js +1 -0
  111. package/dist/scripts/30.chunk.js +634 -429
  112. package/dist/scripts/30.chunk.js.map +1 -1
  113. package/dist/scripts/31-e6a8291d2f.chunk.js +1 -0
  114. package/dist/scripts/31.chunk.js +371 -670
  115. package/dist/scripts/31.chunk.js.map +1 -1
  116. package/dist/scripts/32-7030dc98ed.chunk.js +1 -0
  117. package/dist/scripts/32.chunk.js +27 -54
  118. package/dist/scripts/32.chunk.js.map +1 -1
  119. package/dist/scripts/33-47b0ac90bd.chunk.js +1 -0
  120. package/dist/scripts/33.chunk.js +700 -312
  121. package/dist/scripts/33.chunk.js.map +1 -1
  122. package/dist/scripts/34-2de007b628.chunk.js +1 -0
  123. package/dist/scripts/34.chunk.js +3 -3
  124. package/dist/scripts/34.chunk.js.map +1 -1
  125. package/dist/scripts/35-d2fb66920b.chunk.js +1 -0
  126. package/dist/scripts/36-bc85df33de.chunk.js +1 -0
  127. package/dist/scripts/36.chunk.js.map +1 -1
  128. package/dist/scripts/37-e26652840b.chunk.js +1 -0
  129. package/dist/scripts/37.chunk.js +288 -464
  130. package/dist/scripts/37.chunk.js.map +1 -1
  131. package/dist/scripts/38-0b6a6b9619.chunk.js +1 -0
  132. package/dist/scripts/39-6549f483c6.chunk.js +1 -0
  133. package/dist/scripts/39.chunk.js +1 -1
  134. package/dist/scripts/39.chunk.js.map +1 -1
  135. package/dist/scripts/4-9e83a22d7a.chunk.js +1 -0
  136. package/dist/scripts/4.chunk.js +259 -1021
  137. package/dist/scripts/4.chunk.js.map +1 -1
  138. package/dist/scripts/40-8e6e9d285f.chunk.js +1 -0
  139. package/dist/scripts/41-2b44a2e66f.chunk.js +1 -0
  140. package/dist/scripts/42-9e75f420d8.chunk.js +1 -0
  141. package/dist/scripts/42.chunk.js.map +1 -1
  142. package/dist/scripts/43-1141245420.chunk.js +1 -0
  143. package/dist/scripts/44-9bc4201e0f.chunk.js +1 -0
  144. package/dist/scripts/45-5ded8ca3db.chunk.js +1 -0
  145. package/dist/scripts/46-2afd7ee1fb.chunk.js +1 -0
  146. package/dist/scripts/47-ab30686138.chunk.js +1 -0
  147. package/dist/scripts/48-d9cd99d55e.chunk.js +1 -0
  148. package/dist/scripts/49-f43a08f90b.chunk.js +1 -0
  149. package/dist/scripts/5-974660e17b.chunk.js +1 -0
  150. package/dist/scripts/5.chunk.js +1017 -259
  151. package/dist/scripts/5.chunk.js.map +1 -1
  152. package/dist/scripts/50-af699c531e.chunk.js +1 -0
  153. package/dist/scripts/51-aa7b835007.chunk.js +1 -0
  154. package/dist/scripts/52-805f7fe04d.chunk.js +1 -0
  155. package/dist/scripts/53-d75ca53045.chunk.js +1 -0
  156. package/dist/scripts/54-2e75bad46f.chunk.js +1 -0
  157. package/dist/scripts/55-ed637c4847.chunk.js +1 -0
  158. package/dist/scripts/55.chunk.js.map +1 -1
  159. package/dist/scripts/56-2ed3b5764b.chunk.js +1 -0
  160. package/dist/scripts/57-e51101c8a1.chunk.js +1 -0
  161. package/dist/scripts/58-9a32a6fb2d.chunk.js +1 -0
  162. package/dist/scripts/59-da8a8c97a9.chunk.js +1 -0
  163. package/dist/scripts/6-6ac39034e0.chunk.js +1 -0
  164. package/dist/scripts/6.chunk.js +291 -1250
  165. package/dist/scripts/6.chunk.js.map +1 -1
  166. package/dist/scripts/60-5713de53e2.chunk.js +1 -0
  167. package/dist/scripts/61-7d2ad17963.chunk.js +1 -0
  168. package/dist/scripts/62-a0a69501ac.chunk.js +1 -0
  169. package/dist/scripts/63-c921b87f3f.chunk.js +1 -0
  170. package/dist/scripts/64-87c1cf6985.chunk.js +1 -0
  171. package/dist/scripts/65-2322082836.chunk.js +1 -0
  172. package/dist/scripts/66-6d5356f6ce.chunk.js +1 -0
  173. package/dist/scripts/67-2e0d661c52.chunk.js +1 -0
  174. package/dist/scripts/7-5ac5be64dd.chunk.js +1 -0
  175. package/dist/scripts/7.chunk.js +1 -1
  176. package/dist/scripts/76.chunk.js +3 -3
  177. package/dist/scripts/76.chunk.js.map +1 -1
  178. package/dist/scripts/79.chunk.js +931 -347
  179. package/dist/scripts/79.chunk.js.map +1 -1
  180. package/dist/scripts/8-95563e3d36.chunk.js +1 -0
  181. package/dist/scripts/8.chunk.js +14 -920
  182. package/dist/scripts/8.chunk.js.map +1 -1
  183. package/dist/scripts/80.chunk.js +22 -313
  184. package/dist/scripts/80.chunk.js.map +1 -1
  185. package/dist/scripts/9.chunk.js +320 -17
  186. package/dist/scripts/9.chunk.js.map +1 -1
  187. package/dist/scripts/bundle-9ed1e126dd.min.js +15 -0
  188. package/dist/scripts/bundle.js +147 -121
  189. package/dist/scripts/bundle.js.map +1 -1
  190. package/dist/scripts/bundles.json +2 -2
  191. package/dist/scripts/pdf.worker.entry.worker.js +46239 -0
  192. package/dist/scripts/pdf.worker.entry.worker.js.map +1 -0
  193. package/dist/scripts/polyfills-2723daf478.min.js +1 -0
  194. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"sources":["file://C:/ClickView Projects/@clickview/packages/libs/shared/src/flight-requests/FavouriteVideoRequests.ts","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/flight-requests/ThemeRequests.ts","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/watch-history/flight-requests/VideoHistoryRequests.ts","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/shared/hooks/useHandleObjectError.ts","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/shared/hooks/useVideoMixin.ts","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/shared/views/play/PlayView.tsx"],"names":[],"mappings":"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","file":"scripts/13.chunk.js","sourcesContent":["import { Flight } from 'libs/common/flight';\r\nimport { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\r\nimport { Xhr } from 'libs/common/backbone/interfaces';\r\nimport { HashObject } from 'libs/common/react/interfaces/HashObject';\r\n\r\nimport { SharedWithStatements } from 'libs/shared/constants/WithStatements';\r\n\r\nfunction favouriteVideo(\r\n videoId: string, userId: string, success?: () => void, error?: (Xhr: Xhr) => void\r\n): Flight.Request {\r\n return {\r\n url: `/api/domain/v2/objects/${userId}`,\r\n key: `favourite:video:${userId}:${videoId}`,\r\n data: { favouriteVideos: videoId },\r\n type: HttpVerbs.PUT,\r\n invalidationKeys: [ `favourite:videos:${userId}`, `video:is:favourited:${userId}` ],\r\n success,\r\n error\r\n };\r\n}\r\n\r\nfunction unfavouriteVideo(\r\n videoId: string, userId: string, success?: () => void, error?: (Xhr: Xhr) => void\r\n): Flight.Request {\r\n return {\r\n url: `/api/domain/v2/objects/${userId}/favouriteVideos/${videoId}`,\r\n key: `favourite:video:${userId}:${videoId}`,\r\n type: HttpVerbs.DELETE,\r\n invalidationKeys: [ `favourite:videos:${userId}`, `video:is:favourited:${userId}` ],\r\n success,\r\n error\r\n };\r\n}\r\n\r\nexport const FavouriteVideoRequests = {\r\n favouriteVideos(userId: string, cursor?: string): Flight.Request {\r\n const query = `${SharedWithStatements.VIDEO_COLLECTION}${addCursor(cursor)}`;\r\n\r\n return {\r\n url: `/api/domain/v2/objects/${userId}/favouriteVideos?query=${query}`,\r\n key: `favourite:videos:${userId}${cursor ? `:${cursor}` : ''}`\r\n };\r\n },\r\n\r\n updateIsVideoFavourited(\r\n videoId: string, userId: string, shouldFavourite: boolean, success?: () => void, error?: (Xhr: Xhr) => void\r\n ): Flight.Request {\r\n const requestFn = shouldFavourite\r\n ? favouriteVideo\r\n : unfavouriteVideo;\r\n\r\n return requestFn(videoId, userId, success, error);\r\n },\r\n\r\n isFavourited(userId: string, ids: string[]): Flight.Request {\r\n const sortedIds = ids.slice().sort();\r\n\r\n const params = sortedIds.map(i => `id=${i}`);\r\n\r\n if (!params.length)\r\n return;\r\n\r\n return {\r\n url: `/api/domain/v2/objects?query=favouritedBy{id:${userId}}&${params.join('&')}`,\r\n key: `video:is:favourited:${userId}:by:id:${sortedIds.join(',')}`,\r\n formatData: (videos: HashObject[]) => {\r\n if (!videos?.length)\r\n return videos;\r\n\r\n const setIsFavourited = (video: HashObject) => {\r\n const { favouritedBy, ...v } = video;\r\n\r\n // As we filtered by userId, if there are any users, set isFavourited to true.\r\n return {\r\n ...v,\r\n isFavourited: !!favouritedBy?.data?.length\r\n };\r\n };\r\n\r\n return videos.map(setIsFavourited);\r\n }\r\n };\r\n }\r\n};\r\n\r\nfunction addCursor(cursor: string): string {\r\n return cursor ? `&cursor=${cursor}` : '';\r\n}","import { Flight } from 'libs/common/flight';\r\nimport { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\r\nimport { HashObject } from 'libs/common/react/interfaces/HashObject';\r\nimport { Xhr } from 'libs/common/backbone/interfaces';\r\nimport { Theme } from 'libs/shared/interfaces';\r\n\r\nexport const ThemeRequests = {\r\n theme(id: string): Flight.Request {\r\n return {\r\n url: `/api/domain/v1/themes/${id}`,\r\n key: `themes:${id}`\r\n };\r\n },\r\n\r\n themes(type?: string): Flight.Request {\r\n let url = '/api/domain/v1/themes';\r\n let key = 'themes';\r\n\r\n if (type) {\r\n url += `?type=${type}`;\r\n key += `:type:${type}`;\r\n }\r\n\r\n return {\r\n url,\r\n key\r\n };\r\n },\r\n\r\n createTheme(\r\n data: Theme,\r\n success?: (data: HashObject) => void,\r\n error?: (xhr: Xhr) => void,\r\n always?: () => void\r\n ): Flight.Request {\r\n return {\r\n url: '/api/domain/v1/themes',\r\n key: 'theme',\r\n data,\r\n type: HttpVerbs.POST,\r\n invalidationKeys: 'themes',\r\n success,\r\n error,\r\n always\r\n };\r\n },\r\n\r\n updateTheme(\r\n id: string,\r\n data: Theme,\r\n success?: (data: HashObject) => void,\r\n error?: (xhr: Xhr) => void,\r\n always?: () => void\r\n ): Flight.Request {\r\n return {\r\n url: `/api/domain/v1/themes/${id}`,\r\n key: `update:theme:${id}`,\r\n data,\r\n type: HttpVerbs.PUT,\r\n success,\r\n error,\r\n always\r\n };\r\n },\r\n\r\n deleteTheme(\r\n id: string,\r\n success?: (data: HashObject) => void,\r\n error?: (xhr: Xhr) => void,\r\n always?: () => void\r\n ): Flight.Request {\r\n return {\r\n url: `/api/domain/v1/themes/${id}`,\r\n key: `delete:theme:${id}`,\r\n type: HttpVerbs.DELETE,\r\n invalidationKeys: 'themes',\r\n success,\r\n error,\r\n always\r\n };\r\n }\r\n};","import { Flight } from 'libs/common/flight';\r\nimport { HashObject } from 'libs/common/react/interfaces';\r\nimport { Xhr } from 'libs/common/backbone/interfaces';\r\n\r\nexport const VideoHistoryRequests = {\r\n userVideoHistory(\r\n customerId: string,\r\n userId: string,\r\n cursor?: string,\r\n success?: (data: HashObject) => void,\r\n error?: (Xhr: Xhr) => void,\r\n always?: () => void\r\n ): Flight.Request {\r\n let key = `video:history:${customerId}:${userId}`;\r\n let url = `/api/videoviews/v1/customers/${customerId}/users/${userId}/videos/history`;\r\n\r\n if (cursor) {\r\n key += `:${cursor}`;\r\n url += `?cursor=${cursor}`;\r\n }\r\n\r\n return {\r\n key,\r\n url,\r\n success,\r\n error,\r\n always\r\n };\r\n },\r\n\r\n videoHistory(\r\n customerId: string,\r\n userId: string,\r\n ids: string[],\r\n success?: (data: HashObject) => void,\r\n error?: (Xhr: Xhr) => void,\r\n always?: () => void\r\n ): Flight.Request {\r\n const params = ids.sort().map(i => `videoId=${i}`);\r\n\r\n return {\r\n key: `video:history:${customerId}:${userId}:videos:${params.join('&')}`,\r\n url: `/api/videoviews/v1/customers/${customerId}/users/${userId}/videos/history?${params.join('&')}`,\r\n formatData: (historyCollection: HashObject[]) => {\r\n if (!historyCollection?.length)\r\n return historyCollection;\r\n\r\n /**\r\n * Data is formatted to enable it to be merged with the existing video object in the store\r\n * Where we need to merge more history properties with the video object, map them below.\r\n */\r\n return historyCollection.map((watchHistory: HashObject) => ({\r\n id: watchHistory.videoId,\r\n lastProgressPoint: watchHistory.lastProgressPoint\r\n }));\r\n },\r\n success,\r\n error,\r\n always\r\n };\r\n }\r\n};","import { Core } from 'libs/common/core';\r\nimport { Flight } from 'libs/common/flight';\r\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\r\n\r\nimport { BaseObject, CurrentUser } from 'libs/shared/interfaces';\r\nimport { BaseError } from 'libs/common/backbone/core/BaseError';\r\n\r\nimport { NotFoundError } from 'shared/errors/general/not-found/LiteNotFoundError';\r\nimport { UnspecifiedError } from 'shared/errors/general/unspecified-error/UnspecifiedError';\r\nimport { PrivateResourceError } from 'shared/errors/general/private-resource/PrivateResourceError';\r\nimport { RegionLockedResourceError } from 'shared/errors/general/region-locked-resource/RegionLockedResourceError';\r\n\r\ninterface ErrorMap {\r\n notFound?: new () => BaseError;\r\n forbidden?: {\r\n rating?: new (description: string) => BaseError;\r\n yearLevel?: new (description: string) => BaseError;\r\n region?: new () => BaseError;\r\n privacy?: new () => BaseError;\r\n };\r\n badRequest?: new () => BaseError;\r\n}\r\n\r\nconst defaultErrors: ErrorMap = {\r\n notFound: NotFoundError,\r\n forbidden: {\r\n rating: PrivateResourceError,\r\n yearLevel: PrivateResourceError,\r\n region: RegionLockedResourceError,\r\n privacy: PrivateResourceError\r\n },\r\n badRequest: UnspecifiedError\r\n};\r\n\r\nexport function useHandleObjectError(\r\n object: Flight.Response<BaseObject>,\r\n customErrors: ErrorMap,\r\n currentUser: CurrentUser\r\n): void {\r\n const errors = {\r\n ...defaultErrors,\r\n ...customErrors\r\n };\r\n\r\n if (!object.statusCode || object.statusCode === HttpStatus.Ok)\r\n return;\r\n\r\n if (object.statusCode === HttpStatus.NotFound) {\r\n Core.ErrorHelper.throw(new errors.notFound());\r\n return;\r\n }\r\n\r\n if (object.statusCode === HttpStatus.Forbidden) {\r\n /**\r\n * TODO: Work out how to go about handling all forbidden errors, such as region locking, year levels,\r\n * ratings, and privacy.\r\n */\r\n Core.ErrorHelper.throw(new errors.forbidden.privacy());\r\n return;\r\n }\r\n\r\n Core.ErrorHelper.throw(new errors.badRequest());\r\n}","import { Flight } from 'libs/common/flight';\r\nimport { VideoCollection, Video, CurrentUser } from 'libs/shared/interfaces';\r\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\r\nimport { FavouriteVideoRequests } from 'libs/shared/flight-requests/FavouriteVideoRequests';\r\n\r\nimport { VideoRequests } from 'shared/flight-requests/VideoRequests';\r\nimport { VideoHistoryRequests } from 'apps/watch-history/flight-requests/VideoHistoryRequests';\r\n\r\ninterface VideoMixinOptions {\r\n ratings?: boolean;\r\n favourites?: boolean;\r\n watchHistory?: boolean;\r\n}\r\n\r\nconst defaults: VideoMixinOptions = {\r\n ratings: true,\r\n favourites: true,\r\n watchHistory: true,\r\n};\r\n\r\nfunction fetchAttribute(videosFetched: boolean, request: Flight.Request): void {\r\n const attribute = Flight.useGetResponse<VideoCollection>(request?.key);\r\n const fetch = Flight.useGetFetch(request);\r\n\r\n if (videosFetched && request && attribute.shouldFetch)\r\n fetch();\r\n}\r\n\r\nexport function useVideoMixin(videos: VideoCollection | Video[], options: VideoMixinOptions = {}): void {\r\n const { ratings, favourites, watchHistory } = { ...defaults, ...options };\r\n\r\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\r\n\r\n const videoIds = videos && (Array.isArray(videos)\r\n ? videos.filter(Boolean).map(v => v.id)\r\n : videos.data.filter(Boolean).map(v => v.id));\r\n\r\n const user = currentUser.data;\r\n\r\n let requests: Flight.Request[] = [];\r\n\r\n if (ratings)\r\n requests = [ ...requests, !!videoIds?.length && VideoRequests.videoRatings(videoIds) ];\r\n\r\n if (favourites)\r\n requests = [ ...requests, !!videoIds?.length && user && FavouriteVideoRequests.isFavourited(user.id, videoIds) ];\r\n\r\n if (watchHistory)\r\n requests = [ ...requests, !!videoIds?.length && user &&\r\n VideoHistoryRequests.videoHistory( user.customerId, user.id, videoIds) ];\r\n\r\n requests.forEach(r => fetchAttribute(!!videos, r));\r\n}","import * as React from 'react';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport { Flight } from 'libs/common/flight';\r\nimport { useViewModel } from 'libs/common/react/hooks/useViewModel';\r\nimport { Video, VideoCollection, CurrentUser, Theme } from 'libs/shared/interfaces';\r\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\r\nimport { FavouriteVideoRequests } from 'libs/shared/flight-requests/FavouriteVideoRequests';\r\nimport { ThemeRequests } from 'libs/shared/flight-requests/ThemeRequests';\r\nimport { useSetPageTitle } from 'libs/common/react/hooks/UseSetPageTitle';\r\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\r\nimport { EntityType, UserAction, LocationContext, WorkflowPhase, ToggleDescriptor } from 'libs/analytics/interfaces';\r\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\n\r\nimport { VideoRequests } from 'shared/flight-requests/VideoRequests';\r\nimport { PlayPage } from 'shared/components/play-page/PlayPage';\r\nimport { ViewModelKeys } from 'shared/constants/LiteViewModels';\r\nimport { VideoNotFoundError } from 'shared/errors/videos/video-not-found/LiteVideoNotFoundError';\r\nimport { VideoPrivateError } from 'shared/errors/videos/video-private/VideoPrivateError';\r\nimport { useHandleObjectError } from 'shared/hooks/useHandleObjectError';\r\nimport { useVideoMixin } from 'shared/hooks/useVideoMixin';\r\n\r\nconst namespace = 'shared.play';\r\n\r\nconst videoErrors = {\r\n notFound: VideoNotFoundError,\r\n forbidden: {\r\n privacy: VideoPrivateError\r\n }\r\n};\r\n\r\ninterface PlayViewProps {\r\n id: string;\r\n startTime?: number; // Timepoint in seconds\r\n}\r\n\r\nexport function PlayView(props: PlayViewProps): React.ReactElement {\r\n const dispatch = useDispatch();\r\n const alerts = useAlerts();\r\n\r\n const [ currentPlayerData, setPlayerData ] = useViewModel(ViewModelKeys.WEB_PLAYER_DATA);\r\n\r\n const video = Flight.useBasicFetch<Video>(VideoRequests.video(props.id));\r\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\r\n // const relatedVideos = Flight.useBasicFetch<VideoCollection>(!!currentUser.data &&\r\n // FavouriteVideoRequests.favouriteVideos(currentUser.data.id));\r\n const glanceTheme = Flight.useBasicFetch<Theme>(video.data?.glance?.theme\r\n ? ThemeRequests.theme(video.data.glance.theme) : null);\r\n\r\n useSetPageTitle(video.data?.name);\r\n useHandleObjectError(video, videoErrors, currentUser.data);\r\n\r\n useVideoMixin([video.data]);\r\n\r\n function setFavourite(_video: Video, shouldFavourite: boolean, onError?: () => void): void {\r\n Flight.fetch(\r\n dispatch,\r\n FavouriteVideoRequests.updateIsVideoFavourited(_video.id, currentUser.data.id, shouldFavourite, () => {\r\n AnalyticsHelper.logUserAction({ id: _video.id }, {\r\n entity: EntityType.Video,\r\n actionType: UserAction.Favourite,\r\n descriptor: shouldFavourite ? ToggleDescriptor.On : ToggleDescriptor.Off,\r\n location: LocationContext.PlayPage,\r\n workflowPhase: WorkflowPhase.Complete\r\n });\r\n\r\n alerts.success(LanguageService.getPhrase(\r\n namespace,\r\n shouldFavourite ? 'favourited' : 'unfavourited',\r\n { video: _video.name }\r\n ));\r\n }, onError)\r\n );\r\n }\r\n\r\n React.useEffect(() => {\r\n if (!video.data)\r\n return;\r\n\r\n setPlayerData('video', video.data);\r\n\r\n const newVideo = currentPlayerData.video?.id !== video.data.id;\r\n const newStartTime = Number.isInteger(props.startTime) && props.startTime !== currentPlayerData.startTime;\r\n\r\n /**\r\n * Only update start time if the video has changed or if a new startTime has been passed as a prop.\r\n * \r\n * We must set startTime as something other than undefined (i.e. a number) otherwise the ViewModelReducer\r\n * won't recognise that it's a KVP.\r\n */\r\n if (newVideo || newStartTime)\r\n setPlayerData('startTime', props.startTime || 0);\r\n }, [ !!video.data, props.startTime ]);\r\n\r\n if (!video.data || !currentUser.data)\r\n return <></>;\r\n\r\n return (\r\n <div className='px-3'>\r\n <PlayPage\r\n video={video.data}\r\n glanceTheme={glanceTheme.data}\r\n // relatedVideos={relatedVideos.data ? relatedVideos.data.data : null}\r\n setFavourite={setFavourite}\r\n />\r\n </div>\r\n );\r\n}"],"sourceRoot":""}
1
+ {"version":3,"sources":["file://C:/ClickView Projects/@clickview/packages/libs/common/src/react/utils/TypeHelper.ts","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/search-bar/SearchBar.tsx","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/search-bar/SearchInput.tsx","file://C:/ClickView Projects/@clickview/packages/libs/shared/src/components/search-bar/SearchUtils.tsx","webpack://@clickview/lite/C:/ClickView Projects/@clickview/packages/libs/shared/src/components/search-bar/search-bar.scss?d22e"],"names":[],"mappings":"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","file":"scripts/13.chunk.js","sourcesContent":["export const TypeHelper = {\r\n isNumber(obj: any): boolean {\r\n return TypeHelper.isType(obj, 'number');\r\n },\r\n\r\n isString(obj: any): boolean {\r\n return TypeHelper.isType(obj, 'string');\r\n },\r\n\r\n isType(obj: any, type: string): boolean {\r\n return typeof obj === type;\r\n }\r\n};","import * as React from 'react';\r\nimport * as Autosuggest from 'react-autosuggest';\r\n\r\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\r\nimport { HashObject } from 'libs/common/react/interfaces/HashObject';\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\n\r\nimport { useMediaQuery } from 'libs/shared/hooks/UseMediaQuery';\r\nimport { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\r\n\r\nimport * as SearchUtils from './SearchUtils';\r\nimport { SearchInput } from './SearchInput';\r\n\r\nconst namespace = 'shared.searchBar';\r\n\r\nconst isFunction = FunctionHelper.isFunction;\r\n\r\ninterface SearchBarWrapperProps {\r\n renderAsForm: boolean;\r\n onSubmit: (event: React.FormEvent) => void;\r\n}\r\n\r\nfunction SearchBarWrapper(props: React.PropsWithChildren<SearchBarWrapperProps>): JSX.Element {\r\n if (!props.renderAsForm)\r\n return (\r\n <>\r\n {props.children}\r\n </>\r\n );\r\n\r\n return (\r\n <form onSubmit={props.onSubmit}>\r\n {props.children}\r\n </form>\r\n );\r\n}\r\n\r\nexport interface SearchBarProps<T extends HashObject> {\r\n /**\r\n * Optional initial query. Useful for populating the search bar\r\n * on a search results page.\r\n */\r\n initialQuery?: string;\r\n\r\n /**\r\n * Callback function for when a suggestion is selected.\r\n */\r\n onSuggestionSelected: (suggestion: T) => void;\r\n\r\n /**\r\n * Flag to determine if the query should be updated when a\r\n * suggestion is selected. Defaults to `true` in `defaultProps`.\r\n * If true, SearchUtils.getSuggestionValue is used to update the query.\r\n */\r\n updateQueryOnSelection?: boolean;\r\n\r\n /**\r\n * Optional callback for when the search query changes.\r\n */\r\n onQueryChange?: (query: string) => void;\r\n\r\n /**\r\n * Optional callback for when the search is submitted.\r\n */\r\n onSubmit?: (query: string) => void;\r\n\r\n /**\r\n * Optional callback to get the remote resource if remote search\r\n * results are being used.\r\n */\r\n getRemoteUrl?: (query: string) => string;\r\n\r\n /**\r\n * Optional formatting function for the data returned from the remote resource.\r\n */\r\n formatRemoteSuggestions?: (data: any) => T[];\r\n\r\n /**\r\n * Optional array of recent searches.\r\n */\r\n recentSearches?: T[];\r\n\r\n /**\r\n * A label for the recent search section.\r\n * A default is provided in the i18n config.\r\n */\r\n recentSearchHeading?: string;\r\n\r\n /**\r\n * A label for the main suggestions section.\r\n * Will not be used if getSections is passed as a prop.\r\n */\r\n suggestionsHeading?: string;\r\n\r\n /**\r\n * Optional array of local data to be used as suggestion sources.\r\n */\r\n local?: T[];\r\n\r\n /**\r\n * Optional array of initial suggestions. These suggestions will be available\r\n * when no query is present. Entering a query will begin filtering suggestions.\r\n * This is useful for using SearchBar to filter a list.\r\n */\r\n initialSuggestions?: T[];\r\n\r\n /**\r\n * Key used to filter local data. This is required if local is provided,\r\n * however a default of 'name' is set in `defaultProps`.\r\n */\r\n valueKey?: keyof T;\r\n\r\n /**\r\n * Optional function to filter suggestions from local data.\r\n * SearchUtils.getLocalSuggestions will be used by default.\r\n */\r\n getLocalSuggestions?: (query: string, local: T[]) => T[];\r\n\r\n /**\r\n * Optional function for splitting suggestions into sections.\r\n * Doesn't apply to recent searches (SuggestionType.Recent).\r\n */\r\n getSections?: (suggestions: T[]) => SearchUtils.SuggestionSection<T>[];\r\n\r\n /**\r\n * Placeholder for the search input.\r\n * A default is provided in the i18n config.\r\n */\r\n placeholder?: string;\r\n\r\n /**\r\n * The number of characters required to begin providing suggestions.\r\n * A default is provided in `defaultProps`.\r\n */\r\n activationLength?: number;\r\n\r\n /**\r\n * Max number of suggestions to render. A default is set in `defaultProps`.\r\n * Set to false to render all suggestions (e.g. for filtering a list in memory).\r\n */\r\n suggestionLimit?: number | false;\r\n\r\n /**\r\n * Callback function to get the component to be rendered for a suggestion.\r\n * SearchUtils.getSuggestionComponent is used a default. This uses\r\n * `valueKey` to render text.\r\n */\r\n getSuggestionComponent?: (suggestion: T) => JSX.Element;\r\n\r\n /**\r\n * If true, suggestions will be rendered, even if the input isn't focussed.\r\n */\r\n alwaysRenderSuggestions?: boolean;\r\n\r\n /*\r\n * Optional theme hash to override `defaultTheme` in SearchUtils.\r\n */\r\n theme?: Autosuggest.Theme;\r\n\r\n /**\r\n * Option to determine whether to render the search icon and if so,\r\n * which side to render it on. Defaults to `right` in `defaultProps`\r\n */\r\n searchIconPlacement?: 'left' | 'right' | false;\r\n\r\n /**\r\n * If true, a cross svg will be rendered.\r\n * Clicking this icon will reset the query.\r\n */\r\n showClearInputIcon?: boolean;\r\n\r\n /**\r\n * Optional callback function to be called when the clear input\r\n * icon is clicked.\r\n * The query will be reset automatically, this callback is for\r\n * adding additional functionality.\r\n */\r\n onClickClearInput?: () => void;\r\n\r\n /**\r\n * Flag to determine whether clicking the search icon should trigger\r\n * submitting the search query.\r\n */\r\n submitOnClickSearchIcon?: boolean;\r\n\r\n /**\r\n * Flag to determine whether the search input should be autofocused.\r\n */\r\n autoFocusInput?: boolean;\r\n\r\n /**\r\n * If true, the default Bootstrap styling will be applied when the\r\n * input is focused.\r\n */\r\n highlightInputOnFocus?: boolean;\r\n\r\n /**\r\n * When true, the input field will be cleared whenever a suggestion is selected.\r\n */\r\n clearQueryOnSelect?: boolean;\r\n\r\n onBackspace?: () => void;\r\n\r\n /**\r\n * When true, the search input will be wrapped in a <form />.\r\n * This is true by default.\r\n * If rendering <SearchBar /> within another form, set this to false.\r\n */\r\n renderAsForm?: boolean;\r\n}\r\n\r\nSearchBar.defaultProps = {\r\n updateQueryOnSelection: true,\r\n valueKey: 'name',\r\n activationLength: 3,\r\n suggestionLimit: 5,\r\n recentSearches: [],\r\n initialSuggestions: [],\r\n searchIconPlacement: 'right',\r\n renderAsForm: true\r\n};\r\n\r\nexport function SearchBar<T extends HashObject>(props: SearchBarProps<T>): JSX.Element {\r\n const initialState = SearchUtils.getInitialState(props.initialSuggestions, props.recentSearches);\r\n\r\n const [ query, setQuery ] = React.useState(props.initialQuery || '');\r\n const [ suggestions, setSuggestions ] = React.useState<SearchUtils.SuggestionState<T>>(initialState);\r\n\r\n const isMobile = useMediaQuery(MediaQueryStrings.XS);\r\n\r\n React.useEffect(() => {\r\n const initialQuery = props.initialQuery || '';\r\n\r\n if (query !== initialQuery)\r\n setQuery(initialQuery);\r\n }, [props.initialQuery]);\r\n\r\n const resetSuggestions = () => {\r\n setSuggestions(initialState);\r\n };\r\n\r\n const onChange = (e: React.ChangeEvent, { newValue }: Autosuggest.ChangeEvent) => {\r\n setQuery(newValue);\r\n\r\n if (isFunction(props.onQueryChange))\r\n props.onQueryChange(newValue);\r\n };\r\n\r\n const onSubmit = (event: React.FormEvent) => {\r\n event.preventDefault();\r\n\r\n if (isFunction(props.onSubmit))\r\n props.onSubmit(query);\r\n };\r\n\r\n const onKeyDown = (event: React.KeyboardEvent) => {\r\n if (event.keyCode === 8 && props.onBackspace && !query)\r\n props.onBackspace();\r\n };\r\n\r\n const onClickClearInput = () => {\r\n setQuery('');\r\n\r\n if (isFunction(props.onClickClearInput))\r\n props.onClickClearInput();\r\n };\r\n\r\n return (\r\n <SearchBarWrapper onSubmit={onSubmit} renderAsForm={!!props.renderAsForm}>\r\n <Autosuggest<T>\r\n suggestions={\r\n SearchUtils.getSuggestionSections(\r\n suggestions,\r\n !query,\r\n props.recentSearchHeading || LanguageService.getPhrase(namespace, 'recentSearchHeading'),\r\n props.suggestionsHeading,\r\n props.getSections,\r\n props.suggestionLimit\r\n )\r\n }\r\n onSuggestionsFetchRequested={\r\n SearchUtils.onSuggestionsFetchRequestedHandler(props, setSuggestions, resetSuggestions)\r\n }\r\n onSuggestionsClearRequested={() => {\r\n if (!props.alwaysRenderSuggestions)\r\n resetSuggestions();\r\n }}\r\n onSuggestionSelected={(e: React.FormEvent, { suggestion }: Autosuggest.SuggestionSelectedEventData<T>) => {\r\n if (props.clearQueryOnSelect)\r\n setQuery('');\r\n\r\n props.onSuggestionSelected(suggestion);\r\n }}\r\n getSuggestionValue={(suggestion: T) => {\r\n if (!props.updateQueryOnSelection)\r\n return query;\r\n\r\n return SearchUtils.getSuggestionValue(props.valueKey, suggestion);\r\n }}\r\n renderSuggestion={(suggestion: T) => {\r\n if (isFunction(props.getSuggestionComponent))\r\n return props.getSuggestionComponent(suggestion);\r\n\r\n return SearchUtils.getSuggestionComponent(props.valueKey, suggestion);\r\n }}\r\n alwaysRenderSuggestions={props.alwaysRenderSuggestions}\r\n /** \r\n * Setting focusInputOnSuggestionClick to false when isMobile is true prevents the keyboard from \r\n * appearing on mobile devices when a suggestion is clicked.\r\n */\r\n focusInputOnSuggestionClick={!isMobile}\r\n inputProps={{\r\n placeholder: props.placeholder || LanguageService.getPhrase(namespace, 'placeholder'),\r\n value: query,\r\n onChange,\r\n onKeyDown,\r\n autoFocus: !!props.autoFocusInput,\r\n highlightOnFocus: props.highlightInputOnFocus,\r\n onClickSearchIcon: !!props.submitOnClickSearchIcon && onSubmit,\r\n searchIconPlacement: props.searchIconPlacement,\r\n showClearInputIcon: !!props.showClearInputIcon && !!query.length,\r\n onClickClearInput\r\n } as Autosuggest.InputProps<T>}\r\n renderInputComponent={SearchInput}\r\n theme={SearchUtils.getTheme(props.theme)}\r\n multiSection\r\n renderSectionTitle={SearchUtils.renderSectionTitle}\r\n getSectionSuggestions={SearchUtils.getSectionSuggestions}\r\n />\r\n </SearchBarWrapper>\r\n );\r\n}","import * as React from 'react';\r\nimport * as Autosuggest from 'react-autosuggest';\r\n\r\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\r\n\r\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\r\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\r\n\r\nimport styles from './search-bar.scss';\r\n\r\nfunction getInputClassName<T>(props: SearchInputProps<T>): string {\r\n const { searchIconPlacement, showClearInputIcon, highlightOnFocus, className } = props;\r\n\r\n let inputClassName = 'form-control';\r\n\r\n if (!highlightOnFocus)\r\n inputClassName += ` ${styles.inputWithoutHighlight}`;\r\n\r\n if (searchIconPlacement === 'left')\r\n inputClassName += ` ${styles.inputWithLeftIcon}`;\r\n\r\n if (searchIconPlacement === 'right' && !showClearInputIcon || searchIconPlacement === 'left' && showClearInputIcon)\r\n inputClassName += ` ${styles.inputWithRightIcon}`;\r\n\r\n if (searchIconPlacement === 'right' && showClearInputIcon)\r\n inputClassName += ` ${styles.inputWithTwoRightIcons}`;\r\n\r\n if (className)\r\n inputClassName += `${className}`;\r\n\r\n return inputClassName;\r\n}\r\n\r\nfunction getSvgContainerClassName(onClickSvg: () => void): string {\r\n const className = 'd-inline-block svg-container';\r\n\r\n if (!FunctionHelper.isFunction(onClickSvg))\r\n return className;\r\n\r\n return className + ' cursor-pointer';\r\n}\r\n\r\ninterface SearchInputProps<T> extends Autosuggest.InputProps<T>{\r\n onClickSearchIcon?: () => void;\r\n searchIconPlacement?: 'left' | 'right' | false;\r\n showClearInputIcon?: boolean;\r\n onClickClearInput?: () => void;\r\n highlightOnFocus?: boolean;\r\n}\r\n\r\nexport function SearchInput<T extends {}>(props: SearchInputProps<T>): JSX.Element {\r\n const {\r\n onClickSearchIcon,\r\n searchIconPlacement,\r\n showClearInputIcon,\r\n onClickClearInput,\r\n highlightOnFocus,\r\n className,\r\n ...inputProps\r\n } = props;\r\n\r\n const SearchIcon = () => (\r\n <div className='d-inline-block'>\r\n <SvgContainer\r\n svgName={cvSvgLibrary.Search}\r\n size={SvgContainerSize.Standard}\r\n onClick={onClickSearchIcon}\r\n className={getSvgContainerClassName(onClickSearchIcon)}\r\n />\r\n </div>\r\n );\r\n\r\n const ClearIcon = () => (\r\n <div className={`d-inline-block text-muted ${styles.clearButton}`}>\r\n <SvgContainer\r\n svgName={cvSvgLibrary.Close}\r\n size={SvgContainerSize.Standard}\r\n onClick={onClickClearInput}\r\n className={getSvgContainerClassName(onClickClearInput)}\r\n />\r\n </div>\r\n );\r\n\r\n return (\r\n <div className={`position-relative ${styles.inputContainer}`}>\r\n {searchIconPlacement === 'left' &&\r\n <div className={`${styles.iconContainer} ${styles.leftIconContainer}`}>\r\n <SearchIcon />\r\n </div>\r\n }\r\n <input className={getInputClassName<T>(props)} {...inputProps as any} />\r\n {(searchIconPlacement === 'right' || !!showClearInputIcon) &&\r\n <div className={`${styles.iconContainer} ${styles.rightIconContainer}`}>\r\n {!!showClearInputIcon && <ClearIcon />}\r\n {searchIconPlacement === 'right' && <SearchIcon />}\r\n </div>\r\n }\r\n </div>\r\n );\r\n}\r\n","import * as React from 'react';\r\nimport * as Autosuggest from 'react-autosuggest';\r\n\r\nimport { HashObject } from 'libs/common/react/interfaces/HashObject';\r\nimport { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\r\nimport { Flight } from 'libs/common/flight';\r\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\r\nimport { TypeHelper } from 'libs/common/react/utils/TypeHelper';\r\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\r\n\r\nimport { SearchBarProps } from './SearchBar';\r\n\r\nimport styles from './search-bar.scss';\r\n\r\nexport enum SuggestionType {\r\n Local = 'local',\r\n Recent = 'recent',\r\n Remote = 'remote'\r\n}\r\n\r\n/**\r\n * Suggestions grouped as a section\r\n */\r\nexport interface SuggestionSection<T extends HashObject> {\r\n data: T[];\r\n title?: string;\r\n}\r\n\r\n/**\r\n * How suggestion data is stored in state in SearchBar\r\n */\r\nexport type SuggestionState<T extends HashObject> = { [ key in SuggestionType ]: T[] };\r\n\r\nexport function getInitialState<T extends HashObject>(\r\n initialSuggestions: T[], recentSearches: T[]\r\n): SuggestionState<T> {\r\n return {\r\n [SuggestionType.Recent]: recentSearches,\r\n [SuggestionType.Local]: initialSuggestions,\r\n [SuggestionType.Remote]: []\r\n };\r\n}\r\n\r\nfunction hasAttribute<T extends HashObject>(obj: T, valueKey: keyof T): boolean {\r\n return ObjectHelper.isObject(obj) && obj.hasOwnProperty(valueKey) && TypeHelper.isString(obj[valueKey]);\r\n}\r\n\r\nfunction getLocalSuggestions<T extends HashObject>(query: string, data: T[], valueKey: keyof T): T[] {\r\n const q = query.trim().toLowerCase();\r\n\r\n if (!q.length)\r\n return [];\r\n\r\n return data.filter(d => {\r\n if (!hasAttribute(d, valueKey) || !TypeHelper.isString(d[valueKey]))\r\n return false;\r\n\r\n return d[valueKey].trim().toLowerCase().includes(q);\r\n });\r\n}\r\n\r\nfunction fetchSuggestions<T extends HashObject>(\r\n getUrl: (query: string) => string, query: string, callback: (suggestions: T[]) => void\r\n): void {\r\n const resource = FunctionHelper.isFunction(getUrl) && getUrl(query);\r\n\r\n if (!resource)\r\n return;\r\n\r\n Flight.ajaxRequest({\r\n resource,\r\n type: HttpVerbs.GET,\r\n success: callback,\r\n error: () => {}\r\n });\r\n}\r\n\r\nexport function onSuggestionsFetchRequestedHandler<T extends HashObject>(\r\n props: SearchBarProps<T>,\r\n setSuggestions: React.Dispatch<React.SetStateAction<SuggestionState<T>>>,\r\n resetSuggestions: () => void\r\n): (params: Autosuggest.SuggestionsFetchRequestedParams) => void {\r\n return ({ value }: Autosuggest.SuggestionsFetchRequestedParams) => {\r\n if (!value.length)\r\n resetSuggestions();\r\n\r\n if (value.length < props.activationLength)\r\n return;\r\n\r\n if (props.local) {\r\n const filtered = FunctionHelper.isFunction(props.getLocalSuggestions)\r\n ? props.getLocalSuggestions(value, props.local)\r\n : getLocalSuggestions(value, props.local, props.valueKey);\r\n\r\n setSuggestions(s => ({ ...s, [SuggestionType.Local]: filtered }));\r\n }\r\n\r\n if (props.getRemoteUrl)\r\n fetchSuggestions(\r\n props.getRemoteUrl,\r\n value,\r\n (data: any) => setSuggestions(\r\n s => ({\r\n ...s,\r\n [SuggestionType.Remote]: FunctionHelper.isFunction(props.formatRemoteSuggestions)\r\n ? props.formatRemoteSuggestions(data)\r\n : data\r\n })\r\n )\r\n );\r\n };\r\n}\r\n\r\nexport function getSuggestionValue<T extends HashObject>(valueKey: keyof T, suggestion: T): string {\r\n if (!hasAttribute(suggestion, valueKey))\r\n return '';\r\n\r\n return suggestion[valueKey];\r\n}\r\n\r\n/**\r\n * Default suggestion component. Renders text based on valueKey.\r\n * \r\n * @param valueKey object attribute to be rendered.\r\n */\r\nexport function getSuggestionComponent<T extends HashObject>(valueKey: keyof T, suggestion: T): JSX.Element {\r\n return hasAttribute(suggestion, valueKey)\r\n ? <>\r\n {suggestion[valueKey]}\r\n </>\r\n : <></>;\r\n}\r\n\r\n/**\r\n * Maps the suggestion state into sections.\r\n * \r\n * @param getSections - an optional function passed in from anything consuming\r\n * SearchBar used to break the local and remote suggestions into sections.\r\n */\r\nexport function getSuggestionSections<T extends HashObject>(\r\n suggestionState: SuggestionState<T>,\r\n showRecentSearches: boolean,\r\n recentSearchHeading: string,\r\n suggestionsHeading?: string,\r\n getSections?: (suggestions: T[]) => SuggestionSection<T>[],\r\n suggestionLimit?: number | false\r\n): SuggestionSection<T>[] {\r\n const getTypeSuggestions = (type: SuggestionType) => {\r\n const typeSuggestions = suggestionState[type];\r\n\r\n return typeSuggestions || [];\r\n };\r\n\r\n const recentSuggestions = showRecentSearches ? getTypeSuggestions(SuggestionType.Recent) : [];\r\n const localSuggestions = getTypeSuggestions(SuggestionType.Local);\r\n const remoteSuggestions = getTypeSuggestions(SuggestionType.Remote);\r\n\r\n let sections: SuggestionSection<T>[] = [];\r\n\r\n if (recentSuggestions.length)\r\n sections.push({\r\n title: recentSearchHeading,\r\n data: recentSuggestions\r\n });\r\n\r\n const matchedSuggestions = [ ...localSuggestions, ...remoteSuggestions ];\r\n\r\n if (Number.isInteger((suggestionLimit as number)) && sections.length > suggestionLimit)\r\n matchedSuggestions.slice(0, (suggestionLimit as number));\r\n\r\n if (FunctionHelper.isFunction(getSections))\r\n sections.push(...getSections(matchedSuggestions));\r\n else\r\n sections.push({ title: suggestionsHeading, data: matchedSuggestions });\r\n\r\n return sections;\r\n}\r\n\r\n/**\r\n * Maps a section into a list of suggestions.\r\n */\r\nexport function getSectionSuggestions<T extends HashObject>(section: SuggestionSection<T>): T[] {\r\n return section.data;\r\n}\r\n\r\nexport function renderSectionTitle<T extends HashObject>(section: SuggestionSection<T>): JSX.Element | null {\r\n if (section.title)\r\n return <strong>{section.title}</strong>;\r\n}\r\n\r\nconst defaultTheme = {\r\n container: 'position-relative',\r\n suggestionsContainerOpen: `bg-white py-1 border rounded ${styles.suggestionsContainerOpen}`,\r\n suggestionsList: 'list-unstyled m-0',\r\n suggestion: 'cursor-pointer py-1 px-2',\r\n suggestionHighlighted: styles.suggestionHighlighted,\r\n sectionContainer: `border-bottom py-1 ${styles.sectionContainer}`\r\n};\r\n\r\nexport function getTheme(theme: Autosuggest.Theme = {}): Autosuggest.Theme {\r\n return Object.assign(defaultTheme, theme);\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"inputWithoutHighlight\":\"cv--inputWithoutHighlight---L0yF\",\"suggestionsContainerOpen\":\"cv--suggestionsContainerOpen--ahMdW\",\"sectionContainer\":\"cv--sectionContainer--xstWL\",\"suggestionHighlighted\":\"cv--suggestionHighlighted--3YTCa\",\"inputContainer\":\"cv--inputContainer--1wn3m\",\"clearButton\":\"cv--clearButton--1BwBs\",\"inputWithLeftIcon\":\"cv--inputWithLeftIcon--qxZOe\",\"inputWithRightIcon\":\"cv--inputWithRightIcon--3U4W-\",\"inputWithTwoRightIcons\":\"cv--inputWithTwoRightIcons--2rgzF\",\"iconContainer\":\"cv--iconContainer--1DLw5\",\"leftIconContainer\":\"cv--leftIconContainer--AZCtZ\",\"rightIconContainer\":\"cv--rightIconContainer--1R52s\"};"],"sourceRoot":""}
@@ -0,0 +1 @@
1
+ (window.webpackJsonp_clickview_lite=window.webpackJsonp_clickview_lite||[]).push([[14],{1252:function(e,t,a){e.exports={partialDescription:"_3cyjk"}},1304:function(e,t,a){"use strict";a.r(t);var n=a(0),r=a.n(n),i=a(61),o=a(14),c=a(57),l=a(7),s=a(3),u=a(40),d=a(79),p=a(153),f=a(12),m="hc/articles/115005679748",v=a(1073),y=l.a.encloseNamespace("playlists.emptyState");function b(e){var t,a=Object(p.a)(f.b.ImageUrl).getImageUrls(),r=d.a.safeUrlConcat(e.supportSiteUrl,m),i=(null===(t=e.playlist.owner)||void 0===t?void 0:t.id)===e.currentUser.id;return n.createElement(v.a,{imageUrl:a.EmptyStates.VIDEOS,heading:y("noVideosHeading"),description:i&&'<a href="'.concat(r,'" target="_blank">').concat(y("noVideosInfo"),"</a>")})}var g=a(157),h=a(154),E=a(831),S=a(861),w=a(237),k=a(933),A=a(1072);var O=a(1074),j=a(864),I=a(159),C=function(e){var t,a;if((null===(t=e)||void 0===t?void 0:t.onlineRole)!==I.a.Staff)return null===(a=e)||void 0===a?void 0:a.maxAllowedRating};function N(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=[],n=!0,r=!1,i=void 0;try{for(var o,c=e[Symbol.iterator]();!(n=(o=c.next()).done)&&(a.push(o.value),!t||a.length!==t);n=!0);}catch(e){r=!0,i=e}finally{try{n||null==c.return||c.return()}finally{if(r)throw i}}return a}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return x(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 x(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 x(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=new Array(t);a<t;a++)n[a]=e[a];return n}var L=a(242),P=a(824),F=a(850),T=a(239),U=a(995),V=a(107),D=a(45),B=a(13),R=a(913),_=a(10),H=a(5),M=a(1252),X=a.n(M);function Y(){return r.a.createElement(r.a.Fragment,null,r.a.createElement(R.b,null),r.a.createElement("div",{className:"mb-2"},r.a.createElement("div",{className:"partial-loading-background my-2 border-bottom ".concat(X.a.partialDescription)})))}function $(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=[],n=!0,r=!1,i=void 0;try{for(var o,c=e[Symbol.iterator]();!(n=(o=c.next()).done)&&(a.push(o.value),!t||a.length!==t);n=!0);}catch(e){r=!0,i=e}finally{try{n||null==c.return||c.return()}finally{if(r)throw i}}return a}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return q(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 q(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 q(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=new Array(t);a<t;a++)n[a]=e[a];return n}var z=l.a.encloseNamespace("playlists.playlistHeader");function K(e){var t=$(n.useState(e.isFollowing),2),a=t[0],r=t[1],i=$(n.useState(!1),2),o=i[0],c=i[1];n.useEffect((function(){return r(e.isFollowing)}),[e.isFollowing]);var l=Object(V.a)(D.a.XS);if(e.showPartialLoading)return n.createElement(Y,null);var d=e.playlist.description,p=e.application,f=[e.playlist.id],m=[{label:z("share"),appLink:{application:H.a.DEFAULT,action:_.a.Default.SHARE,args:[e.playlist.id],params:{entityType:"playlist"}},svgName:B.b.Share,className:"btn btn-light",button:!l}];return e.canEdit&&m.push({label:z("edit"),appLink:{application:p,action:_.a.Playlists.EDIT_PLAYLIST,args:f},svgName:B.b.Edit,className:"btn btn-light",button:!1},{label:z("delete"),appLink:{application:p,action:_.a.Playlists.DELETE_PLAYLIST,args:f},svgName:B.b.Delete,className:"text-danger",button:!1}),e.canEdit||m.push({label:z(a?"following":"follow"),onClick:function(){r(!a),c(!0),e.follow(!a,(function(){c(!1),u.a.logUserAction({id:e.playlistId},{location:s.j.Banner,actionType:s.n.Follow,descriptor:a?s.m.Off:s.m.On,entity:s.d.Playlist,workflowPhase:s.o.Complete})}),(function(){c(!1),r(a)}))},svgName:B.b.Bell,className:"btn follow-btn btn-".concat(a?"dark":"light"),button:!l,showSpinner:o}),n.createElement(n.Fragment,null,n.createElement(R.a,{heading:e.playlist.name,banner:e.playlist.banner,imageCdnUrl:e.imageCdnUrl,actions:m.length&&m}),!!d&&n.createElement("p",{className:"py-2 border-bottom"},d))}var G=a(929),J=a(128);var Z=a(127),Q=a(351),W=a(352);function ee(e){var t=e&&e.length&&e.map((function(e){return e.dateAssociated}));return t&&t.length?Z.a.max(t,(function(e){return new Date(e).getTime()})):null}function te(e){return[e?J.a.RemoveFromPlaylist:J.a.AddToPlaylist,J.a.Share]}function ae(e,t,a){u.a.logUserAction({id:t,playlistId:e},{location:s.j.VideoList,entity:s.d.Video,actionType:s.n.Move,workflowPhase:a})}var ne={notFound:Q.a,forbidden:{privacy:W.a}};function re(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=[],n=!0,r=!1,i=void 0;try{for(var o,c=e[Symbol.iterator]();!(n=(o=c.next()).done)&&(a.push(o.value),!t||a.length!==t);n=!0);}catch(e){r=!0,i=e}finally{try{n||null==c.return||c.return()}finally{if(r)throw i}}return a}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return ie(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 ie(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 ie(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=new Array(t);a<t;a++)n[a]=e[a];return n}a.d(t,"PlaylistView",(function(){return oe}));function oe(e){var t,a=Object(i.useDispatch)(),r=Object(P.a)(),d=o.a.useBasicFetch(g.a.config),p=o.a.useBasicFetch(h.a.currentUser()),f=!c.a.isEmpty(p.data),m=e.filterByRating?f&&C(p.data):null,v=e.isShared?!!p.data&&S.a.getSharedPlaylist(e.playlistId,m):S.a.getPlaylist(e.playlistId),y=o.a.useBasicFetch(v);Object(U.a)(y,ne,p.data);var I=!!p.data&&function(t){return(e.isShared?S.a.getSharedPlaylistVideos:S.a.getPlaylistVideos)(e.playlistId,m,t)},x=o.a.useBasicFetch(!!p.data&&S.a.getIsFollowingPlaylist(e.playlistId,p.data.id)),V=function(e){o.a.getFetch(a,I(e))()},D=function(e,t){var a=t,r=Object(k.a)(e&&function(t){return e(t).key});return Object(A.a)((function(){return t&&a(r.nextCursor)}),!!r.nextCursor,r.isFetching),Object(n.useEffect)((function(){r.shouldInitialFetch&&t&&a()}),[r.shouldInitialFetch,t]),{items:r.items,hasMore:!!r.nextCursor,isFetching:r.isFetching}}(I,V),B=D.items,R=D.hasMore,M=D.isFetching;Object(F.a)(B);var X,Y,$,q,z=re((X=B,Y=N(Object(n.useState)(),2),$=Y[0],q=Y[1],Object(n.useEffect)((function(){$&&(X.length!==$.length||function(e,t){var a=!0;if(e.length!==t.length)return!1;for(var n=0;n<e.length;n++)if(e[n].id!==t[n].id){a=!1;break}return a}(X,$))&&q(null)}),[X]),[$,q]),2),Z=z[0],Q=z[1],W=f&&!!B&&!!B.length&&T.a.getRestrictions(B.map((function(e){return e.id}))),ie=o.a.useGetResponse(W&&W.key),oe=o.a.useGetFetch(W);W&&ie.shouldFetch&&oe(),Object(w.a)(!!y.data&&y.data.name,[y.data]);var ce,le,se=!!e.allowEdit&&function(e,t){return!(c.a.isEmpty(t)||!e||c.a.isEmpty(e.owner))&&e.owner.id===t.id}(y.data,p.data),ue=!!B&&0===B.length;return n.createElement(L.a.Provider,{value:{videoActions:te(se),getActionAppLink:(ce=e.application,le=e.playlistId,function(e,t){switch(t){case J.a.RemoveFromPlaylist:return{application:ce,action:_.a.Playlists.REMOVE_VIDEO_FROM_PLAYLIST,args:[e.id,le]};case J.a.AddToPlaylist:return{application:ce,action:_.a.Playlists.ADD_TO_PLAYLIST,args:[e.id]};case J.a.Share:return{application:H.a.DEFAULT,action:_.a.Default.SHARE,args:[e.id],params:{entityType:"video"}}}}),hideLabel:!0}},n.createElement("div",{className:"bg-white px-3"},n.createElement(K,{playlistId:e.playlistId,playlist:y.data,hasVideos:!ue,isFollowing:null===(t=x.data)||void 0===t?void 0:t.isFollowing,follow:function(t,n,i){var c=t?S.a.followPlaylist:S.a.unfollowPlaylist;o.a.fetch(a,c(e.playlistId,p.data.id,n,(function(){i(),r.error(l.a.getPhrase("playlists.playlist",t?"followError":"unfollowError"))})))},application:e.application,canEdit:se,isShared:e.isShared,showBreadcrumbs:e.showBreadcrumbs,showDateMetadata:e.showDateMetadata,playAllAppLink:e.playAllAppLink,showPartialLoading:!(y.data&&B&&p.data&&d.data&&x.data),lastUpdated:!!B&&ee(B),imageCdnUrl:!!d.data&&d.data.imageCdnUrl,returnAppLink:e.returnAppLink}),n.createElement("div",{className:"mt-2"},ue?!!d.data&&!!p.data&&!!y.data&&n.createElement(b,{playlist:y.data,currentUser:p.data,supportSiteUrl:d.data.supportSiteUrl}):n.createElement(G.a,{videos:Z||B,playlistId:!!y.data&&y.data.id,onSortStart:function(t){var a=B[t];a&&ae(e.playlistId,a.id,s.o.Start)},onSortComplete:function(t,n){if(t!==n){var r=B[t];if(r){var i=j.a.reorder(B,t,n),c=i.reorderedItems,l=i.reorderRequest;Q(c),ae(e.playlistId,r.id,s.o.Complete);o.a.fetch(a,S.a.reorderVideos(e.playlistId,l,null,(function(){Q(null)})))}}},isUserSignedIn:f,canEdit:se,showPartialLoading:!B||!p.data||!d.data,getVideoAppLink:e.getVideoAppLink,getSeriesAppLink:e.getSeriesAppLink,fetchRestrictions:oe,setFavourite:function(e,t,n){o.a.fetch(a,E.a.updateIsVideoFavourited(e.id,p.data.id,t,(function(){u.a.logUserAction({id:e.id},{entity:s.d.Video,actionType:s.n.Favourite,descriptor:t?s.m.On:s.m.Off,location:s.j.VideoThumbnail,workflowPhase:s.o.Complete}),r.success(l.a.getPhrase("playlists.playlist",t?"favourited":"unfavourited",{video:e.name}))}),n))}})),!!R&&n.createElement(O.a,{isFetching:M,onClick:V})))}},825:function(e,t,a){"use strict";a.d(t,"a",(function(){return r}));var n=a(0);function r(e){return n.createElement("div",{role:"button",tabIndex:0,className:"".concat(e.className?e.className:""," cursor-pointer"),onKeyDown:function(t){return"Enter"===t.key&&e.onClick(t)},onClick:e.onClick,style:e.style?e.style:{}},e.children)}},830:function(e,t,a){"use strict";a.d(t,"a",(function(){return l})),a.d(t,"c",(function(){return s})),a.d(t,"b",(function(){return u}));var n=a(0),r=a(818),i=a(2),o=a(837),c=a(844),l=n.createContext({isSortable:!1});function s(e){var t=n.useContext(l).isSortable?c.a:c.b,a=i.a.AppLinkHelper.getCurrentAppLink();return n.createElement(n.Fragment,null,n.createElement("div",{className:"position-relative"},e.videos.map((function(a,r){return n.createElement(t,{key:a.id,idx:r,index:r,video:a,getVideoAppLink:e.getVideoAppLink,getSeriesAppLink:e.getSeriesAppLink,setFavourite:e.setFavourite,hideInteractiveBadge:e.hideInteractiveBadge})}))),e.cursors&&n.createElement(o.b,{appLink:a,cursors:e.cursors}))}var u=Object(r.SortableContainer)((function(e){return n.createElement(l.Provider,{value:{isSortable:!0,currentSortingIndex:e.currentSortingIndex}},n.createElement(s,Object.assign({},e)))}))},831:function(e,t,a){"use strict";a.d(t,"a",(function(){return l}));var n=a(21),r=a(46),i=function(e,t){var a={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(a[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(a[n[r]]=e[n[r]])}return a};function o(e,t,a,r){return{url:"/api/domain/v2/objects/".concat(t),key:"favourite:video:".concat(t,":").concat(e),data:{favouriteVideos:e},type:n.a.PUT,invalidationKeys:["favourite:videos:".concat(t),"video:is:favourited:".concat(t)],success:a,error:r}}function c(e,t,a,r){return{url:"/api/domain/v2/objects/".concat(t,"/favouriteVideos/").concat(e),key:"favourite:video:".concat(t,":").concat(e),type:n.a.DELETE,invalidationKeys:["favourite:videos:".concat(t),"video:is:favourited:".concat(t)],success:a,error:r}}var l={favouriteVideos:function(e,t){var a="".concat(r.a.VIDEO_COLLECTION).concat(function(e){return e?"&cursor=".concat(e):""}(t));return{url:"/api/domain/v2/objects/".concat(e,"/favouriteVideos?query=").concat(a),key:"favourite:videos:".concat(e).concat(t?":".concat(t):"")}},updateIsVideoFavourited:function(e,t,a,n,r){return(a?o:c)(e,t,n,r)},isFavourited:function(e,t){var a=t.slice().sort(),n=a.map((function(e){return"id=".concat(e)}));if(n.length)return{url:"/api/domain/v2/objects?query=favouritedBy{id:".concat(e,"}&").concat(n.join("&")),key:"video:is:favourited:".concat(e,":by:id:").concat(a.join(",")),formatData:function(e){var t;if(!(null===(t=e)||void 0===t?void 0:t.length))return e;return e.map((function(e){var t,a,n=e.favouritedBy,r=i(e,["favouritedBy"]);return Object.assign(Object.assign({},r),{isFavourited:!!(null===(a=null===(t=n)||void 0===t?void 0:t.data)||void 0===a?void 0:a.length)})}))}}}}},837:function(e,t,a){"use strict";a.d(t,"b",(function(){return u})),a.d(t,"a",(function(){return d}));var n=a(0),r=a(825),i=a(51),o=a(73),c=a(40),l=a(3);function s(e,t){return t?{application:e.application,action:e.action,args:e.args,params:Object.assign({},e.params,{cursor:t})}:null}function u(e){var t=e.appLink,a=e.cursors,r=e.className;function u(e){c.a.logUserAction({page:e},{location:l.j.Pagination,entity:l.d.Pagination,actionType:l.n.Navigate})}return n.createElement(o.a.Provider,{value:"shared.pagination"},n.createElement("div",{className:r},n.createElement(i.a,{appLink:s(t,a.previous),className:"btn btn-secondary mr-1 ".concat(a.previous?"":"disabled"),onClick:function(){return u("previous")}},n.createElement(o.b,{phrase:"previous"})),n.createElement(i.a,{appLink:s(t,a.next),className:"btn btn-secondary ".concat(a.next?"":"disabled"),onClick:function(){return u("next")}},n.createElement(o.b,{phrase:"next"}))))}function d(e){function t(e){c.a.logUserAction({page:e},{location:l.j.Pagination,entity:l.d.Pagination,actionType:l.n.Navigate})}return n.createElement(o.a.Provider,{value:"shared.pagination"},n.createElement("div",{className:e.className},n.createElement(r.a,{onClick:function(){1!==e.currentPage&&(t("previous"),e.onClickBack())},className:"btn btn-secondary mr-1 cursor-pointer ".concat(1===e.currentPage?"disabled":"")},n.createElement(o.b,{phrase:"previous"})),n.createElement(r.a,{onClick:function(){e.currentPage!==e.totalPages&&(t("next"),e.onClickNext())},className:"btn btn-secondary cursor-pointer ".concat(e.currentPage===e.totalPages?"disabled":"")},n.createElement(o.b,{phrase:"next"}))))}u.defaultProps={className:"py-2"},d.defaultProps={className:"py-2"}},843:function(e,t,a){"use strict";a.d(t,"a",(function(){return n}));var n={userVideoHistory:function(e,t,a,n,r,i){var o="video:history:".concat(e,":").concat(t),c="/api/videoviews/v1/customers/".concat(e,"/users/").concat(t,"/videos/history");return a&&(o+=":".concat(a),c+="?cursor=".concat(a)),{key:o,url:c,success:n,error:r,always:i}},videoHistory:function(e,t,a,n,r,i){var o=a.sort().map((function(e){return"videoId=".concat(e)}));return{key:"video:history:".concat(e,":").concat(t,":videos:").concat(o.join("&")),url:"/api/videoviews/v1/customers/".concat(e,"/users/").concat(t,"/videos/history?").concat(o.join("&")),formatData:function(e){var t;return(null===(t=e)||void 0===t?void 0:t.length)?e.map((function(e){return{id:e.videoId,lastProgressPoint:e.lastProgressPoint}})):e},success:n,error:r,always:i}}}},844:function(e,t,a){"use strict";var n=a(0),r=a(33),i=a(818),o=a(860),c=a(245),l=a(55),s=a(839),u=a(854),d=a(45),p=function(e){return!!e&&e.series&&!!e.series.id},f=a(13),m=a(830),v=a(35),y=a(828),b=a(242),g=a(128),h=a(107),E=a(845),S=a.n(E),w=[g.a.AddToPlaylist,g.a.Share];function k(e){var t=n.useContext(b.a),a=t.videoActions,r=void 0===a?w:a,i=t.getActionAppLink,o=t.hideLabel,c=Object(h.a)(d.a.XS);if(!v.a.isFunction(i))return n.createElement(n.Fragment,null);var l=[];return r.forEach((function(t){var a=i(e.video,t);a&&l.push(Object.assign({appLink:a,className:"btn btn-link",button:!c},Object(g.b)()[t]))})),o&&!c&&(l=l.map((function(e){return Object.assign(Object.assign({},e),{label:null})}))),n.createElement(y.a,{actions:l,className:"float-right mt-n1",actionsDropdownClassName:"btn btn-link rounded-circle p-0 ".concat(S.a.actionsDropdown)})}var A=a(73),O=a(846),j=a.n(O);function I(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=[],n=!0,r=!1,i=void 0;try{for(var o,c=e[Symbol.iterator]();!(n=(o=c.next()).done)&&(a.push(o.value),!t||a.length!==t);n=!0);}catch(e){r=!0,i=e}finally{try{n||null==c.return||c.return()}finally{if(r)throw i}}return a}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return C(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 C(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 C(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=new Array(t);a<t;a++)n[a]=e[a];return n}function N(e){var t=I(n.useState(e.truncate),2),a=t[0],r=t[1];return Object(h.a)(d.a.XS)?n.createElement(n.Fragment,null):n.createElement("div",{className:"position-relative overflow-hidden ".concat(a?"clamp-2":"")},n.createElement("p",{className:"m-0"},e.video.description,!!e.isExpandable&&n.createElement("span",{className:"cursor-pointer ".concat(j.a.ellipsis),onClick:function(){return r(!a)}},n.createElement(A.b,{namespace:"shared.videoItemDescription",phrase:a?"showMore":"showLess"}))))}N.defaultProps={truncate:!0};var x=a(51);function L(e){return n.createElement(x.a,{appLink:e.appLink},n.createElement("h5",{className:"m-0 mb-1 clamp-2"},e.video.name))}var P=a(863),F=a(858),T=a(847),U=a.n(T),V=a(236),D=a(3);a.d(t,"b",(function(){return R})),a.d(t,"a",(function(){return _}));var B=Object(i.SortableHandle)((function(){return n.createElement(r.Col,{xs:2,className:"d-flex justify-content-center align-items-center cursor-pointer ".concat(U.a.dragHandleContainer)},n.createElement(l.a,{svgName:f.b.Handle,size:l.b.Small}))}));function R(e){var t,a=Object(V.a)(),i=a===d.a.XS,l=a===d.a.SM||a===d.a.MD,f=a===d.a.SM,v=n.useContext(m.a).isSortable&&!i,y=e.getVideoAppLink(e.video),b=p(e.video)&&e.getSeriesAppLink(e.video.series);return n.createElement(r.Row,{className:"py-2"},n.createElement(r.Col,{xs:i?12:l?4:3,className:"flex-column align-items-flex-start mb-1"},n.createElement(r.Row,null,!!v&&n.createElement(B,null),n.createElement(r.Col,{xs:(t=v,t?10:12)},n.createElement(o.a,{video:e.video,appLink:y,seriesAppLink:b,size:v?s.a.Small:s.a.Medium,textPosition:u.a.Independent,setFavourite:e.setFavourite,type:"static",analyticsOptions:{location:D.j.VideoListItem}})))),n.createElement(r.Col,{xs:i?12:l?8:9},n.createElement(k,{video:e.video}),n.createElement(c.a,{className:"d-block",video:e.video,appLink:b,analyticsOptions:{location:D.j.VideoListItem}}),n.createElement(L,{video:e.video,appLink:e.getVideoAppLink(e.video)}),n.createElement(P.a,null,n.createElement(F.a,{type:F.b.Rating,data:e.video.rating}),n.createElement(F.a,{type:F.b.ProductionYear,data:e.video.productionYear}),!e.hideInteractiveBadge&&n.createElement(F.a,{type:F.b.Interactive,data:e.video.interactives})),!f&&n.createElement(N,{video:e.video})))}var _=Object(i.SortableElement)((function(e){return n.createElement(R,Object.assign({},e))}))},845:function(e,t,a){e.exports={actionsDropdown:"XR0aX"}},846:function(e,t,a){e.exports={ellipsis:"LJY5U"}},847:function(e,t,a){e.exports={dragHandleContainer:"_24s1b"}},848:function(e,t,a){"use strict";a.d(t,"a",(function(){return u}));var n=a(0),r=a.n(n),i=a(33),o=a(45),c=a(236),l=a(849),s=a.n(l);function u(e){var t=Object(c.a)(),a=t===o.a.XS,n=t===o.a.SM||t===o.a.MD,l=e.withReordering&&!a;return r.a.createElement(r.a.Fragment,null,Array(e.numVideos).fill(null).map((function(e,t){return r.a.createElement(i.Row,{key:t,className:"py-2"},r.a.createElement(i.Col,{xs:a?12:n?4:3,className:"flex-column align-items-flex-start mb-1"},r.a.createElement(i.Row,null,!!l&&r.a.createElement("div",{className:"d-flex align-items-center justify-content-center col-2"},r.a.createElement("div",{className:"partial-loading-background ".concat(s.a.partialDragHandle)})),r.a.createElement(i.Col,{xs:l?10:12},r.a.createElement("div",{className:"partial-loading-background rounded-lg ".concat(s.a.partialThumbnail)})))),r.a.createElement(i.Col,{xs:a?12:n?8:9},r.a.createElement("div",{className:"partial-loading-background ".concat(s.a.partialSeriesLink)}),r.a.createElement("div",{className:"partial-loading-background mb-1 ".concat(s.a.partialName)}),r.a.createElement("div",{className:"partial-loading-background ".concat(s.a.partialDescription)}),r.a.createElement("div",{className:"partial-loading-background ".concat(s.a.partialBadges)}),r.a.createElement("div",{className:"partial-loading-background ".concat(s.a.partialActions)})))})))}u.defaultProps={numVideos:15}},849:function(e,t,a){e.exports={partialName:"_7KNC2",partialDescription:"Vk_wR",partialThumbnail:"_3peRZ",partialDragHandle:"_1F7_f"}},850:function(e,t,a){"use strict";a.d(t,"a",(function(){return p}));var n=a(14),r=a(154),i=a(831),o=a(239),c=a(843);function l(e){return function(e){if(Array.isArray(e))return s(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return s(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 s(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=new Array(t);a<t;a++)n[a]=e[a];return n}var u={ratings:!0,favourites:!0,watchHistory:!0};function d(e,t){var a,r=n.a.useGetResponse(null===(a=t)||void 0===a?void 0:a.key),i=n.a.useGetFetch(t);e&&t&&r.shouldFetch&&i()}function p(e){var t,a,s,p=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},f=Object.assign(Object.assign({},u),p),m=f.ratings,v=f.favourites,y=f.watchHistory,b=n.a.useBasicFetch(r.a.currentUser()),g=e&&(Array.isArray(e)?e.filter(Boolean).map((function(e){return e.id})):e.data.filter(Boolean).map((function(e){return e.id}))),h=b.data,E=[];m&&(E=[].concat(l(E),[!!(null===(t=g)||void 0===t?void 0:t.length)&&o.a.videoRatings(g)])),v&&(E=[].concat(l(E),[!!(null===(a=g)||void 0===a?void 0:a.length)&&h&&i.a.isFavourited(h.id,g)])),y&&(E=[].concat(l(E),[!!(null===(s=g)||void 0===s?void 0:s.length)&&h&&c.a.videoHistory(h.customerId,h.id,g)])),E.forEach((function(t){return d(!!e,t)}))}},913:function(e,t,a){"use strict";var n=a(0),r=a(7),i=a(55),o=a(51),c=a(13);function l(e){var t=e.backToName,a=e.appLink,l=e.color,s=e.extraClasses,u=t?r.a.getPhrase("shared.backButton","backTo",{backToName:t}):r.a.getPhrase("shared.backButton","back"),d="black"===l?"":"text-light";return n.createElement(o.a,{appLink:a,className:"d-inline-flex align-items-center h5 mb-0 ".concat(s," ").concat(d)},n.createElement(i.a,{svgName:c.b.ChevronLeft,size:i.b.Medium}),n.createElement("span",{className:"ml-1"},u))}l.defaultProps={color:"black",extraClasses:""};var s=a(155),u=a(115),d=a(828),p=a(931),f=a.n(p);a.d(t,"a",(function(){return m})),a.d(t,"b",(function(){return v}));var m=n.memo((function(e){var t=e.heading,a=e.banner,r=e.imageCdnUrl,i=e.actions,o=e.sortComponent,c=s.a.createBannerUrl(a,{fallbackBaseUrl:r,fallbackCategoryName:t,type:u.b.Banners},{size:u.a.Large,resizeType:u.c.Cover});return n.createElement("div",{className:"banner banner-header",style:{backgroundImage:"url('".concat(c,"')")}},e.backButtonAppLink&&n.createElement("div",{className:"pt-3"},n.createElement(l,{appLink:e.backButtonAppLink,backToName:e.backButtonText,extraClasses:e.backButtonClasses,color:"white"})),n.createElement("h1",{className:"".concat(f.a.text," text-white text-shadow position-absolute mb-3 clamp-2")},t),!!i&&n.createElement("div",{className:f.a.actionsContainer},n.createElement(d.a,{actions:i,sortComponent:o})))}),(function(e,t){return e.actions===t.actions})),v=function(){return n.createElement("div",{className:"partial-banner partial-loading-background"})}},929:function(e,t,a){"use strict";a.d(t,"a",(function(){return m}));var n=a(0),r=a(2),i=a(35),o=a(19),c=a(830),l=a(848),s=a(989),u=a.n(s);function d(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=[],n=!0,r=!1,i=void 0;try{for(var o,c=e[Symbol.iterator]();!(n=(o=c.next()).done)&&(a.push(o.value),!t||a.length!==t);n=!0);}catch(e){r=!0,i=e}finally{try{n||null==c.return||c.return()}finally{if(r)throw i}}return a}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return p(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 p(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 p(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=new Array(t);a<t;a++)n[a]=e[a];return n}var f=function(e,t){var a={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(a[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(a[n[r]]=e[n[r]])}return a};function m(e){var t=e.onSortComplete,a=e.onSortStart,s=e.showPartialLoading,p=f(e,["onSortComplete","onSortStart","showPartialLoading"]),m=d(n.useState(),2),v=m[0],y=m[1],b=function(e){i.a.isFunction(a)&&a(e)};return s?n.createElement(l.a,{withReordering:!0}):e.canEdit?n.createElement(c.b,Object.assign({},p,{currentSortingIndex:v,updateBeforeSortStart:function(e){var t=e.index;return y(t)},onSortStart:function(e){var t=e.index;return b(t)},onSortEnd:function(e){y(null),i.a.isFunction(t)?t(e.oldIndex,e.newIndex):r.a.ErrorHelper.throw(new o.a("An onSortComplete callback function must be passed to SortableVideoListComponent"))},lockAxis:"y",lockToContainerEdges:!0,lockOffset:["0%","100%"],helperClass:"bg-white ".concat(u.a.sortableItem),distance:1,useDragHandle:!0})):n.createElement(c.c,Object.assign({},p))}},931:function(e,t,a){e.exports={actionsContainer:"_286KF",text:"_3TSgh"}},989:function(e,t,a){e.exports={sortableItem:"_2eiPB"}},995:function(e,t,a){"use strict";a.d(t,"a",(function(){return u}));var n=a(2),r=a(160),i=a(116),o=a(253),c=a(254),l=a(255),s={notFound:i.a,forbidden:{rating:c.a,yearLevel:c.a,region:l.a,privacy:c.a},badRequest:o.a};function u(e,t,a){var i=Object.assign(Object.assign({},s),t);e.statusCode&&e.statusCode!==r.a.Ok&&(e.statusCode!==r.a.NotFound?e.statusCode!==r.a.Forbidden?n.a.ErrorHelper.throw(new i.badRequest):n.a.ErrorHelper.throw(new i.forbidden.privacy):n.a.ErrorHelper.throw(new i.notFound))}}}]);