@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,366 +1,210 @@
1
1
  (window["webpackJsonp_clickview_lite"] = window["webpackJsonp_clickview_lite"] || []).push([[11],{
2
2
 
3
- /***/ "../../libs/shared/src/apps/playlists/components/empty-state/EmptyVideoList.tsx":
4
- /*!**************************************************************************************************************************!*\
5
- !*** C:/ClickView Projects/@clickview/packages/libs/shared/src/apps/playlists/components/empty-state/EmptyVideoList.tsx ***!
6
- \**************************************************************************************************************************/
7
- /*! exports provided: EmptyVideoListComponent */
3
+ /***/ "../../libs/shared/src/apps/subjects/components/preferences/footer/PreferenceFooter.tsx":
4
+ /*!**********************************************************************************************************************************!*\
5
+ !*** C:/ClickView Projects/@clickview/packages/libs/shared/src/apps/subjects/components/preferences/footer/PreferenceFooter.tsx ***!
6
+ \**********************************************************************************************************************************/
7
+ /*! exports provided: PreferenceFooter */
8
8
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
9
9
 
10
10
  "use strict";
11
11
  __webpack_require__.r(__webpack_exports__);
12
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "EmptyVideoListComponent", function() { return EmptyVideoListComponent; });
12
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PreferenceFooter", function() { return PreferenceFooter; });
13
13
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
14
14
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
15
- /* harmony import */ var _common_src_backbone_utils_UrlHelper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../../common/src/backbone/utils/UrlHelper */ "../../libs/common/src/backbone/utils/UrlHelper.ts");
16
- /* harmony import */ var _common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../common/src/backbone/services/LanguageService */ "../../libs/common/src/backbone/services/LanguageService.tsx");
17
- /* harmony import */ var _common_src_react_hooks_UseService__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../../../common/src/react/hooks/UseService */ "../../libs/common/src/react/hooks/UseService.ts");
18
- /* harmony import */ var _constants_SharedServices__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../../constants/SharedServices */ "../../libs/shared/src/constants/SharedServices.ts");
19
- /* harmony import */ var _constants_SupportArticles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../../constants/SupportArticles */ "../../libs/shared/src/constants/SupportArticles.ts");
20
- /* harmony import */ var _components_empty_state_EmptyState__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../../components/empty-state/EmptyState */ "../../libs/shared/src/components/empty-state/EmptyState.tsx");
15
+ /* harmony import */ var _enums_MediaQueries__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../enums/MediaQueries */ "../../libs/shared/src/enums/MediaQueries.ts");
16
+ /* harmony import */ var _hooks_UseGetMediaQueryString__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../hooks/UseGetMediaQueryString */ "../../libs/shared/src/hooks/UseGetMediaQueryString.ts");
17
+ /* harmony import */ var _preference_footer_scss__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./preference-footer.scss */ "../../libs/shared/src/apps/subjects/components/preferences/footer/preference-footer.scss");
18
+ /* harmony import */ var _preference_footer_scss__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_preference_footer_scss__WEBPACK_IMPORTED_MODULE_3__);
21
19
 
22
20
 
23
21
 
24
22
 
25
-
26
-
27
-
28
- var getPhrase = _common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_2__["LanguageService"].encloseNamespace('playlists.emptyState');
29
- function EmptyVideoListComponent(props) {
30
- var _a;
31
-
32
- var imageUrlService = Object(_common_src_react_hooks_UseService__WEBPACK_IMPORTED_MODULE_3__["useService"])(_constants_SharedServices__WEBPACK_IMPORTED_MODULE_4__["SharedServices"].ImageUrl);
33
- var imageUrls = imageUrlService.getImageUrls();
34
- var supportArticleUrl = _common_src_backbone_utils_UrlHelper__WEBPACK_IMPORTED_MODULE_1__["UrlHelper"].safeUrlConcat(props.supportSiteUrl, _constants_SupportArticles__WEBPACK_IMPORTED_MODULE_5__["SupportArticles"].ADD_TO_PLAYLIST);
35
- var currentUserIsPlaylistOwner = ((_a = props.playlist.owner) === null || _a === void 0 ? void 0 : _a.id) === props.currentUser.id;
36
- return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_empty_state_EmptyState__WEBPACK_IMPORTED_MODULE_6__["EmptyState"], {
37
- imageUrl: imageUrls.EmptyStates.VIDEOS,
38
- heading: getPhrase('noVideosHeading'),
39
- description: currentUserIsPlaylistOwner && "<a href=\"".concat(supportArticleUrl, "\" target=\"_blank\">").concat(getPhrase('noVideosInfo'), "</a>")
40
- });
23
+ PreferenceFooter.defaultProps = {
24
+ justify: 'between'
25
+ };
26
+ function PreferenceFooter(props) {
27
+ var mediaQuery = Object(_hooks_UseGetMediaQueryString__WEBPACK_IMPORTED_MODULE_2__["useGetMediaQueryString"])();
28
+ var widthClass = mediaQuery === _enums_MediaQueries__WEBPACK_IMPORTED_MODULE_1__["MediaQueryStrings"].SM || mediaQuery === _enums_MediaQueries__WEBPACK_IMPORTED_MODULE_1__["MediaQueryStrings"].XS ? 'w-100' : 'w-75';
29
+ var justifyClass = "justify-content-".concat(props.justify);
30
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
31
+ className: "".concat(widthClass, " ").concat(justifyClass, " ").concat(_preference_footer_scss__WEBPACK_IMPORTED_MODULE_3___default.a.preferenceFooter, " d-flex px-3")
32
+ }, props.children);
41
33
  }
42
34
 
43
35
  /***/ }),
44
36
 
45
- /***/ "../../libs/shared/src/components/back-button/BackButton.tsx":
46
- /*!*******************************************************************************************************!*\
47
- !*** C:/ClickView Projects/@clickview/packages/libs/shared/src/components/back-button/BackButton.tsx ***!
48
- \*******************************************************************************************************/
49
- /*! exports provided: BackButton */
50
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
51
-
52
- "use strict";
53
- __webpack_require__.r(__webpack_exports__);
54
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BackButton", function() { return BackButton; });
55
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
56
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
57
- /* 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");
58
- /* harmony import */ var _svg_container_SvgContainer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../svg-container/SvgContainer */ "../../libs/shared/src/components/svg-container/SvgContainer.tsx");
59
- /* harmony import */ var _app_link_AppLink__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../app-link/AppLink */ "../../libs/shared/src/components/app-link/AppLink.tsx");
60
- /* harmony import */ var _utils_SvgHelper__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../utils/SvgHelper */ "../../libs/shared/src/utils/SvgHelper.ts");
61
-
62
-
63
-
64
-
37
+ /***/ "../../libs/shared/src/apps/subjects/components/preferences/footer/preference-footer.scss":
38
+ /*!************************************************************************************************************************************!*\
39
+ !*** C:/ClickView Projects/@clickview/packages/libs/shared/src/apps/subjects/components/preferences/footer/preference-footer.scss ***!
40
+ \************************************************************************************************************************************/
41
+ /*! no static exports found */
42
+ /***/ (function(module, exports, __webpack_require__) {
65
43
 
66
- var namespace = 'shared.backButton';
67
- BackButton.defaultProps = {
68
- color: 'black',
69
- extraClasses: ''
70
- };
71
- function BackButton(_ref) {
72
- var backToName = _ref.backToName,
73
- appLink = _ref.appLink,
74
- color = _ref.color,
75
- extraClasses = _ref.extraClasses;
76
- var backPhrase = backToName ? _common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_1__["LanguageService"].getPhrase(namespace, 'backTo', {
77
- backToName: backToName
78
- }) : _common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_1__["LanguageService"].getPhrase(namespace, 'back');
79
- var colorClass = color === 'black' ? '' : 'text-light';
80
- return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_app_link_AppLink__WEBPACK_IMPORTED_MODULE_3__["AppLink"], {
81
- appLink: appLink,
82
- className: "d-inline-flex align-items-center h5 mb-0 ".concat(extraClasses, " ").concat(colorClass)
83
- }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_svg_container_SvgContainer__WEBPACK_IMPORTED_MODULE_2__["SvgContainer"], {
84
- svgName: _utils_SvgHelper__WEBPACK_IMPORTED_MODULE_4__["cvSvgLibrary"].ChevronLeft,
85
- size: _svg_container_SvgContainer__WEBPACK_IMPORTED_MODULE_2__["SvgContainerSize"].Medium
86
- }), react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", {
87
- className: 'ml-1'
88
- }, backPhrase));
89
- }
44
+ // extracted by mini-css-extract-plugin
45
+ module.exports = {"preferenceFooter":"cv--preferenceFooter--P29kw"};
90
46
 
91
47
  /***/ }),
92
48
 
93
- /***/ "../../libs/shared/src/components/banner-header/BannerHeader.tsx":
94
- /*!***********************************************************************************************************!*\
95
- !*** C:/ClickView Projects/@clickview/packages/libs/shared/src/components/banner-header/BannerHeader.tsx ***!
96
- \***********************************************************************************************************/
97
- /*! exports provided: BannerHeader, PartialBannerHeader */
49
+ /***/ "../../libs/shared/src/apps/subjects/components/preferences/index.ts":
50
+ /*!***************************************************************************************************************!*\
51
+ !*** C:/ClickView Projects/@clickview/packages/libs/shared/src/apps/subjects/components/preferences/index.ts ***!
52
+ \***************************************************************************************************************/
53
+ /*! exports provided: PreferenceFooter, PreferencesNav, SubjectPreferenceGrid, SubjectPreferenceItem, PreferenceItem */
98
54
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
99
55
 
100
56
  "use strict";
101
57
  __webpack_require__.r(__webpack_exports__);
102
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BannerHeader", function() { return BannerHeader; });
103
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PartialBannerHeader", function() { return PartialBannerHeader; });
104
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
105
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
106
- /* harmony import */ var _back_button_BackButton__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../back-button/BackButton */ "../../libs/shared/src/components/back-button/BackButton.tsx");
107
- /* harmony import */ var _utils_ImageHelper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../utils/ImageHelper */ "../../libs/shared/src/utils/ImageHelper.ts");
108
- /* harmony import */ var _enums_Images__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../enums/Images */ "../../libs/shared/src/enums/Images.ts");
109
- /* harmony import */ var _actions_Actions__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../actions/Actions */ "../../libs/shared/src/components/actions/Actions.tsx");
110
- /* harmony import */ var _banner_header_scss__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./banner-header.scss */ "../../libs/shared/src/components/banner-header/banner-header.scss");
111
- /* harmony import */ var _banner_header_scss__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_banner_header_scss__WEBPACK_IMPORTED_MODULE_5__);
112
-
113
-
58
+ /* harmony import */ var _footer_PreferenceFooter__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./footer/PreferenceFooter */ "../../libs/shared/src/apps/subjects/components/preferences/footer/PreferenceFooter.tsx");
59
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PreferenceFooter", function() { return _footer_PreferenceFooter__WEBPACK_IMPORTED_MODULE_0__["PreferenceFooter"]; });
114
60
 
61
+ /* harmony import */ var _nav_PreferencesNav__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./nav/PreferencesNav */ "../../libs/shared/src/apps/subjects/components/preferences/nav/PreferencesNav.tsx");
62
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PreferencesNav", function() { return _nav_PreferencesNav__WEBPACK_IMPORTED_MODULE_1__["PreferencesNav"]; });
115
63
 
64
+ /* harmony import */ var _subject_preference_grid_SubjectPreferenceGrid__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./subject-preference-grid/SubjectPreferenceGrid */ "../../libs/shared/src/apps/subjects/components/preferences/subject-preference-grid/SubjectPreferenceGrid.tsx");
65
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SubjectPreferenceGrid", function() { return _subject_preference_grid_SubjectPreferenceGrid__WEBPACK_IMPORTED_MODULE_2__["SubjectPreferenceGrid"]; });
116
66
 
67
+ /* harmony import */ var _subject_preference_item_SubjectPreferenceItem__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./subject-preference-item/SubjectPreferenceItem */ "../../libs/shared/src/apps/subjects/components/preferences/subject-preference-item/SubjectPreferenceItem.tsx");
68
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SubjectPreferenceItem", function() { return _subject_preference_item_SubjectPreferenceItem__WEBPACK_IMPORTED_MODULE_3__["SubjectPreferenceItem"]; });
117
69
 
118
- var BannerHeader = react__WEBPACK_IMPORTED_MODULE_0__["memo"](function (props) {
119
- var heading = props.heading,
120
- banner = props.banner,
121
- imageCdnUrl = props.imageCdnUrl,
122
- actions = props.actions,
123
- sortComponent = props.sortComponent;
124
- var url = _utils_ImageHelper__WEBPACK_IMPORTED_MODULE_2__["ImageHelper"].createBannerUrl(banner, {
125
- fallbackBaseUrl: imageCdnUrl,
126
- fallbackCategoryName: heading,
127
- type: _enums_Images__WEBPACK_IMPORTED_MODULE_3__["ImageType"].Banners
128
- }, {
129
- size: _enums_Images__WEBPACK_IMPORTED_MODULE_3__["ImageSize"].Large,
130
- resizeType: _enums_Images__WEBPACK_IMPORTED_MODULE_3__["ResizeType"].Cover
131
- });
132
- return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
133
- className: 'banner-header',
134
- style: {
135
- backgroundImage: "url('".concat(url, "')")
136
- }
137
- }, props.backButtonAppLink && react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
138
- className: 'pt-3'
139
- }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_back_button_BackButton__WEBPACK_IMPORTED_MODULE_1__["BackButton"], {
140
- appLink: props.backButtonAppLink,
141
- backToName: props.backButtonText,
142
- extraClasses: props.backButtonClasses,
143
- color: 'white'
144
- })), react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("h1", {
145
- className: "".concat(_banner_header_scss__WEBPACK_IMPORTED_MODULE_5___default.a.text, " text-white text-shadow position-absolute mb-3 clamp-2")
146
- }, heading), !!actions && react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
147
- className: _banner_header_scss__WEBPACK_IMPORTED_MODULE_5___default.a.actionsContainer
148
- }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_actions_Actions__WEBPACK_IMPORTED_MODULE_4__["Actions"], {
149
- actions: actions,
150
- sortComponent: sortComponent
151
- })));
152
- }, function (prevProps, nextProps) {
153
- return prevProps.actions === nextProps.actions;
154
- });
155
- var PartialBannerHeader = function PartialBannerHeader() {
156
- return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
157
- className: "partial-banner partial-loading-background"
158
- });
159
- };
70
+ /* harmony import */ var _preference_item_PreferenceItem__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./preference-item/PreferenceItem */ "../../libs/shared/src/apps/subjects/components/preferences/preference-item/PreferenceItem.tsx");
71
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PreferenceItem", function() { return _preference_item_PreferenceItem__WEBPACK_IMPORTED_MODULE_4__["PreferenceItem"]; });
160
72
 
161
- /***/ }),
162
-
163
- /***/ "../../libs/shared/src/components/banner-header/banner-header.scss":
164
- /*!*************************************************************************************************************!*\
165
- !*** C:/ClickView Projects/@clickview/packages/libs/shared/src/components/banner-header/banner-header.scss ***!
166
- \*************************************************************************************************************/
167
- /*! no static exports found */
168
- /***/ (function(module, exports, __webpack_require__) {
169
73
 
170
- // extracted by mini-css-extract-plugin
171
- module.exports = {"actionsContainer":"cv--actionsContainer--286KF","text":"cv--text--3TSgh"};
172
74
 
173
- /***/ }),
174
75
 
175
- /***/ "../../libs/shared/src/components/empty-state/EmptyState.tsx":
176
- /*!*******************************************************************************************************!*\
177
- !*** C:/ClickView Projects/@clickview/packages/libs/shared/src/components/empty-state/EmptyState.tsx ***!
178
- \*******************************************************************************************************/
179
- /*! exports provided: EmptyState */
180
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
181
76
 
182
- "use strict";
183
- __webpack_require__.r(__webpack_exports__);
184
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "EmptyState", function() { return EmptyState; });
185
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
186
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
187
77
 
188
- function EmptyState(props) {
189
- var imageUrl = props.imageUrl,
190
- heading = props.heading,
191
- description = props.description;
192
- return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
193
- className: 'empty-state-container'
194
- }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
195
- className: 'content-container'
196
- }, imageUrl && react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("img", {
197
- src: imageUrl
198
- }), react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("h1", null, heading), description && react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("p", {
199
- dangerouslySetInnerHTML: {
200
- __html: description
201
- }
202
- })));
203
- }
204
78
 
205
79
  /***/ }),
206
80
 
207
- /***/ "../../libs/shared/src/components/infinite-scroll-footer/InfiniteScrollFooter.tsx":
208
- /*!****************************************************************************************************************************!*\
209
- !*** C:/ClickView Projects/@clickview/packages/libs/shared/src/components/infinite-scroll-footer/InfiniteScrollFooter.tsx ***!
210
- \****************************************************************************************************************************/
211
- /*! exports provided: InfiniteScrollFooter */
81
+ /***/ "../../libs/shared/src/apps/subjects/components/preferences/preference-item/PreferenceItem.tsx":
82
+ /*!*****************************************************************************************************************************************!*\
83
+ !*** C:/ClickView Projects/@clickview/packages/libs/shared/src/apps/subjects/components/preferences/preference-item/PreferenceItem.tsx ***!
84
+ \*****************************************************************************************************************************************/
85
+ /*! exports provided: PreferenceItem */
212
86
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
213
87
 
214
88
  "use strict";
215
89
  __webpack_require__.r(__webpack_exports__);
216
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InfiniteScrollFooter", function() { return InfiniteScrollFooter; });
90
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PreferenceItem", function() { return PreferenceItem; });
217
91
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
218
92
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
219
- /* harmony import */ var react_bootstrap__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-bootstrap */ "react-bootstrap");
220
- /* harmony import */ var react_bootstrap__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_bootstrap__WEBPACK_IMPORTED_MODULE_1__);
221
- /* harmony import */ var _svg_container_SvgContainer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../svg-container/SvgContainer */ "../../libs/shared/src/components/svg-container/SvgContainer.tsx");
222
- /* harmony import */ var _utils_SvgHelper__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../utils/SvgHelper */ "../../libs/shared/src/utils/SvgHelper.ts");
223
- /* harmony import */ var _infinite_scroll_footer_scss__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./infinite-scroll-footer.scss */ "../../libs/shared/src/components/infinite-scroll-footer/infinite-scroll-footer.scss");
224
- /* harmony import */ var _infinite_scroll_footer_scss__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_infinite_scroll_footer_scss__WEBPACK_IMPORTED_MODULE_4__);
225
-
93
+ /* harmony import */ var _PreferenceItemStatus__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./PreferenceItemStatus */ "../../libs/shared/src/apps/subjects/components/preferences/preference-item/PreferenceItemStatus.tsx");
94
+ /* harmony import */ var _preference_item_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./preference-item.scss */ "../../libs/shared/src/apps/subjects/components/preferences/preference-item/preference-item.scss");
95
+ /* harmony import */ var _preference_item_scss__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_preference_item_scss__WEBPACK_IMPORTED_MODULE_2__);
226
96
 
227
97
 
228
98
 
99
+ function PreferenceItem(props) {
100
+ function getContainerClass() {
101
+ var baseClass = _preference_item_scss__WEBPACK_IMPORTED_MODULE_2___default.a.preferenceItem;
102
+ if (props.extraClasses) baseClass += ' ' + props.extraClasses;
103
+ if (props.isDisabled) baseClass += ' ' + _preference_item_scss__WEBPACK_IMPORTED_MODULE_2___default.a.disabled;
104
+ if (props.isSelected && !props.isExpandable) baseClass += ' ' + _preference_item_scss__WEBPACK_IMPORTED_MODULE_2___default.a.selected;
105
+ if (props.hideStatus) baseClass += ' ' + _preference_item_scss__WEBPACK_IMPORTED_MODULE_2___default.a.noBorder;
106
+ return baseClass;
107
+ }
229
108
 
230
- function InfiniteScrollFooter(props) {
231
- return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
232
- className: "p-3 text-center ".concat(_infinite_scroll_footer_scss__WEBPACK_IMPORTED_MODULE_4___default.a.container)
233
- }, props.isFetching ? react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react_bootstrap__WEBPACK_IMPORTED_MODULE_1__["Spinner"], {
234
- as: 'span',
235
- animation: 'border',
236
- role: 'status',
237
- className: _infinite_scroll_footer_scss__WEBPACK_IMPORTED_MODULE_4___default.a.spinner
238
- }) : react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_svg_container_SvgContainer__WEBPACK_IMPORTED_MODULE_2__["SvgContainer"], {
239
- svgName: _utils_SvgHelper__WEBPACK_IMPORTED_MODULE_3__["cvSvgLibrary"].ChevronDown,
240
- className: 'svg-container cursor-pointer',
241
- size: _svg_container_SvgContainer__WEBPACK_IMPORTED_MODULE_2__["SvgContainerSize"].Large,
242
- onClick: props.onClick
243
- }));
109
+ var caretClass = "".concat(_preference_item_scss__WEBPACK_IMPORTED_MODULE_2___default.a.expandCaret, " ").concat(props.expand ? _preference_item_scss__WEBPACK_IMPORTED_MODULE_2___default.a.up : _preference_item_scss__WEBPACK_IMPORTED_MODULE_2___default.a.down);
110
+ return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("li", {
111
+ className: getContainerClass(),
112
+ onClick: props.onClick,
113
+ "aria-checked": props.isSelected,
114
+ "aria-haspopup": props.isExpandable,
115
+ role: props.isExpandable ? 'button' : 'checkbox',
116
+ style: {
117
+ backgroundImage: "url(".concat(props.imageUrl, ")")
118
+ },
119
+ tabIndex: 0
120
+ }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {
121
+ className: "".concat(_preference_item_scss__WEBPACK_IMPORTED_MODULE_2___default.a.textBox, " p-2")
122
+ }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("p", {
123
+ className: 'm-0 text-truncate'
124
+ }, props.name, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", {
125
+ className: props.isExpandable ? caretClass : ''
126
+ })), !props.hideStatus && react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null, props.isExpandable ? react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_PreferenceItemStatus__WEBPACK_IMPORTED_MODULE_1__["ExpandableItemStatus"], {
127
+ selectedChildrenCount: props.selectedChildCount
128
+ }) : react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_PreferenceItemStatus__WEBPACK_IMPORTED_MODULE_1__["SelectableItemStatus"], {
129
+ selected: props.isSelected,
130
+ radioButton: props.radioButton
131
+ }))));
244
132
  }
245
133
 
246
134
  /***/ }),
247
135
 
248
- /***/ "../../libs/shared/src/components/infinite-scroll-footer/infinite-scroll-footer.scss":
249
- /*!*******************************************************************************************************************************!*\
250
- !*** C:/ClickView Projects/@clickview/packages/libs/shared/src/components/infinite-scroll-footer/infinite-scroll-footer.scss ***!
251
- \*******************************************************************************************************************************/
252
- /*! no static exports found */
253
- /***/ (function(module, exports, __webpack_require__) {
254
-
255
- // extracted by mini-css-extract-plugin
256
- module.exports = {"container":"cv--container--1_KC6","spinner":"cv--spinner--VXlcl"};
257
-
258
- /***/ }),
259
-
260
- /***/ "../../libs/shared/src/components/video-list/partial-loading/PartialVideoList.tsx":
261
- /*!****************************************************************************************************************************!*\
262
- !*** C:/ClickView Projects/@clickview/packages/libs/shared/src/components/video-list/partial-loading/PartialVideoList.tsx ***!
263
- \****************************************************************************************************************************/
264
- /*! exports provided: PartialVideoList */
136
+ /***/ "../../libs/shared/src/apps/subjects/components/preferences/preference-item/PreferenceItemStatus.tsx":
137
+ /*!***********************************************************************************************************************************************!*\
138
+ !*** C:/ClickView Projects/@clickview/packages/libs/shared/src/apps/subjects/components/preferences/preference-item/PreferenceItemStatus.tsx ***!
139
+ \***********************************************************************************************************************************************/
140
+ /*! exports provided: ExpandableItemStatus, SelectableItemStatus */
265
141
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
266
142
 
267
143
  "use strict";
268
144
  __webpack_require__.r(__webpack_exports__);
269
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PartialVideoList", function() { return PartialVideoList; });
145
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ExpandableItemStatus", function() { return ExpandableItemStatus; });
146
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SelectableItemStatus", function() { return SelectableItemStatus; });
270
147
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
271
148
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
272
- /* harmony import */ var react_bootstrap__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-bootstrap */ "react-bootstrap");
273
- /* harmony import */ var react_bootstrap__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_bootstrap__WEBPACK_IMPORTED_MODULE_1__);
274
- /* harmony import */ var _enums_MediaQueries__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../enums/MediaQueries */ "../../libs/shared/src/enums/MediaQueries.ts");
275
- /* harmony import */ var _hooks_UseGetMediaQueryString__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../hooks/UseGetMediaQueryString */ "../../libs/shared/src/hooks/UseGetMediaQueryString.ts");
276
- /* harmony import */ var _partial_video_list_scss__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./partial-video-list.scss */ "../../libs/shared/src/components/video-list/partial-loading/partial-video-list.scss");
277
- /* harmony import */ var _partial_video_list_scss__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_partial_video_list_scss__WEBPACK_IMPORTED_MODULE_4__);
278
-
149
+ /* harmony import */ var _components_svg_container_SvgContainer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../components/svg-container/SvgContainer */ "../../libs/shared/src/components/svg-container/SvgContainer.tsx");
150
+ /* harmony import */ var _utils_SvgHelper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../utils/SvgHelper */ "../../libs/shared/src/utils/SvgHelper.ts");
151
+ /* harmony import */ var _preference_item_scss__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./preference-item.scss */ "../../libs/shared/src/apps/subjects/components/preferences/preference-item/preference-item.scss");
152
+ /* harmony import */ var _preference_item_scss__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_preference_item_scss__WEBPACK_IMPORTED_MODULE_3__);
279
153
 
280
154
 
281
155
 
282
156
 
283
- PartialVideoList.defaultProps = {
284
- numVideos: 15
157
+ var ExpandableItemStatus = function ExpandableItemStatus(props) {
158
+ if (!props.selectedChildrenCount) return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null);
159
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
160
+ className: "".concat(_preference_item_scss__WEBPACK_IMPORTED_MODULE_3___default.a.itemStatus, " ").concat(_preference_item_scss__WEBPACK_IMPORTED_MODULE_3___default.a.green)
161
+ }, props.selectedChildrenCount);
162
+ };
163
+ var SelectableItemStatus = function SelectableItemStatus(props) {
164
+ var svg;
165
+ if (props.selected) svg = react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_svg_container_SvgContainer__WEBPACK_IMPORTED_MODULE_1__["SvgContainer"], {
166
+ svgName: _utils_SvgHelper__WEBPACK_IMPORTED_MODULE_2__["cvSvgLibrary"].Check
167
+ });else if (!props.radioButton) svg = react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_svg_container_SvgContainer__WEBPACK_IMPORTED_MODULE_1__["SvgContainer"], {
168
+ svgName: _utils_SvgHelper__WEBPACK_IMPORTED_MODULE_2__["cvSvgLibrary"].Plus
169
+ });else svg = react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null, "\xA0");
170
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
171
+ className: "".concat(_preference_item_scss__WEBPACK_IMPORTED_MODULE_3___default.a.itemStatus, " ").concat(props.selected ? _preference_item_scss__WEBPACK_IMPORTED_MODULE_3___default.a.green : _preference_item_scss__WEBPACK_IMPORTED_MODULE_3___default.a.unchecked)
172
+ }, svg);
285
173
  };
286
- function PartialVideoList(props) {
287
- var mediaQuery = Object(_hooks_UseGetMediaQueryString__WEBPACK_IMPORTED_MODULE_3__["useGetMediaQueryString"])();
288
- var isMobile = mediaQuery === _enums_MediaQueries__WEBPACK_IMPORTED_MODULE_2__["MediaQueryStrings"].XS;
289
- var isIPad = mediaQuery === _enums_MediaQueries__WEBPACK_IMPORTED_MODULE_2__["MediaQueryStrings"].SM || mediaQuery === _enums_MediaQueries__WEBPACK_IMPORTED_MODULE_2__["MediaQueryStrings"].MD;
290
- var withDragHandle = props.withReordering && !isMobile;
291
- return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null, Array(props.numVideos).fill(null).map(function (_, i) {
292
- return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_bootstrap__WEBPACK_IMPORTED_MODULE_1__["Row"], {
293
- key: i,
294
- className: 'py-2'
295
- }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_bootstrap__WEBPACK_IMPORTED_MODULE_1__["Col"], {
296
- xs: isMobile ? 12 : isIPad ? 4 : 3,
297
- className: 'flex-column align-items-flex-start mb-1'
298
- }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_bootstrap__WEBPACK_IMPORTED_MODULE_1__["Row"], null, !!withDragHandle && react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {
299
- className: 'd-flex align-items-center justify-content-center col-2'
300
- }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {
301
- className: "partial-loading-background ".concat(_partial_video_list_scss__WEBPACK_IMPORTED_MODULE_4___default.a.partialDragHandle)
302
- })), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_bootstrap__WEBPACK_IMPORTED_MODULE_1__["Col"], {
303
- xs: withDragHandle ? 10 : 12
304
- }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {
305
- className: "partial-loading-background rounded-lg ".concat(_partial_video_list_scss__WEBPACK_IMPORTED_MODULE_4___default.a.partialThumbnail)
306
- })))), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_bootstrap__WEBPACK_IMPORTED_MODULE_1__["Col"], {
307
- xs: isMobile ? 12 : isIPad ? 8 : 9
308
- }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {
309
- className: "partial-loading-background ".concat(_partial_video_list_scss__WEBPACK_IMPORTED_MODULE_4___default.a.partialSeriesLink)
310
- }), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {
311
- className: "partial-loading-background mb-1 ".concat(_partial_video_list_scss__WEBPACK_IMPORTED_MODULE_4___default.a.partialName)
312
- }), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {
313
- className: "partial-loading-background ".concat(_partial_video_list_scss__WEBPACK_IMPORTED_MODULE_4___default.a.partialDescription)
314
- }), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {
315
- className: "partial-loading-background ".concat(_partial_video_list_scss__WEBPACK_IMPORTED_MODULE_4___default.a.partialBadges)
316
- }), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {
317
- className: "partial-loading-background ".concat(_partial_video_list_scss__WEBPACK_IMPORTED_MODULE_4___default.a.partialActions)
318
- })));
319
- }));
320
- }
321
174
 
322
175
  /***/ }),
323
176
 
324
- /***/ "../../libs/shared/src/components/video-list/partial-loading/partial-video-list.scss":
325
- /*!*******************************************************************************************************************************!*\
326
- !*** C:/ClickView Projects/@clickview/packages/libs/shared/src/components/video-list/partial-loading/partial-video-list.scss ***!
327
- \*******************************************************************************************************************************/
177
+ /***/ "../../libs/shared/src/apps/subjects/components/preferences/preference-item/preference-item.scss":
178
+ /*!*******************************************************************************************************************************************!*\
179
+ !*** C:/ClickView Projects/@clickview/packages/libs/shared/src/apps/subjects/components/preferences/preference-item/preference-item.scss ***!
180
+ \*******************************************************************************************************************************************/
328
181
  /*! no static exports found */
329
182
  /***/ (function(module, exports, __webpack_require__) {
330
183
 
331
184
  // extracted by mini-css-extract-plugin
332
- module.exports = {"partialName":"cv--partialName--7KNC2","partialDescription":"cv--partialDescription--Vk_wR","partialThumbnail":"cv--partialThumbnail--3peRZ","partialDragHandle":"cv--partialDragHandle--1F7_f"};
185
+ module.exports = {"preferenceItem":"cv--preferenceItem--1LDb6","expandCaret":"cv--expandCaret--3QEWB","down":"cv--down--2y-iF","up":"cv--up--1kGNY","disabled":"cv--disabled--2w4FH","selected":"cv--selected--1lSYv","noBorder":"cv--noBorder--3Mxuo","textBox":"cv--textBox--3HCeK","itemStatus":"cv--itemStatus--2msq4","unchecked":"cv--unchecked--2VQLv","green":"cv--green--AHd64"};
333
186
 
334
187
  /***/ }),
335
188
 
336
- /***/ "../../libs/shared/src/constants/SupportArticles.ts":
337
- /*!**********************************************************************************************!*\
338
- !*** C:/ClickView Projects/@clickview/packages/libs/shared/src/constants/SupportArticles.ts ***!
339
- \**********************************************************************************************/
340
- /*! exports provided: SupportArticles */
189
+ /***/ "../../libs/shared/src/apps/subjects/components/preferences/subject-preference-grid/SubjectPreferenceGrid.tsx":
190
+ /*!********************************************************************************************************************************************************!*\
191
+ !*** C:/ClickView Projects/@clickview/packages/libs/shared/src/apps/subjects/components/preferences/subject-preference-grid/SubjectPreferenceGrid.tsx ***!
192
+ \********************************************************************************************************************************************************/
193
+ /*! exports provided: SubjectPreferenceGrid */
341
194
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
342
195
 
343
196
  "use strict";
344
197
  __webpack_require__.r(__webpack_exports__);
345
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SupportArticles", function() { return SupportArticles; });
346
- var SupportArticles = {
347
- ADD_TO_PLAYLIST: 'hc/articles/115005679748'
348
- };
349
-
350
- /***/ }),
351
-
352
- /***/ "../../libs/shared/src/flight-requests/FavouriteVideoRequests.ts":
353
- /*!***********************************************************************************************************!*\
354
- !*** C:/ClickView Projects/@clickview/packages/libs/shared/src/flight-requests/FavouriteVideoRequests.ts ***!
355
- \***********************************************************************************************************/
356
- /*! exports provided: FavouriteVideoRequests */
357
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
358
-
359
- "use strict";
360
- __webpack_require__.r(__webpack_exports__);
361
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FavouriteVideoRequests", function() { return FavouriteVideoRequests; });
362
- /* harmony import */ var _common_src_backbone_enums_HttpVerbs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../common/src/backbone/enums/HttpVerbs */ "../../libs/common/src/backbone/enums/HttpVerbs.ts");
363
- /* harmony import */ var _constants_WithStatements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../constants/WithStatements */ "../../libs/shared/src/constants/WithStatements.ts");
198
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SubjectPreferenceGrid", function() { return SubjectPreferenceGrid; });
199
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
200
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
201
+ /* harmony import */ var _common_src_react_utils_ArrayHelper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../../../common/src/react/utils/ArrayHelper */ "../../libs/common/src/react/utils/ArrayHelper.ts");
202
+ /* harmony import */ var _enums_MediaQueries__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../enums/MediaQueries */ "../../libs/shared/src/enums/MediaQueries.ts");
203
+ /* harmony import */ var _hooks_UseGetMediaQueryString__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../../hooks/UseGetMediaQueryString */ "../../libs/shared/src/hooks/UseGetMediaQueryString.ts");
204
+ /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./.. */ "../../libs/shared/src/apps/subjects/components/preferences/index.ts");
205
+ /* harmony import */ var _contexts_SubjectPreferencesContext__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../contexts/SubjectPreferencesContext */ "../../libs/shared/src/apps/subjects/contexts/SubjectPreferencesContext.ts");
206
+ /* harmony import */ var _subject_preference_grid_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./subject-preference-grid.scss */ "../../libs/shared/src/apps/subjects/components/preferences/subject-preference-grid/subject-preference-grid.scss");
207
+ /* harmony import */ var _subject_preference_grid_scss__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_subject_preference_grid_scss__WEBPACK_IMPORTED_MODULE_6__);
364
208
  var __rest = undefined && undefined.__rest || function (s, e) {
365
209
  var t = {};
366
210
 
@@ -377,1167 +221,224 @@ var __rest = undefined && undefined.__rest || function (s, e) {
377
221
 
378
222
 
379
223
 
380
- function favouriteVideo(videoId, userId, success, error) {
381
- return {
382
- url: "/api/domain/v2/objects/".concat(userId),
383
- key: "favourite:video:".concat(userId, ":").concat(videoId),
384
- data: {
385
- favouriteVideos: videoId
386
- },
387
- type: _common_src_backbone_enums_HttpVerbs__WEBPACK_IMPORTED_MODULE_0__["HttpVerbs"].PUT,
388
- invalidationKeys: ["favourite:videos:".concat(userId), "video:is:favourited:".concat(userId)],
389
- success: success,
390
- error: error
391
- };
392
- }
393
-
394
- function unfavouriteVideo(videoId, userId, success, error) {
395
- return {
396
- url: "/api/domain/v2/objects/".concat(userId, "/favouriteVideos/").concat(videoId),
397
- key: "favourite:video:".concat(userId, ":").concat(videoId),
398
- type: _common_src_backbone_enums_HttpVerbs__WEBPACK_IMPORTED_MODULE_0__["HttpVerbs"].DELETE,
399
- invalidationKeys: ["favourite:videos:".concat(userId), "video:is:favourited:".concat(userId)],
400
- success: success,
401
- error: error
402
- };
403
- }
404
-
405
- var FavouriteVideoRequests = {
406
- favouriteVideos: function favouriteVideos(userId, cursor) {
407
- var query = "".concat(_constants_WithStatements__WEBPACK_IMPORTED_MODULE_1__["SharedWithStatements"].VIDEO_COLLECTION).concat(addCursor(cursor));
408
- return {
409
- url: "/api/domain/v2/objects/".concat(userId, "/favouriteVideos?query=").concat(query),
410
- key: "favourite:videos:".concat(userId).concat(cursor ? ":".concat(cursor) : '')
411
- };
412
- },
413
- updateIsVideoFavourited: function updateIsVideoFavourited(videoId, userId, shouldFavourite, success, error) {
414
- var requestFn = shouldFavourite ? favouriteVideo : unfavouriteVideo;
415
- return requestFn(videoId, userId, success, error);
416
- },
417
- isFavourited: function isFavourited(userId, ids) {
418
- var sortedIds = ids.slice().sort();
419
- var params = sortedIds.map(function (i) {
420
- return "id=".concat(i);
421
- });
422
- if (!params.length) return;
423
- return {
424
- url: "/api/domain/v2/objects?query=favouritedBy{id:".concat(userId, "}&").concat(params.join('&')),
425
- key: "video:is:favourited:".concat(userId, ":by:id:").concat(sortedIds.join(',')),
426
- formatData: function formatData(videos) {
427
- var _a;
428
-
429
- if (!((_a = videos) === null || _a === void 0 ? void 0 : _a.length)) return videos;
430
-
431
- var setIsFavourited = function setIsFavourited(video) {
432
- var _a, _b;
433
-
434
- var favouritedBy = video.favouritedBy,
435
- v = __rest(video, ["favouritedBy"]); // As we filtered by userId, if there are any users, set isFavourited to true.
436
-
437
-
438
- return Object.assign(Object.assign({}, v), {
439
- isFavourited: !!((_b = (_a = favouritedBy) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.length)
440
- });
441
- };
442
-
443
- return videos.map(setIsFavourited);
444
- }
445
- };
446
- }
447
- };
448
-
449
- function addCursor(cursor) {
450
- return cursor ? "&cursor=".concat(cursor) : '';
451
- }
452
-
453
- /***/ }),
454
-
455
- /***/ "../../libs/shared/src/hooks/UseInfiniteList.ts":
456
- /*!******************************************************************************************!*\
457
- !*** C:/ClickView Projects/@clickview/packages/libs/shared/src/hooks/UseInfiniteList.ts ***!
458
- \******************************************************************************************/
459
- /*! exports provided: useInfiniteList */
460
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
461
-
462
- "use strict";
463
- __webpack_require__.r(__webpack_exports__);
464
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "useInfiniteList", function() { return useInfiniteList; });
465
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
466
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
467
- /* harmony import */ var _UseSelectAllPages__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./UseSelectAllPages */ "../../libs/shared/src/hooks/UseSelectAllPages.ts");
468
- /* harmony import */ var _UseInfiniteScroll__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./UseInfiniteScroll */ "../../libs/shared/src/hooks/UseInfiniteScroll.ts");
469
-
470
-
471
-
472
- /**
473
- * Hook to extract an infinite list from the application state,
474
- * save it locally in state and only update when new data
475
- * is fetched.
476
- *
477
- * @param getRequest - callback function to get the request for each page.
478
- * Can be false if the request requires data that hasn't yet been fetched - e.g. user id.
479
- *
480
- * @param fetchNext - callback function to fetch a page.
481
- * Can be false if the request requires data that hasn't yet been fetched - e.g. user id.
482
- */
483
-
484
- function useInfiniteList(getRequest, fetchNext) {
485
- var fetchNextFn = fetchNext;
486
- var response = Object(_UseSelectAllPages__WEBPACK_IMPORTED_MODULE_1__["useSelectAllPages"])(getRequest && function (cursor) {
487
- return getRequest(cursor).key;
488
- });
489
- Object(_UseInfiniteScroll__WEBPACK_IMPORTED_MODULE_2__["useInfiniteScroll"])(function () {
490
- return fetchNext && fetchNextFn(response.nextCursor);
491
- }, !!response.nextCursor, response.isFetching);
492
- Object(react__WEBPACK_IMPORTED_MODULE_0__["useEffect"])(function () {
493
- if (response.shouldInitialFetch && fetchNext) fetchNextFn();
494
- }, [response.shouldInitialFetch, fetchNext]);
495
- return {
496
- items: response.items,
497
- hasMore: !!response.nextCursor,
498
- isFetching: response.isFetching
499
- };
500
- }
501
-
502
- /***/ }),
503
-
504
- /***/ "../../libs/shared/src/hooks/UseInfiniteScroll.ts":
505
- /*!********************************************************************************************!*\
506
- !*** C:/ClickView Projects/@clickview/packages/libs/shared/src/hooks/UseInfiniteScroll.ts ***!
507
- \********************************************************************************************/
508
- /*! exports provided: useInfiniteScroll */
509
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
510
-
511
- "use strict";
512
- __webpack_require__.r(__webpack_exports__);
513
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "useInfiniteScroll", function() { return useInfiniteScroll; });
514
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
515
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
516
- /* 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");
517
-
518
-
519
- var SCROLL_TOLERANCE = 400; // value in px
520
-
521
- function useInfiniteScroll(fetchNextPage, hasMore, isFetching) {
522
- var handleScroll = function handleScroll() {
523
- if (isFetching) return;
524
- var currentScrollHeight = window.innerHeight + document.documentElement.scrollTop;
525
- var totalHeight = document.documentElement.scrollHeight - SCROLL_TOLERANCE;
526
- if (currentScrollHeight < totalHeight) return;
527
- fetchNextPage();
528
- };
529
-
530
- Object(react__WEBPACK_IMPORTED_MODULE_0__["useEffect"])(function () {
531
- var onScroll = _common_src_backbone_utils_FunctionHelper__WEBPACK_IMPORTED_MODULE_1__["FunctionHelper"].throttle(handleScroll, 200);
532
- if (hasMore) window.addEventListener('scroll', onScroll);
533
- return function () {
534
- return window.removeEventListener('scroll', onScroll);
535
- };
536
- }, [hasMore]);
537
- }
538
-
539
- /***/ }),
540
-
541
- /***/ "../../libs/shared/src/hooks/UseReorderedItems.ts":
542
- /*!********************************************************************************************!*\
543
- !*** C:/ClickView Projects/@clickview/packages/libs/shared/src/hooks/UseReorderedItems.ts ***!
544
- \********************************************************************************************/
545
- /*! exports provided: useReorderedItems */
546
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
547
-
548
- "use strict";
549
- __webpack_require__.r(__webpack_exports__);
550
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "useReorderedItems", function() { return useReorderedItems; });
551
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
552
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
553
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
554
224
 
555
- 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."); }
556
225
 
557
- 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); }
558
226
 
559
- 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; }
560
227
 
561
- 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; }
562
228
 
563
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
229
+ function useGetRowItemCapacity() {
230
+ var viewportWidth = Object(_hooks_UseGetMediaQueryString__WEBPACK_IMPORTED_MODULE_3__["useGetMediaQueryString"])();
564
231
 
232
+ switch (viewportWidth) {
233
+ case _enums_MediaQueries__WEBPACK_IMPORTED_MODULE_2__["MediaQueryStrings"].LG:
234
+ default:
235
+ return 5;
565
236
 
237
+ case _enums_MediaQueries__WEBPACK_IMPORTED_MODULE_2__["MediaQueryStrings"].MD:
238
+ return 4;
566
239
 
567
- function isOrderEqual(arr1, arr2) {
568
- var isEqual = true;
569
- if (arr1.length !== arr2.length) return false;
240
+ case _enums_MediaQueries__WEBPACK_IMPORTED_MODULE_2__["MediaQueryStrings"].SM:
241
+ return 3;
570
242
 
571
- for (var i = 0; i < arr1.length; i++) {
572
- if (arr1[i].id !== arr2[i].id) {
573
- isEqual = false;
574
- break;
575
- }
243
+ case _enums_MediaQueries__WEBPACK_IMPORTED_MODULE_2__["MediaQueryStrings"].XS:
244
+ return 2;
576
245
  }
577
-
578
- return isEqual;
579
- }
580
- /**
581
- * This function can be used to temporarily store an array of reordered objects
582
- * until the array obtained from the application store updates to the new order.
583
- *
584
- * @param items array of objects from application store.
585
- */
586
-
587
-
588
- function useReorderedItems(items) {
589
- var _useState = Object(react__WEBPACK_IMPORTED_MODULE_0__["useState"])(),
590
- _useState2 = _slicedToArray(_useState, 2),
591
- reorderedItems = _useState2[0],
592
- setReorderedItems = _useState2[1];
593
-
594
- Object(react__WEBPACK_IMPORTED_MODULE_0__["useEffect"])(function () {
595
- if (!reorderedItems) return;
596
- if (items.length !== reorderedItems.length || isOrderEqual(items, reorderedItems)) setReorderedItems(null);
597
- }, [items]);
598
- return [reorderedItems, setReorderedItems];
599
246
  }
600
247
 
601
- /***/ }),
602
-
603
- /***/ "../../libs/shared/src/hooks/UseSelectAllPages.ts":
604
- /*!********************************************************************************************!*\
605
- !*** C:/ClickView Projects/@clickview/packages/libs/shared/src/hooks/UseSelectAllPages.ts ***!
606
- \********************************************************************************************/
607
- /*! exports provided: useSelectAllPages */
608
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
609
-
610
- "use strict";
611
- __webpack_require__.r(__webpack_exports__);
612
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "useSelectAllPages", function() { return useSelectAllPages; });
613
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
614
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
615
- /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-redux */ "react-redux");
616
- /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_1__);
617
- /* harmony import */ var _common_src_react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../common/src/react */ "../../libs/common/src/react/index.ts");
618
- /* harmony import */ var _common_src_backbone_utils_FunctionHelper__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../common/src/backbone/utils/FunctionHelper */ "../../libs/common/src/backbone/utils/FunctionHelper.ts");
619
- function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
620
-
621
- function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
622
-
623
- 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); }
624
-
625
- function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }
626
-
627
- function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
628
-
629
- 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; }
630
-
631
-
632
-
633
-
634
-
635
-
636
- var safeGetCursor = function safeGetCursor(request) {
637
- return request && request.data && request.data.pagination && request.data.pagination.cursors && request.data.pagination.cursors.next;
638
- };
639
- /**
640
- * Hook to select all pages of a collection from the store and flatten them.
641
- * It will not trigger any fetches.
642
- *
643
- * @param getKey - callback function to get the key for each page.
644
- * Can be false if the key requires data that hasn't yet been fetched - e.g. user id.
645
- */
646
-
647
-
648
- function useSelectAllPages(getKey) {
649
- return Object(react_redux__WEBPACK_IMPORTED_MODULE_1__["useSelector"])(Object(react__WEBPACK_IMPORTED_MODULE_0__["useMemo"])(function () {
650
- return function (state) {
651
- var getKeyFn = getKey;
652
- var request = _common_src_backbone_utils_FunctionHelper__WEBPACK_IMPORTED_MODULE_3__["FunctionHelper"].isFunction(getKey) && _common_src_react__WEBPACK_IMPORTED_MODULE_2__["Flight"].getResponse(state, getKeyFn());
653
- var isFetching = request && request.isFetching;
654
- var shouldInitialFetch = request && request.shouldFetch;
655
- var items = request && request.data && request.data.data;
656
- var nextCursor = safeGetCursor(request); // Retrieve all pages that are currently in the store.
657
-
658
- while (nextCursor) {
659
- request = _common_src_react__WEBPACK_IMPORTED_MODULE_2__["Flight"].getResponse(state, getKeyFn(nextCursor));
660
- isFetching = request.isFetching; // If next page hasn't been fetched, break.
661
-
662
- if (request.shouldFetch) break;
663
- var newItems = request.data && request.data.data;
664
- newItems && items.push.apply(items, _toConsumableArray(newItems));
665
- nextCursor = safeGetCursor(request);
666
- }
667
-
668
- return {
669
- shouldInitialFetch: shouldInitialFetch,
670
- items: items,
671
- nextCursor: nextCursor,
672
- isFetching: isFetching
673
- };
674
- };
675
- }, [getKey]));
248
+ function isDisabled(subject, expandedSubject) {
249
+ if (!expandedSubject || subject.id === expandedSubject.id) return false;
250
+ if (expandedSubject.children.find(function (child) {
251
+ return child.id === subject.id;
252
+ })) return false;
253
+ return true;
676
254
  }
677
255
 
678
- /***/ }),
679
-
680
- /***/ "../../libs/shared/src/utils/RatingHelper.ts":
681
- /*!***************************************************************************************!*\
682
- !*** C:/ClickView Projects/@clickview/packages/libs/shared/src/utils/RatingHelper.ts ***!
683
- \***************************************************************************************/
684
- /*! exports provided: RatingHelper */
685
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
686
-
687
- "use strict";
688
- __webpack_require__.r(__webpack_exports__);
689
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RatingHelper", function() { return RatingHelper; });
690
- /* harmony import */ var _enums_UserRole__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../enums/UserRole */ "../../libs/shared/src/enums/UserRole.ts");
691
-
692
- var RatingHelper = {
693
- getMaxAllowedRatingForUser: function getMaxAllowedRatingForUser(user) {
694
- var _a, _b;
695
-
696
- if (((_a = user) === null || _a === void 0 ? void 0 : _a.onlineRole) === _enums_UserRole__WEBPACK_IMPORTED_MODULE_0__["OnlineUserRole"].Staff) return;
697
- return (_b = user) === null || _b === void 0 ? void 0 : _b.maxAllowedRating;
698
- }
699
- };
700
-
701
- /***/ }),
702
-
703
- /***/ "./src/apps/playlists/components/playlist-header/PlaylistHeader.tsx":
704
- /*!**************************************************************************!*\
705
- !*** ./src/apps/playlists/components/playlist-header/PlaylistHeader.tsx ***!
706
- \**************************************************************************/
707
- /*! exports provided: PlaylistHeader */
708
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
709
-
710
- "use strict";
711
- __webpack_require__.r(__webpack_exports__);
712
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PlaylistHeader", function() { return PlaylistHeader; });
713
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
714
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
715
- /* harmony import */ var _libs_common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../../../libs/common/src/backbone/services/LanguageService */ "../../libs/common/src/backbone/services/LanguageService.tsx");
716
- /* harmony import */ var _libs_analytics_src_AnalyticsHelper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../libs/analytics/src/AnalyticsHelper */ "../../libs/analytics/src/AnalyticsHelper.ts");
717
- /* harmony import */ var _libs_analytics_src_interfaces__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../../../../libs/analytics/src/interfaces */ "../../libs/analytics/src/interfaces/index.ts");
718
- /* harmony import */ var _libs_shared_src_hooks_UseMediaQuery__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../../../../../libs/shared/src/hooks/UseMediaQuery */ "../../libs/shared/src/hooks/UseMediaQuery.tsx");
719
- /* harmony import */ var _libs_shared_src_enums_MediaQueries__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../../../../../libs/shared/src/enums/MediaQueries */ "../../libs/shared/src/enums/MediaQueries.ts");
720
- /* harmony import */ var _libs_shared_src_utils_SvgHelper__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../../../../../libs/shared/src/utils/SvgHelper */ "../../libs/shared/src/utils/SvgHelper.ts");
721
- /* harmony import */ var _libs_shared_src_components_banner_header_BannerHeader__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../../../../../libs/shared/src/components/banner-header/BannerHeader */ "../../libs/shared/src/components/banner-header/BannerHeader.tsx");
722
- /* harmony import */ var shared_constants_LiteActions__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! shared/constants/LiteActions */ "./src/shared/constants/LiteActions.ts");
723
- /* harmony import */ var shared_constants_LiteRadioChannels__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! shared/constants/LiteRadioChannels */ "./src/shared/constants/LiteRadioChannels.ts");
724
- /* harmony import */ var _partial_loading_PartialPlaylistHeader__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./partial-loading/PartialPlaylistHeader */ "./src/apps/playlists/components/playlist-header/partial-loading/PartialPlaylistHeader.tsx");
725
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
726
-
727
- 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."); }
728
-
729
- 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); }
730
-
731
- 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; }
732
-
733
- 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; }
734
-
735
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
736
-
737
-
738
-
739
-
740
-
741
-
742
-
743
-
744
-
745
-
746
-
747
-
748
- var namespace = 'playlists.playlistHeader';
749
- var getPhrase = _libs_common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_1__["LanguageService"].encloseNamespace(namespace);
750
- function PlaylistHeader(props) {
751
- // Store isFollowing in local state so that it updates immediately.
752
- var _React$useState = react__WEBPACK_IMPORTED_MODULE_0__["useState"](props.isFollowing),
753
- _React$useState2 = _slicedToArray(_React$useState, 2),
754
- isFollowing = _React$useState2[0],
755
- setIsFollowing = _React$useState2[1];
756
-
757
- var _React$useState3 = react__WEBPACK_IMPORTED_MODULE_0__["useState"](false),
758
- _React$useState4 = _slicedToArray(_React$useState3, 2),
759
- showFollowSpinner = _React$useState4[0],
760
- setShowFollowSpinner = _React$useState4[1];
761
-
762
- react__WEBPACK_IMPORTED_MODULE_0__["useEffect"](function () {
763
- return setIsFollowing(props.isFollowing);
764
- }, [props.isFollowing]);
765
- var isMobile = Object(_libs_shared_src_hooks_UseMediaQuery__WEBPACK_IMPORTED_MODULE_4__["useMediaQuery"])(_libs_shared_src_enums_MediaQueries__WEBPACK_IMPORTED_MODULE_5__["MediaQueryStrings"].XS);
766
- if (props.showPartialLoading) return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_partial_loading_PartialPlaylistHeader__WEBPACK_IMPORTED_MODULE_10__["PartialPlaylistHeader"], null);
767
- var description = props.playlist.description;
768
- var application = props.application;
769
- var args = [props.playlist.id];
770
- var actions = [{
771
- label: getPhrase('share'),
772
- appLink: {
773
- application: shared_constants_LiteRadioChannels__WEBPACK_IMPORTED_MODULE_9__["AppChannels"].DEFAULT,
774
- action: shared_constants_LiteActions__WEBPACK_IMPORTED_MODULE_8__["Actions"].Default.SHARE,
775
- args: [props.playlist.id],
776
- params: {
777
- entityType: 'playlist'
778
- }
779
- },
780
- svgName: _libs_shared_src_utils_SvgHelper__WEBPACK_IMPORTED_MODULE_6__["cvSvgLibrary"].Share,
781
- className: 'btn btn-light',
782
- button: !isMobile
783
- }];
784
-
785
- if (props.canEdit) {
786
- actions.push( // TODO: Add collaborate
787
- {
788
- label: getPhrase('edit'),
789
- appLink: {
790
- application: application,
791
- action: shared_constants_LiteActions__WEBPACK_IMPORTED_MODULE_8__["Actions"].Playlists.EDIT_PLAYLIST,
792
- args: args
793
- },
794
- svgName: _libs_shared_src_utils_SvgHelper__WEBPACK_IMPORTED_MODULE_6__["cvSvgLibrary"].Edit,
795
- className: 'btn btn-light',
796
- button: false
797
- }, {
798
- label: getPhrase('delete'),
799
- appLink: {
800
- application: application,
801
- action: shared_constants_LiteActions__WEBPACK_IMPORTED_MODULE_8__["Actions"].Playlists.DELETE_PLAYLIST,
802
- args: args
256
+ function SubjectPreferenceGridRow(props) {
257
+ var _React$useContext = react__WEBPACK_IMPORTED_MODULE_0__["useContext"](_contexts_SubjectPreferencesContext__WEBPACK_IMPORTED_MODULE_5__["SubjectPreferencesContext"]),
258
+ expandedSubject = _React$useContext.expandedSubject,
259
+ selections = _React$useContext.selectedSubjects;
260
+
261
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null, props.subjects.map(function (subject) {
262
+ var itemDisabled = isDisabled(subject, expandedSubject);
263
+ var clickHandler = props.onSelect;
264
+ if (subject.isExpandableOption) clickHandler = props.onExpand;
265
+ if (itemDisabled) clickHandler = props.onCollapse;
266
+ if (props.hasSelectedBulk) clickHandler = function clickHandler() {};
267
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](___WEBPACK_IMPORTED_MODULE_4__["SubjectPreferenceItem"], {
268
+ key: subject.id,
269
+ subject: subject,
270
+ selected: !props.hasSelectedBulk && selections.includes(subject.id),
271
+ disabled: props.hasSelectedBulk || itemDisabled,
272
+ onClick: function onClick(e) {
273
+ return clickHandler(subject);
803
274
  },
804
- svgName: _libs_shared_src_utils_SvgHelper__WEBPACK_IMPORTED_MODULE_6__["cvSvgLibrary"].Delete,
805
- className: 'text-danger',
806
- button: false
275
+ hasSelectedBulk: props.hasSelectedBulk
807
276
  });
808
- }
809
-
810
- if (!props.canEdit) {
811
- actions.push({
812
- label: getPhrase(isFollowing ? 'following' : 'follow'),
813
- onClick: function onClick() {
814
- setIsFollowing(!isFollowing);
815
- setShowFollowSpinner(true);
816
- props.follow(!isFollowing, function () {
817
- setShowFollowSpinner(false);
818
- _libs_analytics_src_AnalyticsHelper__WEBPACK_IMPORTED_MODULE_2__["AnalyticsHelper"].logUserAction({
819
- id: props.playlistId
820
- }, {
821
- location: _libs_analytics_src_interfaces__WEBPACK_IMPORTED_MODULE_3__["LocationContext"].Banner,
822
- actionType: _libs_analytics_src_interfaces__WEBPACK_IMPORTED_MODULE_3__["UserAction"].Follow,
823
- descriptor: isFollowing ? _libs_analytics_src_interfaces__WEBPACK_IMPORTED_MODULE_3__["ToggleDescriptor"].Off : _libs_analytics_src_interfaces__WEBPACK_IMPORTED_MODULE_3__["ToggleDescriptor"].On,
824
- entity: _libs_analytics_src_interfaces__WEBPACK_IMPORTED_MODULE_3__["EntityType"].Playlist,
825
- workflowPhase: _libs_analytics_src_interfaces__WEBPACK_IMPORTED_MODULE_3__["WorkflowPhase"].Complete
826
- });
827
- }, function () {
828
- setShowFollowSpinner(false);
829
- setIsFollowing(isFollowing);
830
- });
831
- },
832
- svgName: _libs_shared_src_utils_SvgHelper__WEBPACK_IMPORTED_MODULE_6__["cvSvgLibrary"].Bell,
833
- className: "btn follow-btn btn-".concat(isFollowing ? 'dark' : 'light'),
834
- button: !isMobile,
835
- showSpinner: showFollowSpinner
836
- });
837
- }
838
-
839
- return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_components_banner_header_BannerHeader__WEBPACK_IMPORTED_MODULE_7__["BannerHeader"], {
840
- heading: props.playlist.name,
841
- banner: props.playlist.banner,
842
- imageCdnUrl: props.imageCdnUrl,
843
- actions: actions.length && actions
844
- }), !!description && react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("p", {
845
- className: 'py-2 border-bottom'
846
- }, description));
277
+ }));
847
278
  }
848
279
 
849
- /***/ }),
850
-
851
- /***/ "./src/apps/playlists/components/playlist-header/partial-loading/PartialPlaylistHeader.tsx":
852
- /*!*************************************************************************************************!*\
853
- !*** ./src/apps/playlists/components/playlist-header/partial-loading/PartialPlaylistHeader.tsx ***!
854
- \*************************************************************************************************/
855
- /*! exports provided: PartialPlaylistHeader */
856
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
857
-
858
- "use strict";
859
- __webpack_require__.r(__webpack_exports__);
860
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PartialPlaylistHeader", function() { return PartialPlaylistHeader; });
861
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
862
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
863
- /* harmony import */ var _libs_shared_src_components_banner_header_BannerHeader__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../../../../libs/shared/src/components/banner-header/BannerHeader */ "../../libs/shared/src/components/banner-header/BannerHeader.tsx");
864
- /* harmony import */ var _partial_playlist_header_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./partial-playlist-header.scss */ "./src/apps/playlists/components/playlist-header/partial-loading/partial-playlist-header.scss");
865
- /* harmony import */ var _partial_playlist_header_scss__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_partial_playlist_header_scss__WEBPACK_IMPORTED_MODULE_2__);
866
-
867
-
868
-
869
- function PartialPlaylistHeader() {
870
- return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_libs_shared_src_components_banner_header_BannerHeader__WEBPACK_IMPORTED_MODULE_1__["PartialBannerHeader"], null), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {
871
- className: 'mb-2'
872
- }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {
873
- className: "partial-loading-background my-2 border-bottom ".concat(_partial_playlist_header_scss__WEBPACK_IMPORTED_MODULE_2___default.a.partialDescription)
874
- })));
280
+ function SubjectPreferenceGrid(props) {
281
+ var subjects = props.subjects,
282
+ hasSelectedBulk = props.hasSelectedBulk,
283
+ eventHandlers = __rest(props, ["subjects", "hasSelectedBulk"]);
284
+
285
+ var _React$useContext2 = react__WEBPACK_IMPORTED_MODULE_0__["useContext"](_contexts_SubjectPreferencesContext__WEBPACK_IMPORTED_MODULE_5__["SubjectPreferencesContext"]),
286
+ expandedSubject = _React$useContext2.expandedSubject;
287
+
288
+ var itemsPerRow = useGetRowItemCapacity();
289
+ /**
290
+ * This is an array of arrays, where each sub-array is a row of classifications.
291
+ * We do this to make sure any sub-grid's of child preference options get rendered in the row
292
+ * directly beneath their parent's row.
293
+ */
294
+
295
+ var subjectRows = subjects.reduce(function (acc, subject, index) {
296
+ index % itemsPerRow === 0 ? acc.push([subject]) // Start a new row
297
+ : _common_src_react_utils_ArrayHelper__WEBPACK_IMPORTED_MODULE_1__["ArrayHelper"].last(acc).push(subject); // Fill up an existing row
298
+
299
+ return acc;
300
+ }, []);
301
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("ul", {
302
+ className: _subject_preference_grid_scss__WEBPACK_IMPORTED_MODULE_6___default.a.grid
303
+ }, subjectRows.map(function (row, i) {
304
+ var isExpanded = expandedSubject && !!row.find(function (subject) {
305
+ return expandedSubject.id === subject.id && subject.isExpandableOption;
306
+ });
307
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], {
308
+ key: i
309
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](SubjectPreferenceGridRow, Object.assign({
310
+ subjects: row,
311
+ hasSelectedBulk: hasSelectedBulk
312
+ }, eventHandlers)), isExpanded && react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("li", {
313
+ className: "".concat(_subject_preference_grid_scss__WEBPACK_IMPORTED_MODULE_6___default.a.subgrid, " m-0")
314
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](SubjectPreferenceGrid, Object.assign({
315
+ subjects: expandedSubject.children,
316
+ hasSelectedBulk: hasSelectedBulk
317
+ }, eventHandlers))));
318
+ }));
875
319
  }
876
320
 
877
321
  /***/ }),
878
322
 
879
- /***/ "./src/apps/playlists/components/playlist-header/partial-loading/partial-playlist-header.scss":
880
- /*!****************************************************************************************************!*\
881
- !*** ./src/apps/playlists/components/playlist-header/partial-loading/partial-playlist-header.scss ***!
882
- \****************************************************************************************************/
323
+ /***/ "../../libs/shared/src/apps/subjects/components/preferences/subject-preference-grid/subject-preference-grid.scss":
324
+ /*!***********************************************************************************************************************************************************!*\
325
+ !*** C:/ClickView Projects/@clickview/packages/libs/shared/src/apps/subjects/components/preferences/subject-preference-grid/subject-preference-grid.scss ***!
326
+ \***********************************************************************************************************************************************************/
883
327
  /*! no static exports found */
884
328
  /***/ (function(module, exports, __webpack_require__) {
885
329
 
886
330
  // extracted by mini-css-extract-plugin
887
- module.exports = {"partialDescription":"cv--partialDescription--3cyjk"};
331
+ module.exports = {"grid":"cv--grid--G_RXX","subgrid":"cv--subgrid--38ohZ"};
888
332
 
889
333
  /***/ }),
890
334
 
891
- /***/ "./src/apps/playlists/components/video-list/SortableVideoListContainer.tsx":
892
- /*!*********************************************************************************!*\
893
- !*** ./src/apps/playlists/components/video-list/SortableVideoListContainer.tsx ***!
894
- \*********************************************************************************/
895
- /*! exports provided: SortableVideoListContainer */
335
+ /***/ "../../libs/shared/src/apps/subjects/components/preferences/subject-preference-item/SubjectPreferenceItem.tsx":
336
+ /*!********************************************************************************************************************************************************!*\
337
+ !*** C:/ClickView Projects/@clickview/packages/libs/shared/src/apps/subjects/components/preferences/subject-preference-item/SubjectPreferenceItem.tsx ***!
338
+ \********************************************************************************************************************************************************/
339
+ /*! exports provided: SubjectPreferenceItem */
896
340
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
897
341
 
898
342
  "use strict";
899
343
  __webpack_require__.r(__webpack_exports__);
900
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SortableVideoListContainer", function() { return SortableVideoListContainer; });
344
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SubjectPreferenceItem", function() { return SubjectPreferenceItem; });
901
345
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
902
346
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
903
- /* harmony import */ var _libs_common_src_backbone__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../../../libs/common/src/backbone */ "../../libs/common/src/backbone/index.ts");
904
- /* harmony import */ var _libs_common_src_backbone_utils_FunctionHelper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../libs/common/src/backbone/utils/FunctionHelper */ "../../libs/common/src/backbone/utils/FunctionHelper.ts");
905
- /* harmony import */ var _libs_common_src_backbone_errors_DevError__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../../../../libs/common/src/backbone/errors/DevError */ "../../libs/common/src/backbone/errors/DevError.ts");
906
- /* harmony import */ var _libs_shared_src_components_video_list_VideoList__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../../../../../libs/shared/src/components/video-list/VideoList */ "../../libs/shared/src/components/video-list/VideoList.tsx");
907
- /* harmony import */ var _libs_shared_src_components_video_list_partial_loading_PartialVideoList__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../../../../../libs/shared/src/components/video-list/partial-loading/PartialVideoList */ "../../libs/shared/src/components/video-list/partial-loading/PartialVideoList.tsx");
908
- /* harmony import */ var _sortable_video_list_container_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./sortable-video-list-container.scss */ "./src/apps/playlists/components/video-list/sortable-video-list-container.scss");
909
- /* harmony import */ var _sortable_video_list_container_scss__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_sortable_video_list_container_scss__WEBPACK_IMPORTED_MODULE_6__);
910
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
911
-
912
- 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."); }
913
-
914
- 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); }
915
-
916
- 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; }
917
-
918
- 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; }
919
-
920
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
921
-
922
- var __rest = undefined && undefined.__rest || function (s, e) {
923
- var t = {};
924
-
925
- for (var p in s) {
926
- if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
927
- }
928
-
929
- if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
930
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
931
- }
932
- return t;
933
- };
934
-
935
-
936
-
937
-
938
-
939
-
940
-
941
-
942
- function SortableVideoListContainer(props) {
943
- var onSortComplete = props.onSortComplete,
944
- onSortStart = props.onSortStart,
945
- showPartialLoading = props.showPartialLoading,
946
- videoListProps = __rest(props, ["onSortComplete", "onSortStart", "showPartialLoading"]);
947
-
948
- var _React$useState = react__WEBPACK_IMPORTED_MODULE_0__["useState"](),
949
- _React$useState2 = _slicedToArray(_React$useState, 2),
950
- currentSortingIndex = _React$useState2[0],
951
- setCurrentSortingIndex = _React$useState2[1];
952
-
953
- var onSortStartHandler = function onSortStartHandler(index) {
954
- if (_libs_common_src_backbone_utils_FunctionHelper__WEBPACK_IMPORTED_MODULE_2__["FunctionHelper"].isFunction(onSortStart)) onSortStart(index);
955
- };
956
-
957
- var onSortEnd = function onSortEnd(sort) {
958
- setCurrentSortingIndex(null);
959
-
960
- if (!_libs_common_src_backbone_utils_FunctionHelper__WEBPACK_IMPORTED_MODULE_2__["FunctionHelper"].isFunction(onSortComplete)) {
961
- _libs_common_src_backbone__WEBPACK_IMPORTED_MODULE_1__["Core"].ErrorHelper["throw"](new _libs_common_src_backbone_errors_DevError__WEBPACK_IMPORTED_MODULE_3__["DevError"]('An onSortComplete callback function must be passed to SortableVideoListComponent'));
962
- return;
963
- }
964
-
965
- onSortComplete(sort.oldIndex, sort.newIndex);
966
- };
967
-
968
- if (showPartialLoading) return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_components_video_list_partial_loading_PartialVideoList__WEBPACK_IMPORTED_MODULE_5__["PartialVideoList"], {
969
- withReordering: true
347
+ /* harmony import */ var _utils_ImageHelper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../utils/ImageHelper */ "../../libs/shared/src/utils/ImageHelper.ts");
348
+ /* harmony import */ var _enums_Images__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../enums/Images */ "../../libs/shared/src/enums/Images.ts");
349
+ /* harmony import */ var _contexts_SubjectPreferencesContext__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../contexts/SubjectPreferencesContext */ "../../libs/shared/src/apps/subjects/contexts/SubjectPreferencesContext.ts");
350
+ /* harmony import */ var _preference_item_PreferenceItem__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../preference-item/PreferenceItem */ "../../libs/shared/src/apps/subjects/components/preferences/preference-item/PreferenceItem.tsx");
351
+ /* harmony import */ var _components_tooltip_Tooltip__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../../../components/tooltip/Tooltip */ "../../libs/shared/src/components/tooltip/Tooltip.tsx");
352
+
353
+
354
+
355
+
356
+
357
+
358
+ function SubjectPreferenceItem(props) {
359
+ var _a, _b, _c, _d;
360
+
361
+ var context = react__WEBPACK_IMPORTED_MODULE_0__["useContext"](_contexts_SubjectPreferencesContext__WEBPACK_IMPORTED_MODULE_3__["SubjectPreferencesContext"]);
362
+ var coverUrl = props.subject.cover ? _utils_ImageHelper__WEBPACK_IMPORTED_MODULE_1__["ImageHelper"].createUrl(props.subject.cover.url, {
363
+ size: _enums_Images__WEBPACK_IMPORTED_MODULE_2__["ImageSize"].Small
364
+ }) : '';
365
+ var childIds = props.subject.isExpandableOption ? props.subject.children.map(function (child) {
366
+ return child.id;
367
+ }) : [];
368
+ var selectedChildCount = !props.hasSelectedBulk ? (_b = (_a = context) === null || _a === void 0 ? void 0 : _a.selectedSubjects) === null || _b === void 0 ? void 0 : _b.filter(function (selection) {
369
+ return childIds.includes(selection);
370
+ }).length : 0;
371
+ var component = react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_preference_item_PreferenceItem__WEBPACK_IMPORTED_MODULE_4__["PreferenceItem"], {
372
+ name: props.subject.name,
373
+ imageUrl: coverUrl,
374
+ onClick: props.onClick,
375
+ isSelected: props.selected,
376
+ isDisabled: props.disabled,
377
+ isExpandable: props.subject.isExpandableOption,
378
+ expand: ((_d = (_c = context) === null || _c === void 0 ? void 0 : _c.expandedSubject) === null || _d === void 0 ? void 0 : _d.id) === props.subject.id,
379
+ selectedChildCount: selectedChildCount,
380
+ extraClasses: props.extraClasses,
381
+ hideStatus: props.hideStatus
970
382
  });
971
- if (!props.canEdit) return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_components_video_list_VideoList__WEBPACK_IMPORTED_MODULE_4__["VideoList"], Object.assign({}, videoListProps));
972
- return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_components_video_list_VideoList__WEBPACK_IMPORTED_MODULE_4__["SortableVideoList"], Object.assign({}, videoListProps, {
973
- currentSortingIndex: currentSortingIndex,
974
- updateBeforeSortStart: function updateBeforeSortStart(_ref) {
975
- var index = _ref.index;
976
- return setCurrentSortingIndex(index);
977
- },
978
- onSortStart: function onSortStart(_ref2) {
979
- var index = _ref2.index;
980
- return onSortStartHandler(index);
981
- },
982
- onSortEnd: onSortEnd,
983
- lockAxis: 'y',
984
- lockToContainerEdges: true,
985
- lockOffset: ['0%', '100%'],
986
- helperClass: "bg-white ".concat(_sortable_video_list_container_scss__WEBPACK_IMPORTED_MODULE_6___default.a.sortableItem),
987
- distance: 1,
988
- useDragHandle: true
989
- }));
990
- }
991
-
992
- /***/ }),
993
-
994
- /***/ "./src/apps/playlists/components/video-list/sortable-video-list-container.scss":
995
- /*!*************************************************************************************!*\
996
- !*** ./src/apps/playlists/components/video-list/sortable-video-list-container.scss ***!
997
- \*************************************************************************************/
998
- /*! no static exports found */
999
- /***/ (function(module, exports, __webpack_require__) {
1000
-
1001
- // extracted by mini-css-extract-plugin
1002
- module.exports = {"sortableItem":"cv--sortableItem--2eiPB"};
1003
-
1004
- /***/ }),
1005
-
1006
- /***/ "./src/apps/playlists/utils/PlaylistVideoActionAppLinkHelper.ts":
1007
- /*!**********************************************************************!*\
1008
- !*** ./src/apps/playlists/utils/PlaylistVideoActionAppLinkHelper.ts ***!
1009
- \**********************************************************************/
1010
- /*! exports provided: getVideoActionAppLink */
1011
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
1012
-
1013
- "use strict";
1014
- __webpack_require__.r(__webpack_exports__);
1015
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getVideoActionAppLink", function() { return getVideoActionAppLink; });
1016
- /* harmony import */ var _libs_shared_src_utils_video_actions_VideoActionsHelper__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../../../libs/shared/src/utils/video-actions/VideoActionsHelper */ "../../libs/shared/src/utils/video-actions/VideoActionsHelper.ts");
1017
- /* harmony import */ var shared_constants_LiteActions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! shared/constants/LiteActions */ "./src/shared/constants/LiteActions.ts");
1018
- /* harmony import */ var shared_constants_LiteRadioChannels__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! shared/constants/LiteRadioChannels */ "./src/shared/constants/LiteRadioChannels.ts");
1019
-
1020
-
1021
-
1022
- function getVideoActionAppLink(application, playlistId) {
1023
- return function (video, action) {
1024
- switch (action) {
1025
- case _libs_shared_src_utils_video_actions_VideoActionsHelper__WEBPACK_IMPORTED_MODULE_0__["VideoAction"].RemoveFromPlaylist:
1026
- return {
1027
- application: application,
1028
- action: shared_constants_LiteActions__WEBPACK_IMPORTED_MODULE_1__["Actions"].Playlists.REMOVE_VIDEO_FROM_PLAYLIST,
1029
- args: [video.id, playlistId]
1030
- };
1031
-
1032
- case _libs_shared_src_utils_video_actions_VideoActionsHelper__WEBPACK_IMPORTED_MODULE_0__["VideoAction"].AddToPlaylist:
1033
- return {
1034
- application: application,
1035
- action: shared_constants_LiteActions__WEBPACK_IMPORTED_MODULE_1__["Actions"].Playlists.ADD_TO_PLAYLIST,
1036
- args: [video.id]
1037
- };
1038
-
1039
- case _libs_shared_src_utils_video_actions_VideoActionsHelper__WEBPACK_IMPORTED_MODULE_0__["VideoAction"].Share:
1040
- return {
1041
- application: shared_constants_LiteRadioChannels__WEBPACK_IMPORTED_MODULE_2__["AppChannels"].DEFAULT,
1042
- action: shared_constants_LiteActions__WEBPACK_IMPORTED_MODULE_1__["Actions"].Default.SHARE,
1043
- args: [video.id],
1044
- params: {
1045
- entityType: 'video'
1046
- }
1047
- };
1048
- }
1049
- };
383
+ return props.disabled ? react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", null, component) : react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_components_tooltip_Tooltip__WEBPACK_IMPORTED_MODULE_5__["Tooltip"], {
384
+ title: props.subject.name
385
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", null, component));
1050
386
  }
1051
387
 
1052
388
  /***/ }),
1053
389
 
1054
- /***/ "./src/apps/playlists/views/playlist/PlaylistView.tsx":
1055
- /*!************************************************************!*\
1056
- !*** ./src/apps/playlists/views/playlist/PlaylistView.tsx ***!
1057
- \************************************************************/
1058
- /*! exports provided: PlaylistView */
390
+ /***/ "../../libs/shared/src/apps/subjects/contexts/SubjectPreferencesContext.ts":
391
+ /*!*********************************************************************************************************************!*\
392
+ !*** C:/ClickView Projects/@clickview/packages/libs/shared/src/apps/subjects/contexts/SubjectPreferencesContext.ts ***!
393
+ \*********************************************************************************************************************/
394
+ /*! exports provided: SubjectPreferencesContext */
1059
395
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
1060
396
 
1061
397
  "use strict";
1062
398
  __webpack_require__.r(__webpack_exports__);
1063
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PlaylistView", function() { return PlaylistView; });
399
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SubjectPreferencesContext", function() { return SubjectPreferencesContext; });
1064
400
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
1065
401
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
1066
- /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-redux */ "react-redux");
1067
- /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_1__);
1068
- /* harmony import */ var _libs_common_src_react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../libs/common/src/react */ "../../libs/common/src/react/index.ts");
1069
- /* harmony import */ var _libs_common_src_react_utils_ObjectHelper__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../../../../libs/common/src/react/utils/ObjectHelper */ "../../libs/common/src/react/utils/ObjectHelper.ts");
1070
- /* 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");
1071
- /* harmony import */ var _libs_analytics_src_interfaces__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../../../../../libs/analytics/src/interfaces */ "../../libs/analytics/src/interfaces/index.ts");
1072
- /* harmony import */ var _libs_analytics_src_AnalyticsHelper__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../../../../../libs/analytics/src/AnalyticsHelper */ "../../libs/analytics/src/AnalyticsHelper.ts");
1073
- /* harmony import */ var _libs_shared_src_apps_playlists_components_empty_state_EmptyVideoList__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../../../../../libs/shared/src/apps/playlists/components/empty-state/EmptyVideoList */ "../../libs/shared/src/apps/playlists/components/empty-state/EmptyVideoList.tsx");
1074
- /* harmony import */ var _libs_shared_src_flight_requests_ConfigRequests__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../../../../../libs/shared/src/flight-requests/ConfigRequests */ "../../libs/shared/src/flight-requests/ConfigRequests.ts");
1075
- /* harmony import */ var _libs_shared_src_flight_requests_UserRequests__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../../../../../../libs/shared/src/flight-requests/UserRequests */ "../../libs/shared/src/flight-requests/UserRequests.ts");
1076
- /* harmony import */ var _libs_shared_src_flight_requests_FavouriteVideoRequests__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../../../../../../libs/shared/src/flight-requests/FavouriteVideoRequests */ "../../libs/shared/src/flight-requests/FavouriteVideoRequests.ts");
1077
- /* 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");
1078
- /* harmony import */ var _libs_common_src_react_hooks_UseSetPageTitle__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../../../../../../../libs/common/src/react/hooks/UseSetPageTitle */ "../../libs/common/src/react/hooks/UseSetPageTitle.ts");
1079
- /* harmony import */ var _libs_shared_src_hooks_UseInfiniteList__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../../../../../../../libs/shared/src/hooks/UseInfiniteList */ "../../libs/shared/src/hooks/UseInfiniteList.ts");
1080
- /* harmony import */ var _libs_shared_src_components_infinite_scroll_footer_InfiniteScrollFooter__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../../../../../../../libs/shared/src/components/infinite-scroll-footer/InfiniteScrollFooter */ "../../libs/shared/src/components/infinite-scroll-footer/InfiniteScrollFooter.tsx");
1081
- /* harmony import */ var _libs_shared_src_utils_ReorderHelper__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../../../../../../../libs/shared/src/utils/ReorderHelper */ "../../libs/shared/src/utils/ReorderHelper.ts");
1082
- /* harmony import */ var _libs_shared_src_utils_RatingHelper__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../../../../../../../libs/shared/src/utils/RatingHelper */ "../../libs/shared/src/utils/RatingHelper.ts");
1083
- /* harmony import */ var _libs_shared_src_hooks_UseReorderedItems__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../../../../../../../libs/shared/src/hooks/UseReorderedItems */ "../../libs/shared/src/hooks/UseReorderedItems.ts");
1084
- /* harmony import */ var _libs_shared_src_context_VideoActionsContext__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../../../../../../../libs/shared/src/context/VideoActionsContext */ "../../libs/shared/src/context/VideoActionsContext.tsx");
1085
- /* harmony import */ var _libs_shared_src_hooks_UseAlerts__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../../../../../../../libs/shared/src/hooks/UseAlerts */ "../../libs/shared/src/hooks/UseAlerts.ts");
1086
- /* harmony import */ var shared_hooks_useVideoMixin__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! shared/hooks/useVideoMixin */ "./src/shared/hooks/useVideoMixin.ts");
1087
- /* harmony import */ var shared_flight_requests_VideoRequests__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! shared/flight-requests/VideoRequests */ "./src/shared/flight-requests/VideoRequests.ts");
1088
- /* harmony import */ var shared_hooks_useHandleObjectError__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! shared/hooks/useHandleObjectError */ "./src/shared/hooks/useHandleObjectError.ts");
1089
- /* harmony import */ var apps_playlists_components_playlist_header_PlaylistHeader__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! apps/playlists/components/playlist-header/PlaylistHeader */ "./src/apps/playlists/components/playlist-header/PlaylistHeader.tsx");
1090
- /* harmony import */ var apps_playlists_components_video_list_SortableVideoListContainer__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! apps/playlists/components/video-list/SortableVideoListContainer */ "./src/apps/playlists/components/video-list/SortableVideoListContainer.tsx");
1091
- /* harmony import */ var apps_playlists_utils_PlaylistVideoActionAppLinkHelper__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! apps/playlists/utils/PlaylistVideoActionAppLinkHelper */ "./src/apps/playlists/utils/PlaylistVideoActionAppLinkHelper.ts");
1092
- /* harmony import */ var _PlaylistViewUtils__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./PlaylistViewUtils */ "./src/apps/playlists/views/playlist/PlaylistViewUtils.ts");
1093
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
1094
-
1095
- 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."); }
1096
-
1097
- 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); }
1098
-
1099
- 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; }
1100
-
1101
- 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; }
1102
-
1103
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
1104
-
1105
-
1106
-
1107
-
1108
-
1109
-
1110
-
1111
-
1112
-
1113
-
1114
-
1115
-
1116
-
1117
-
1118
-
1119
-
1120
-
1121
-
1122
-
1123
-
1124
-
1125
-
1126
-
1127
-
1128
-
1129
-
1130
-
1131
-
1132
- var namespace = 'playlists.playlist';
1133
- function PlaylistView(props) {
1134
- var _a;
1135
-
1136
- var dispatch = Object(react_redux__WEBPACK_IMPORTED_MODULE_1__["useDispatch"])();
1137
- var alerts = Object(_libs_shared_src_hooks_UseAlerts__WEBPACK_IMPORTED_MODULE_19__["useAlerts"])();
1138
- var config = _libs_common_src_react__WEBPACK_IMPORTED_MODULE_2__["Flight"].useBasicFetch(_libs_shared_src_flight_requests_ConfigRequests__WEBPACK_IMPORTED_MODULE_8__["ConfigRequests"].config);
1139
- var user = _libs_common_src_react__WEBPACK_IMPORTED_MODULE_2__["Flight"].useBasicFetch(_libs_shared_src_flight_requests_UserRequests__WEBPACK_IMPORTED_MODULE_9__["UserRequests"].currentUser());
1140
- var isUserSignedIn = !_libs_common_src_react_utils_ObjectHelper__WEBPACK_IMPORTED_MODULE_3__["ObjectHelper"].isEmpty(user.data);
1141
- var maxAllowedRating = props.filterByRating ? isUserSignedIn && _libs_shared_src_utils_RatingHelper__WEBPACK_IMPORTED_MODULE_16__["RatingHelper"].getMaxAllowedRatingForUser(user.data) : null;
1142
- var playlistRequest = props.isShared ? !!user.data && _libs_shared_src_flight_requests_PlaylistRequests__WEBPACK_IMPORTED_MODULE_11__["PlaylistRequests"].getSharedPlaylist(props.playlistId, maxAllowedRating) : _libs_shared_src_flight_requests_PlaylistRequests__WEBPACK_IMPORTED_MODULE_11__["PlaylistRequests"].getPlaylist(props.playlistId);
1143
- var playlist = _libs_common_src_react__WEBPACK_IMPORTED_MODULE_2__["Flight"].useBasicFetch(playlistRequest);
1144
- Object(shared_hooks_useHandleObjectError__WEBPACK_IMPORTED_MODULE_22__["useHandleObjectError"])(playlist, _PlaylistViewUtils__WEBPACK_IMPORTED_MODULE_26__["playlistErrors"], user.data);
1145
-
1146
- var getVideosRequest = !!user.data && function (cursor) {
1147
- var request = props.isShared ? _libs_shared_src_flight_requests_PlaylistRequests__WEBPACK_IMPORTED_MODULE_11__["PlaylistRequests"].getSharedPlaylistVideos : _libs_shared_src_flight_requests_PlaylistRequests__WEBPACK_IMPORTED_MODULE_11__["PlaylistRequests"].getPlaylistVideos;
1148
- return request(props.playlistId, maxAllowedRating, cursor);
1149
- };
1150
-
1151
- var following = _libs_common_src_react__WEBPACK_IMPORTED_MODULE_2__["Flight"].useBasicFetch(!!user.data && _libs_shared_src_flight_requests_PlaylistRequests__WEBPACK_IMPORTED_MODULE_11__["PlaylistRequests"].getIsFollowingPlaylist(props.playlistId, user.data.id));
1152
-
1153
- var fetchNext = function fetchNext(cursor) {
1154
- _libs_common_src_react__WEBPACK_IMPORTED_MODULE_2__["Flight"].getFetch(dispatch, getVideosRequest(cursor))();
1155
- };
1156
402
 
1157
- var _useInfiniteList = Object(_libs_shared_src_hooks_UseInfiniteList__WEBPACK_IMPORTED_MODULE_13__["useInfiniteList"])(getVideosRequest, fetchNext),
1158
- videos = _useInfiniteList.items,
1159
- hasMore = _useInfiniteList.hasMore,
1160
- isFetching = _useInfiniteList.isFetching;
1161
-
1162
- Object(shared_hooks_useVideoMixin__WEBPACK_IMPORTED_MODULE_20__["useVideoMixin"])(videos); // Locally stored array of videos used to immediately reflect changes in order.
1163
-
1164
- var _useReorderedItems = Object(_libs_shared_src_hooks_UseReorderedItems__WEBPACK_IMPORTED_MODULE_17__["useReorderedItems"])(videos),
1165
- _useReorderedItems2 = _slicedToArray(_useReorderedItems, 2),
1166
- reorderedVideos = _useReorderedItems2[0],
1167
- setReorderedVideos = _useReorderedItems2[1];
1168
-
1169
- var restrictionsRequest = isUserSignedIn && !!videos && !!videos.length && shared_flight_requests_VideoRequests__WEBPACK_IMPORTED_MODULE_21__["VideoRequests"].getRestrictions(videos.map(function (v) {
1170
- return v.id;
1171
- }));
1172
- var restrictions = _libs_common_src_react__WEBPACK_IMPORTED_MODULE_2__["Flight"].useGetResponse(restrictionsRequest && restrictionsRequest.key);
1173
- var fetchRestrictions = _libs_common_src_react__WEBPACK_IMPORTED_MODULE_2__["Flight"].useGetFetch(restrictionsRequest);
1174
-
1175
- if (restrictionsRequest && restrictions.shouldFetch) {
1176
- fetchRestrictions();
1177
- }
1178
-
1179
- Object(_libs_common_src_react_hooks_UseSetPageTitle__WEBPACK_IMPORTED_MODULE_12__["useSetPageTitle"])(!!playlist.data && playlist.data.name, [playlist.data]);
1180
-
1181
- var onSortStart = function onSortStart(index) {
1182
- var video = videos[index];
1183
- if (video) _PlaylistViewUtils__WEBPACK_IMPORTED_MODULE_26__["logSortAction"](props.playlistId, video.id, _libs_analytics_src_interfaces__WEBPACK_IMPORTED_MODULE_5__["WorkflowPhase"].Start);
1184
- };
1185
-
1186
- var onSortComplete = function onSortComplete(oldIdx, newIdx) {
1187
- if (oldIdx === newIdx) return;
1188
- var video = videos[oldIdx];
1189
- if (!video) return;
1190
-
1191
- var _ReorderHelper$reorde = _libs_shared_src_utils_ReorderHelper__WEBPACK_IMPORTED_MODULE_15__["ReorderHelper"].reorder(videos, oldIdx, newIdx),
1192
- reorderedItems = _ReorderHelper$reorde.reorderedItems,
1193
- reorderRequest = _ReorderHelper$reorde.reorderRequest;
1194
-
1195
- setReorderedVideos(reorderedItems);
1196
- _PlaylistViewUtils__WEBPACK_IMPORTED_MODULE_26__["logSortAction"](props.playlistId, video.id, _libs_analytics_src_interfaces__WEBPACK_IMPORTED_MODULE_5__["WorkflowPhase"].Complete);
1197
-
1198
- var onError = function onError() {
1199
- setReorderedVideos(null);
1200
- };
1201
-
1202
- _libs_common_src_react__WEBPACK_IMPORTED_MODULE_2__["Flight"].fetch(dispatch, _libs_shared_src_flight_requests_PlaylistRequests__WEBPACK_IMPORTED_MODULE_11__["PlaylistRequests"].reorderVideos(props.playlistId, reorderRequest, null, onError));
1203
- };
1204
-
1205
- var follow = function follow(shouldFollow, onSuccess, onError) {
1206
- var req = shouldFollow ? _libs_shared_src_flight_requests_PlaylistRequests__WEBPACK_IMPORTED_MODULE_11__["PlaylistRequests"].followPlaylist : _libs_shared_src_flight_requests_PlaylistRequests__WEBPACK_IMPORTED_MODULE_11__["PlaylistRequests"].unfollowPlaylist;
1207
-
1208
- var error = function error() {
1209
- onError();
1210
- alerts.error(_libs_common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_4__["LanguageService"].getPhrase(namespace, shouldFollow ? 'followError' : 'unfollowError'));
1211
- };
1212
-
1213
- _libs_common_src_react__WEBPACK_IMPORTED_MODULE_2__["Flight"].fetch(dispatch, req(props.playlistId, user.data.id, onSuccess, error));
1214
- };
1215
-
1216
- var setFavourite = function setFavourite(video, shouldFavourite, onError) {
1217
- _libs_common_src_react__WEBPACK_IMPORTED_MODULE_2__["Flight"].fetch(dispatch, _libs_shared_src_flight_requests_FavouriteVideoRequests__WEBPACK_IMPORTED_MODULE_10__["FavouriteVideoRequests"].updateIsVideoFavourited(video.id, user.data.id, shouldFavourite, function () {
1218
- _libs_analytics_src_AnalyticsHelper__WEBPACK_IMPORTED_MODULE_6__["AnalyticsHelper"].logUserAction({
1219
- id: video.id
1220
- }, {
1221
- entity: _libs_analytics_src_interfaces__WEBPACK_IMPORTED_MODULE_5__["EntityType"].Video,
1222
- actionType: _libs_analytics_src_interfaces__WEBPACK_IMPORTED_MODULE_5__["UserAction"].Favourite,
1223
- descriptor: shouldFavourite ? _libs_analytics_src_interfaces__WEBPACK_IMPORTED_MODULE_5__["ToggleDescriptor"].On : _libs_analytics_src_interfaces__WEBPACK_IMPORTED_MODULE_5__["ToggleDescriptor"].Off,
1224
- location: _libs_analytics_src_interfaces__WEBPACK_IMPORTED_MODULE_5__["LocationContext"].VideoThumbnail,
1225
- workflowPhase: _libs_analytics_src_interfaces__WEBPACK_IMPORTED_MODULE_5__["WorkflowPhase"].Complete
1226
- });
1227
- alerts.success(_libs_common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_4__["LanguageService"].getPhrase(namespace, shouldFavourite ? 'favourited' : 'unfavourited', {
1228
- video: video.name
1229
- }));
1230
- }, onError));
1231
- };
1232
-
1233
- var canEdit = !!props.allowEdit && _PlaylistViewUtils__WEBPACK_IMPORTED_MODULE_26__["canEditPlaylist"](playlist.data, user.data);
1234
- var playlistIsEmpty = !!videos && videos.length === 0;
1235
- return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_context_VideoActionsContext__WEBPACK_IMPORTED_MODULE_18__["VideoActionsContext"].Provider, {
1236
- value: {
1237
- videoActions: _PlaylistViewUtils__WEBPACK_IMPORTED_MODULE_26__["getVideoActions"](canEdit),
1238
- getActionAppLink: Object(apps_playlists_utils_PlaylistVideoActionAppLinkHelper__WEBPACK_IMPORTED_MODULE_25__["getVideoActionAppLink"])(props.application, props.playlistId),
1239
- hideLabel: true
1240
- }
1241
- }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
1242
- className: 'bg-white px-3'
1243
- }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](apps_playlists_components_playlist_header_PlaylistHeader__WEBPACK_IMPORTED_MODULE_23__["PlaylistHeader"], {
1244
- playlistId: props.playlistId,
1245
- playlist: playlist.data,
1246
- hasVideos: !playlistIsEmpty,
1247
- isFollowing: (_a = following.data) === null || _a === void 0 ? void 0 : _a.isFollowing,
1248
- follow: follow,
1249
- application: props.application,
1250
- canEdit: canEdit,
1251
- isShared: props.isShared,
1252
- showBreadcrumbs: props.showBreadcrumbs,
1253
- showDateMetadata: props.showDateMetadata,
1254
- playAllAppLink: props.playAllAppLink,
1255
- showPartialLoading: !playlist.data || !videos || !user.data || !config.data || !following.data,
1256
- lastUpdated: !!videos && _PlaylistViewUtils__WEBPACK_IMPORTED_MODULE_26__["getLastUpdatedDate"](videos),
1257
- imageCdnUrl: !!config.data && config.data.imageCdnUrl,
1258
- returnAppLink: props.returnAppLink
1259
- }), react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
1260
- className: 'mt-2'
1261
- }, playlistIsEmpty ? !!config.data && !!user.data && !!playlist.data && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_apps_playlists_components_empty_state_EmptyVideoList__WEBPACK_IMPORTED_MODULE_7__["EmptyVideoListComponent"], {
1262
- playlist: playlist.data,
1263
- currentUser: user.data,
1264
- supportSiteUrl: config.data.supportSiteUrl
1265
- }) : react__WEBPACK_IMPORTED_MODULE_0__["createElement"](apps_playlists_components_video_list_SortableVideoListContainer__WEBPACK_IMPORTED_MODULE_24__["SortableVideoListContainer"], {
1266
- videos: reorderedVideos || videos,
1267
- playlistId: !!playlist.data && playlist.data.id,
1268
- onSortStart: onSortStart,
1269
- onSortComplete: onSortComplete,
1270
- isUserSignedIn: isUserSignedIn,
1271
- canEdit: canEdit,
1272
- showPartialLoading: !videos || !user.data || !config.data,
1273
- getVideoAppLink: props.getVideoAppLink,
1274
- getSeriesAppLink: props.getSeriesAppLink,
1275
- fetchRestrictions: fetchRestrictions,
1276
- setFavourite: setFavourite
1277
- })), !!hasMore && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_components_infinite_scroll_footer_InfiniteScrollFooter__WEBPACK_IMPORTED_MODULE_14__["InfiniteScrollFooter"], {
1278
- isFetching: isFetching,
1279
- onClick: fetchNext
1280
- })));
1281
- }
403
+ var SubjectPreferencesContext = Object(react__WEBPACK_IMPORTED_MODULE_0__["createContext"])(undefined);
1282
404
 
1283
405
  /***/ }),
1284
406
 
1285
- /***/ "./src/apps/playlists/views/playlist/PlaylistViewUtils.ts":
1286
- /*!****************************************************************!*\
1287
- !*** ./src/apps/playlists/views/playlist/PlaylistViewUtils.ts ***!
1288
- \****************************************************************/
1289
- /*! exports provided: getLastUpdatedDate, getVideoActions, logSortAction, canEditPlaylist, playlistErrors */
407
+ /***/ "../../libs/shared/src/hooks/UseAlerts.ts":
408
+ /*!************************************************************************************!*\
409
+ !*** C:/ClickView Projects/@clickview/packages/libs/shared/src/hooks/UseAlerts.ts ***!
410
+ \************************************************************************************/
411
+ /*! exports provided: useAlerts */
1290
412
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
1291
413
 
1292
414
  "use strict";
1293
415
  __webpack_require__.r(__webpack_exports__);
1294
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getLastUpdatedDate", function() { return getLastUpdatedDate; });
1295
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getVideoActions", function() { return getVideoActions; });
1296
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "logSortAction", function() { return logSortAction; });
1297
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "canEditPlaylist", function() { return canEditPlaylist; });
1298
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "playlistErrors", function() { return playlistErrors; });
1299
- /* harmony import */ var _libs_common_src_react_utils_ArrayHelper__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../../../../libs/common/src/react/utils/ArrayHelper */ "../../libs/common/src/react/utils/ArrayHelper.ts");
1300
- /* harmony import */ var _libs_common_src_react_utils_ObjectHelper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../../../libs/common/src/react/utils/ObjectHelper */ "../../libs/common/src/react/utils/ObjectHelper.ts");
1301
- /* harmony import */ var _libs_shared_src_utils_video_actions_VideoActionsHelper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../libs/shared/src/utils/video-actions/VideoActionsHelper */ "../../libs/shared/src/utils/video-actions/VideoActionsHelper.ts");
1302
- /* harmony import */ var _libs_analytics_src_interfaces__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../../../../libs/analytics/src/interfaces */ "../../libs/analytics/src/interfaces/index.ts");
1303
- /* harmony import */ var _libs_analytics_src_AnalyticsHelper__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../../../../../libs/analytics/src/AnalyticsHelper */ "../../libs/analytics/src/AnalyticsHelper.ts");
1304
- /* harmony import */ var shared_errors_playlists_playlist_not_found_LitePlaylistNotFoundError__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! shared/errors/playlists/playlist-not-found/LitePlaylistNotFoundError */ "./src/shared/errors/playlists/playlist-not-found/LitePlaylistNotFoundError.ts");
1305
- /* harmony import */ var shared_errors_playlists_playlist_private_PlaylistPrivateError__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! shared/errors/playlists/playlist-private/PlaylistPrivateError */ "./src/shared/errors/playlists/playlist-private/PlaylistPrivateError.ts");
1306
-
416
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "useAlerts", function() { return useAlerts; });
417
+ /* harmony import */ var _common_src_react_hooks_UseService__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../common/src/react/hooks/UseService */ "../../libs/common/src/react/hooks/UseService.ts");
418
+ /* harmony import */ var _common_src_backbone_services_BaseAlertService__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../common/src/backbone/services/BaseAlertService */ "../../libs/common/src/backbone/services/BaseAlertService.ts");
419
+ /* harmony import */ var _common_src_backbone_constants_CommonServices__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../common/src/backbone/constants/CommonServices */ "../../libs/common/src/backbone/constants/CommonServices.ts");
1307
420
 
1308
421
 
1309
422
 
1310
-
1311
-
1312
-
1313
- /**
1314
- * NOTE:
1315
- * This will be wrong if we increase the playlist limit from 100, or
1316
- * stop fetching all 100 videos at once.
1317
- */
1318
-
1319
- function getLastUpdatedDate(videos) {
1320
- var videoLastUpdatedDates = videos && videos.length && videos.map(function (v) {
1321
- return v.dateAssociated;
1322
- });
1323
- return videoLastUpdatedDates && videoLastUpdatedDates.length ? _libs_common_src_react_utils_ArrayHelper__WEBPACK_IMPORTED_MODULE_0__["ArrayHelper"].max(videoLastUpdatedDates, function (date) {
1324
- return new Date(date).getTime();
1325
- }) : null;
1326
- }
1327
- function getVideoActions(canEdit) {
1328
- return [canEdit ? _libs_shared_src_utils_video_actions_VideoActionsHelper__WEBPACK_IMPORTED_MODULE_2__["VideoAction"].RemoveFromPlaylist : _libs_shared_src_utils_video_actions_VideoActionsHelper__WEBPACK_IMPORTED_MODULE_2__["VideoAction"].AddToPlaylist, _libs_shared_src_utils_video_actions_VideoActionsHelper__WEBPACK_IMPORTED_MODULE_2__["VideoAction"].Share];
1329
- }
1330
- function logSortAction(playlistId, videoId, workflowPhase) {
1331
- _libs_analytics_src_AnalyticsHelper__WEBPACK_IMPORTED_MODULE_4__["AnalyticsHelper"].logUserAction({
1332
- id: videoId,
1333
- playlistId: playlistId
1334
- }, {
1335
- location: _libs_analytics_src_interfaces__WEBPACK_IMPORTED_MODULE_3__["LocationContext"].VideoList,
1336
- entity: _libs_analytics_src_interfaces__WEBPACK_IMPORTED_MODULE_3__["EntityType"].Video,
1337
- actionType: _libs_analytics_src_interfaces__WEBPACK_IMPORTED_MODULE_3__["UserAction"].Move,
1338
- workflowPhase: workflowPhase
1339
- });
1340
- }
1341
- function canEditPlaylist(playlist, user) {
1342
- if (_libs_common_src_react_utils_ObjectHelper__WEBPACK_IMPORTED_MODULE_1__["ObjectHelper"].isEmpty(user) || !playlist || _libs_common_src_react_utils_ObjectHelper__WEBPACK_IMPORTED_MODULE_1__["ObjectHelper"].isEmpty(playlist.owner)) return false;
1343
- return playlist.owner.id === user.id;
1344
- }
1345
- var playlistErrors = {
1346
- notFound: shared_errors_playlists_playlist_not_found_LitePlaylistNotFoundError__WEBPACK_IMPORTED_MODULE_5__["PlaylistNotFoundError"],
1347
- forbidden: {
1348
- privacy: shared_errors_playlists_playlist_private_PlaylistPrivateError__WEBPACK_IMPORTED_MODULE_6__["PlaylistPrivateError"]
1349
- }
1350
- };
1351
-
1352
- /***/ }),
1353
-
1354
- /***/ "./src/apps/watch-history/flight-requests/VideoHistoryRequests.ts":
1355
- /*!************************************************************************!*\
1356
- !*** ./src/apps/watch-history/flight-requests/VideoHistoryRequests.ts ***!
1357
- \************************************************************************/
1358
- /*! exports provided: VideoHistoryRequests */
1359
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
1360
-
1361
- "use strict";
1362
- __webpack_require__.r(__webpack_exports__);
1363
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VideoHistoryRequests", function() { return VideoHistoryRequests; });
1364
- var VideoHistoryRequests = {
1365
- userVideoHistory: function userVideoHistory(customerId, userId, cursor, success, error, always) {
1366
- var key = "video:history:".concat(customerId, ":").concat(userId);
1367
- var url = "/api/videoviews/v1/customers/".concat(customerId, "/users/").concat(userId, "/videos/history");
1368
-
1369
- if (cursor) {
1370
- key += ":".concat(cursor);
1371
- url += "?cursor=".concat(cursor);
423
+ var useAlerts = function useAlerts() {
424
+ var alertService = Object(_common_src_react_hooks_UseService__WEBPACK_IMPORTED_MODULE_0__["useService"])(_common_src_backbone_constants_CommonServices__WEBPACK_IMPORTED_MODULE_2__["CommonServices"].ALERT);
425
+ return {
426
+ success: function success(alertContent) {
427
+ alertService.success(alertContent)();
428
+ },
429
+ error: function error(alertContent) {
430
+ alertService.error(alertContent)();
431
+ },
432
+ warning: function warning(alertContent) {
433
+ alertService.createAlert({
434
+ type: _common_src_backbone_services_BaseAlertService__WEBPACK_IMPORTED_MODULE_1__["AlertType"].Warning,
435
+ heading: _common_src_backbone_services_BaseAlertService__WEBPACK_IMPORTED_MODULE_1__["DefaultAlertHeading"].Warning,
436
+ message: alertContent
437
+ });
1372
438
  }
1373
-
1374
- return {
1375
- key: key,
1376
- url: url,
1377
- success: success,
1378
- error: error,
1379
- always: always
1380
- };
1381
- },
1382
- videoHistory: function videoHistory(customerId, userId, ids, success, error, always) {
1383
- var params = ids.sort().map(function (i) {
1384
- return "videoId=".concat(i);
1385
- });
1386
- return {
1387
- key: "video:history:".concat(customerId, ":").concat(userId, ":videos:").concat(params.join('&')),
1388
- url: "/api/videoviews/v1/customers/".concat(customerId, "/users/").concat(userId, "/videos/history?").concat(params.join('&')),
1389
- formatData: function formatData(historyCollection) {
1390
- var _a;
1391
-
1392
- if (!((_a = historyCollection) === null || _a === void 0 ? void 0 : _a.length)) return historyCollection;
1393
- /**
1394
- * Data is formatted to enable it to be merged with the existing video object in the store
1395
- * Where we need to merge more history properties with the video object, map them below.
1396
- */
1397
-
1398
- return historyCollection.map(function (watchHistory) {
1399
- return {
1400
- id: watchHistory.videoId,
1401
- lastProgressPoint: watchHistory.lastProgressPoint
1402
- };
1403
- });
1404
- },
1405
- success: success,
1406
- error: error,
1407
- always: always
1408
- };
1409
- }
1410
- };
1411
-
1412
- /***/ }),
1413
-
1414
- /***/ "./src/shared/hooks/useHandleObjectError.ts":
1415
- /*!**************************************************!*\
1416
- !*** ./src/shared/hooks/useHandleObjectError.ts ***!
1417
- \**************************************************/
1418
- /*! exports provided: useHandleObjectError */
1419
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
1420
-
1421
- "use strict";
1422
- __webpack_require__.r(__webpack_exports__);
1423
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "useHandleObjectError", function() { return useHandleObjectError; });
1424
- /* harmony import */ var _libs_common_src_backbone__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../../libs/common/src/backbone */ "../../libs/common/src/backbone/index.ts");
1425
- /* harmony import */ var _libs_common_src_backbone_enums_HttpStatus__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../libs/common/src/backbone/enums/HttpStatus */ "../../libs/common/src/backbone/enums/HttpStatus.ts");
1426
- /* harmony import */ var shared_errors_general_not_found_LiteNotFoundError__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! shared/errors/general/not-found/LiteNotFoundError */ "./src/shared/errors/general/not-found/LiteNotFoundError.ts");
1427
- /* harmony import */ var shared_errors_general_unspecified_error_UnspecifiedError__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! shared/errors/general/unspecified-error/UnspecifiedError */ "./src/shared/errors/general/unspecified-error/UnspecifiedError.ts");
1428
- /* harmony import */ var shared_errors_general_private_resource_PrivateResourceError__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! shared/errors/general/private-resource/PrivateResourceError */ "./src/shared/errors/general/private-resource/PrivateResourceError.ts");
1429
- /* harmony import */ var shared_errors_general_region_locked_resource_RegionLockedResourceError__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! shared/errors/general/region-locked-resource/RegionLockedResourceError */ "./src/shared/errors/general/region-locked-resource/RegionLockedResourceError.ts");
1430
-
1431
-
1432
-
1433
-
1434
-
1435
-
1436
- var defaultErrors = {
1437
- notFound: shared_errors_general_not_found_LiteNotFoundError__WEBPACK_IMPORTED_MODULE_2__["NotFoundError"],
1438
- forbidden: {
1439
- rating: shared_errors_general_private_resource_PrivateResourceError__WEBPACK_IMPORTED_MODULE_4__["PrivateResourceError"],
1440
- yearLevel: shared_errors_general_private_resource_PrivateResourceError__WEBPACK_IMPORTED_MODULE_4__["PrivateResourceError"],
1441
- region: shared_errors_general_region_locked_resource_RegionLockedResourceError__WEBPACK_IMPORTED_MODULE_5__["RegionLockedResourceError"],
1442
- privacy: shared_errors_general_private_resource_PrivateResourceError__WEBPACK_IMPORTED_MODULE_4__["PrivateResourceError"]
1443
- },
1444
- badRequest: shared_errors_general_unspecified_error_UnspecifiedError__WEBPACK_IMPORTED_MODULE_3__["UnspecifiedError"]
1445
- };
1446
- function useHandleObjectError(object, customErrors, currentUser) {
1447
- var errors = Object.assign(Object.assign({}, defaultErrors), customErrors);
1448
- if (!object.statusCode || object.statusCode === _libs_common_src_backbone_enums_HttpStatus__WEBPACK_IMPORTED_MODULE_1__["HttpStatus"].Ok) return;
1449
-
1450
- if (object.statusCode === _libs_common_src_backbone_enums_HttpStatus__WEBPACK_IMPORTED_MODULE_1__["HttpStatus"].NotFound) {
1451
- _libs_common_src_backbone__WEBPACK_IMPORTED_MODULE_0__["Core"].ErrorHelper["throw"](new errors.notFound());
1452
- return;
1453
- }
1454
-
1455
- if (object.statusCode === _libs_common_src_backbone_enums_HttpStatus__WEBPACK_IMPORTED_MODULE_1__["HttpStatus"].Forbidden) {
1456
- /**
1457
- * TODO: Work out how to go about handling all forbidden errors, such as region locking, year levels,
1458
- * ratings, and privacy.
1459
- */
1460
- _libs_common_src_backbone__WEBPACK_IMPORTED_MODULE_0__["Core"].ErrorHelper["throw"](new errors.forbidden.privacy());
1461
- return;
1462
- }
1463
-
1464
- _libs_common_src_backbone__WEBPACK_IMPORTED_MODULE_0__["Core"].ErrorHelper["throw"](new errors.badRequest());
1465
- }
1466
-
1467
- /***/ }),
1468
-
1469
- /***/ "./src/shared/hooks/useVideoMixin.ts":
1470
- /*!*******************************************!*\
1471
- !*** ./src/shared/hooks/useVideoMixin.ts ***!
1472
- \*******************************************/
1473
- /*! exports provided: useVideoMixin */
1474
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
1475
-
1476
- "use strict";
1477
- __webpack_require__.r(__webpack_exports__);
1478
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "useVideoMixin", function() { return useVideoMixin; });
1479
- /* harmony import */ var _libs_common_src_react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../../libs/common/src/react */ "../../libs/common/src/react/index.ts");
1480
- /* harmony import */ var _libs_shared_src_flight_requests_UserRequests__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../libs/shared/src/flight-requests/UserRequests */ "../../libs/shared/src/flight-requests/UserRequests.ts");
1481
- /* harmony import */ var _libs_shared_src_flight_requests_FavouriteVideoRequests__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../libs/shared/src/flight-requests/FavouriteVideoRequests */ "../../libs/shared/src/flight-requests/FavouriteVideoRequests.ts");
1482
- /* harmony import */ var shared_flight_requests_VideoRequests__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! shared/flight-requests/VideoRequests */ "./src/shared/flight-requests/VideoRequests.ts");
1483
- /* harmony import */ var apps_watch_history_flight_requests_VideoHistoryRequests__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! apps/watch-history/flight-requests/VideoHistoryRequests */ "./src/apps/watch-history/flight-requests/VideoHistoryRequests.ts");
1484
- function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
1485
-
1486
- function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
1487
-
1488
- 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); }
1489
-
1490
- function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }
1491
-
1492
- function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
1493
-
1494
- 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; }
1495
-
1496
-
1497
-
1498
-
1499
-
1500
-
1501
- var defaults = {
1502
- ratings: true,
1503
- favourites: true,
1504
- watchHistory: true
439
+ };
1505
440
  };
1506
441
 
1507
- function fetchAttribute(videosFetched, request) {
1508
- var _a;
1509
-
1510
- var attribute = _libs_common_src_react__WEBPACK_IMPORTED_MODULE_0__["Flight"].useGetResponse((_a = request) === null || _a === void 0 ? void 0 : _a.key);
1511
- var fetch = _libs_common_src_react__WEBPACK_IMPORTED_MODULE_0__["Flight"].useGetFetch(request);
1512
- if (videosFetched && request && attribute.shouldFetch) fetch();
1513
- }
1514
-
1515
- function useVideoMixin(videos) {
1516
- var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
1517
-
1518
- var _a, _b, _c;
1519
-
1520
- var _Object$assign = Object.assign(Object.assign({}, defaults), options),
1521
- ratings = _Object$assign.ratings,
1522
- favourites = _Object$assign.favourites,
1523
- watchHistory = _Object$assign.watchHistory;
1524
-
1525
- var currentUser = _libs_common_src_react__WEBPACK_IMPORTED_MODULE_0__["Flight"].useBasicFetch(_libs_shared_src_flight_requests_UserRequests__WEBPACK_IMPORTED_MODULE_1__["UserRequests"].currentUser());
1526
- var videoIds = videos && (Array.isArray(videos) ? videos.filter(Boolean).map(function (v) {
1527
- return v.id;
1528
- }) : videos.data.filter(Boolean).map(function (v) {
1529
- return v.id;
1530
- }));
1531
- var user = currentUser.data;
1532
- var requests = [];
1533
- if (ratings) requests = [].concat(_toConsumableArray(requests), [!!((_a = videoIds) === null || _a === void 0 ? void 0 : _a.length) && shared_flight_requests_VideoRequests__WEBPACK_IMPORTED_MODULE_3__["VideoRequests"].videoRatings(videoIds)]);
1534
- if (favourites) requests = [].concat(_toConsumableArray(requests), [!!((_b = videoIds) === null || _b === void 0 ? void 0 : _b.length) && user && _libs_shared_src_flight_requests_FavouriteVideoRequests__WEBPACK_IMPORTED_MODULE_2__["FavouriteVideoRequests"].isFavourited(user.id, videoIds)]);
1535
- if (watchHistory) requests = [].concat(_toConsumableArray(requests), [!!((_c = videoIds) === null || _c === void 0 ? void 0 : _c.length) && user && apps_watch_history_flight_requests_VideoHistoryRequests__WEBPACK_IMPORTED_MODULE_4__["VideoHistoryRequests"].videoHistory(user.customerId, user.id, videoIds)]);
1536
- requests.forEach(function (r) {
1537
- return fetchAttribute(!!videos, r);
1538
- });
1539
- }
1540
-
1541
442
  /***/ })
1542
443
 
1543
444
  }]);