@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,411 +1,325 @@
1
1
  (window["webpackJsonp_clickview_lite"] = window["webpackJsonp_clickview_lite"] || []).push([[13],{
2
2
 
3
- /***/ "../../libs/shared/src/flight-requests/FavouriteVideoRequests.ts":
4
- /*!***********************************************************************************************************!*\
5
- !*** C:/ClickView Projects/@clickview/packages/libs/shared/src/flight-requests/FavouriteVideoRequests.ts ***!
6
- \***********************************************************************************************************/
7
- /*! exports provided: FavouriteVideoRequests */
3
+ /***/ "../../libs/common/src/react/utils/TypeHelper.ts":
4
+ /*!*******************************************************************************************!*\
5
+ !*** C:/ClickView Projects/@clickview/packages/libs/common/src/react/utils/TypeHelper.ts ***!
6
+ \*******************************************************************************************/
7
+ /*! exports provided: TypeHelper */
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__, "FavouriteVideoRequests", function() { return FavouriteVideoRequests; });
13
- /* 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");
14
- /* harmony import */ var _constants_WithStatements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../constants/WithStatements */ "../../libs/shared/src/constants/WithStatements.ts");
15
- var __rest = undefined && undefined.__rest || function (s, e) {
16
- var t = {};
17
-
18
- for (var p in s) {
19
- if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
20
- }
12
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TypeHelper", function() { return TypeHelper; });
13
+ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
21
14
 
22
- if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
23
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
15
+ var TypeHelper = {
16
+ isNumber: function isNumber(obj) {
17
+ return TypeHelper.isType(obj, 'number');
18
+ },
19
+ isString: function isString(obj) {
20
+ return TypeHelper.isType(obj, 'string');
21
+ },
22
+ isType: function isType(obj, type) {
23
+ return _typeof(obj) === type;
24
24
  }
25
- return t;
26
25
  };
27
26
 
27
+ /***/ }),
28
28
 
29
+ /***/ "../../libs/shared/src/components/search-bar/SearchBar.tsx":
30
+ /*!*****************************************************************************************************!*\
31
+ !*** C:/ClickView Projects/@clickview/packages/libs/shared/src/components/search-bar/SearchBar.tsx ***!
32
+ \*****************************************************************************************************/
33
+ /*! exports provided: SearchBar */
34
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
29
35
 
36
+ "use strict";
37
+ __webpack_require__.r(__webpack_exports__);
38
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SearchBar", function() { return SearchBar; });
39
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
40
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
41
+ /* harmony import */ var react_autosuggest__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-autosuggest */ "react-autosuggest");
42
+ /* harmony import */ var react_autosuggest__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_autosuggest__WEBPACK_IMPORTED_MODULE_1__);
43
+ /* harmony import */ var _common_src_backbone_utils_FunctionHelper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../common/src/backbone/utils/FunctionHelper */ "../../libs/common/src/backbone/utils/FunctionHelper.ts");
44
+ /* harmony import */ var _common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../common/src/backbone/services/LanguageService */ "../../libs/common/src/backbone/services/LanguageService.tsx");
45
+ /* harmony import */ var _hooks_UseMediaQuery__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../hooks/UseMediaQuery */ "../../libs/shared/src/hooks/UseMediaQuery.tsx");
46
+ /* harmony import */ var _enums_MediaQueries__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../enums/MediaQueries */ "../../libs/shared/src/enums/MediaQueries.ts");
47
+ /* harmony import */ var _SearchUtils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./SearchUtils */ "../../libs/shared/src/components/search-bar/SearchUtils.tsx");
48
+ /* harmony import */ var _SearchInput__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./SearchInput */ "../../libs/shared/src/components/search-bar/SearchInput.tsx");
49
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
30
50
 
31
- function favouriteVideo(videoId, userId, success, error) {
32
- return {
33
- url: "/api/domain/v2/objects/".concat(userId),
34
- key: "favourite:video:".concat(userId, ":").concat(videoId),
35
- data: {
36
- favouriteVideos: videoId
37
- },
38
- type: _common_src_backbone_enums_HttpVerbs__WEBPACK_IMPORTED_MODULE_0__["HttpVerbs"].PUT,
39
- invalidationKeys: ["favourite:videos:".concat(userId), "video:is:favourited:".concat(userId)],
40
- success: success,
41
- error: error
42
- };
43
- }
51
+ 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."); }
44
52
 
45
- function unfavouriteVideo(videoId, userId, success, error) {
46
- return {
47
- url: "/api/domain/v2/objects/".concat(userId, "/favouriteVideos/").concat(videoId),
48
- key: "favourite:video:".concat(userId, ":").concat(videoId),
49
- type: _common_src_backbone_enums_HttpVerbs__WEBPACK_IMPORTED_MODULE_0__["HttpVerbs"].DELETE,
50
- invalidationKeys: ["favourite:videos:".concat(userId), "video:is:favourited:".concat(userId)],
51
- success: success,
52
- error: error
53
- };
54
- }
53
+ 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); }
55
54
 
56
- var FavouriteVideoRequests = {
57
- favouriteVideos: function favouriteVideos(userId, cursor) {
58
- var query = "".concat(_constants_WithStatements__WEBPACK_IMPORTED_MODULE_1__["SharedWithStatements"].VIDEO_COLLECTION).concat(addCursor(cursor));
59
- return {
60
- url: "/api/domain/v2/objects/".concat(userId, "/favouriteVideos?query=").concat(query),
61
- key: "favourite:videos:".concat(userId).concat(cursor ? ":".concat(cursor) : '')
62
- };
63
- },
64
- updateIsVideoFavourited: function updateIsVideoFavourited(videoId, userId, shouldFavourite, success, error) {
65
- var requestFn = shouldFavourite ? favouriteVideo : unfavouriteVideo;
66
- return requestFn(videoId, userId, success, error);
67
- },
68
- isFavourited: function isFavourited(userId, ids) {
69
- var sortedIds = ids.slice().sort();
70
- var params = sortedIds.map(function (i) {
71
- return "id=".concat(i);
72
- });
73
- if (!params.length) return;
74
- return {
75
- url: "/api/domain/v2/objects?query=favouritedBy{id:".concat(userId, "}&").concat(params.join('&')),
76
- key: "video:is:favourited:".concat(userId, ":by:id:").concat(sortedIds.join(',')),
77
- formatData: function formatData(videos) {
78
- var _a;
55
+ 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; }
79
56
 
80
- if (!((_a = videos) === null || _a === void 0 ? void 0 : _a.length)) return videos;
57
+ 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; }
81
58
 
82
- var setIsFavourited = function setIsFavourited(video) {
83
- var _a, _b;
59
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
84
60
 
85
- var favouritedBy = video.favouritedBy,
86
- v = __rest(video, ["favouritedBy"]); // As we filtered by userId, if there are any users, set isFavourited to true.
87
61
 
88
62
 
89
- return Object.assign(Object.assign({}, v), {
90
- isFavourited: !!((_b = (_a = favouritedBy) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.length)
91
- });
92
- };
93
63
 
94
- return videos.map(setIsFavourited);
95
- }
96
- };
97
- }
98
- };
99
64
 
100
- function addCursor(cursor) {
101
- return cursor ? "&cursor=".concat(cursor) : '';
102
- }
103
65
 
104
- /***/ }),
105
66
 
106
- /***/ "../../libs/shared/src/flight-requests/ThemeRequests.ts":
107
- /*!**************************************************************************************************!*\
108
- !*** C:/ClickView Projects/@clickview/packages/libs/shared/src/flight-requests/ThemeRequests.ts ***!
109
- \**************************************************************************************************/
110
- /*! exports provided: ThemeRequests */
111
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
112
67
 
113
- "use strict";
114
- __webpack_require__.r(__webpack_exports__);
115
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ThemeRequests", function() { return ThemeRequests; });
116
- /* 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");
117
-
118
- var ThemeRequests = {
119
- theme: function theme(id) {
120
- return {
121
- url: "/api/domain/v1/themes/".concat(id),
122
- key: "themes:".concat(id)
123
- };
124
- },
125
- themes: function themes(type) {
126
- var url = '/api/domain/v1/themes';
127
- var key = 'themes';
128
-
129
- if (type) {
130
- url += "?type=".concat(type);
131
- key += ":type:".concat(type);
132
- }
133
-
134
- return {
135
- url: url,
136
- key: key
137
- };
138
- },
139
- createTheme: function createTheme(data, success, error, always) {
140
- return {
141
- url: '/api/domain/v1/themes',
142
- key: 'theme',
143
- data: data,
144
- type: _common_src_backbone_enums_HttpVerbs__WEBPACK_IMPORTED_MODULE_0__["HttpVerbs"].POST,
145
- invalidationKeys: 'themes',
146
- success: success,
147
- error: error,
148
- always: always
149
- };
150
- },
151
- updateTheme: function updateTheme(id, data, success, error, always) {
152
- return {
153
- url: "/api/domain/v1/themes/".concat(id),
154
- key: "update:theme:".concat(id),
155
- data: data,
156
- type: _common_src_backbone_enums_HttpVerbs__WEBPACK_IMPORTED_MODULE_0__["HttpVerbs"].PUT,
157
- success: success,
158
- error: error,
159
- always: always
160
- };
161
- },
162
- deleteTheme: function deleteTheme(id, success, error, always) {
163
- return {
164
- url: "/api/domain/v1/themes/".concat(id),
165
- key: "delete:theme:".concat(id),
166
- type: _common_src_backbone_enums_HttpVerbs__WEBPACK_IMPORTED_MODULE_0__["HttpVerbs"].DELETE,
167
- invalidationKeys: 'themes',
168
- success: success,
169
- error: error,
170
- always: always
171
- };
172
- }
173
- };
174
68
 
175
- /***/ }),
69
+ var namespace = 'shared.searchBar';
70
+ var isFunction = _common_src_backbone_utils_FunctionHelper__WEBPACK_IMPORTED_MODULE_2__["FunctionHelper"].isFunction;
176
71
 
177
- /***/ "./src/apps/watch-history/flight-requests/VideoHistoryRequests.ts":
178
- /*!************************************************************************!*\
179
- !*** ./src/apps/watch-history/flight-requests/VideoHistoryRequests.ts ***!
180
- \************************************************************************/
181
- /*! exports provided: VideoHistoryRequests */
182
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
183
-
184
- "use strict";
185
- __webpack_require__.r(__webpack_exports__);
186
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VideoHistoryRequests", function() { return VideoHistoryRequests; });
187
- var VideoHistoryRequests = {
188
- userVideoHistory: function userVideoHistory(customerId, userId, cursor, success, error, always) {
189
- var key = "video:history:".concat(customerId, ":").concat(userId);
190
- var url = "/api/videoviews/v1/customers/".concat(customerId, "/users/").concat(userId, "/videos/history");
191
-
192
- if (cursor) {
193
- key += ":".concat(cursor);
194
- url += "?cursor=".concat(cursor);
195
- }
72
+ function SearchBarWrapper(props) {
73
+ if (!props.renderAsForm) return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null, props.children);
74
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("form", {
75
+ onSubmit: props.onSubmit
76
+ }, props.children);
77
+ }
196
78
 
197
- return {
198
- key: key,
199
- url: url,
200
- success: success,
201
- error: error,
202
- always: always
203
- };
204
- },
205
- videoHistory: function videoHistory(customerId, userId, ids, success, error, always) {
206
- var params = ids.sort().map(function (i) {
207
- return "videoId=".concat(i);
208
- });
209
- return {
210
- key: "video:history:".concat(customerId, ":").concat(userId, ":videos:").concat(params.join('&')),
211
- url: "/api/videoviews/v1/customers/".concat(customerId, "/users/").concat(userId, "/videos/history?").concat(params.join('&')),
212
- formatData: function formatData(historyCollection) {
213
- var _a;
214
-
215
- if (!((_a = historyCollection) === null || _a === void 0 ? void 0 : _a.length)) return historyCollection;
216
- /**
217
- * Data is formatted to enable it to be merged with the existing video object in the store
218
- * Where we need to merge more history properties with the video object, map them below.
219
- */
220
-
221
- return historyCollection.map(function (watchHistory) {
222
- return {
223
- id: watchHistory.videoId,
224
- lastProgressPoint: watchHistory.lastProgressPoint
225
- };
226
- });
227
- },
228
- success: success,
229
- error: error,
230
- always: always
231
- };
232
- }
79
+ SearchBar.defaultProps = {
80
+ updateQueryOnSelection: true,
81
+ valueKey: 'name',
82
+ activationLength: 3,
83
+ suggestionLimit: 5,
84
+ recentSearches: [],
85
+ initialSuggestions: [],
86
+ searchIconPlacement: 'right',
87
+ renderAsForm: true
233
88
  };
89
+ function SearchBar(props) {
90
+ var initialState = _SearchUtils__WEBPACK_IMPORTED_MODULE_6__["getInitialState"](props.initialSuggestions, props.recentSearches);
234
91
 
235
- /***/ }),
236
-
237
- /***/ "./src/shared/hooks/useHandleObjectError.ts":
238
- /*!**************************************************!*\
239
- !*** ./src/shared/hooks/useHandleObjectError.ts ***!
240
- \**************************************************/
241
- /*! exports provided: useHandleObjectError */
242
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
92
+ var _React$useState = react__WEBPACK_IMPORTED_MODULE_0__["useState"](props.initialQuery || ''),
93
+ _React$useState2 = _slicedToArray(_React$useState, 2),
94
+ query = _React$useState2[0],
95
+ setQuery = _React$useState2[1];
243
96
 
244
- "use strict";
245
- __webpack_require__.r(__webpack_exports__);
246
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "useHandleObjectError", function() { return useHandleObjectError; });
247
- /* harmony import */ var _libs_common_src_backbone__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../../libs/common/src/backbone */ "../../libs/common/src/backbone/index.ts");
248
- /* 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");
249
- /* 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");
250
- /* 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");
251
- /* 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");
252
- /* 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");
97
+ var _React$useState3 = react__WEBPACK_IMPORTED_MODULE_0__["useState"](initialState),
98
+ _React$useState4 = _slicedToArray(_React$useState3, 2),
99
+ suggestions = _React$useState4[0],
100
+ setSuggestions = _React$useState4[1];
253
101
 
102
+ var isMobile = Object(_hooks_UseMediaQuery__WEBPACK_IMPORTED_MODULE_4__["useMediaQuery"])(_enums_MediaQueries__WEBPACK_IMPORTED_MODULE_5__["MediaQueryStrings"].XS);
103
+ react__WEBPACK_IMPORTED_MODULE_0__["useEffect"](function () {
104
+ var initialQuery = props.initialQuery || '';
105
+ if (query !== initialQuery) setQuery(initialQuery);
106
+ }, [props.initialQuery]);
254
107
 
108
+ var resetSuggestions = function resetSuggestions() {
109
+ setSuggestions(initialState);
110
+ };
255
111
 
112
+ var onChange = function onChange(e, _ref) {
113
+ var newValue = _ref.newValue;
114
+ setQuery(newValue);
115
+ if (isFunction(props.onQueryChange)) props.onQueryChange(newValue);
116
+ };
256
117
 
118
+ var onSubmit = function onSubmit(event) {
119
+ event.preventDefault();
120
+ if (isFunction(props.onSubmit)) props.onSubmit(query);
121
+ };
257
122
 
123
+ var onKeyDown = function onKeyDown(event) {
124
+ if (event.keyCode === 8 && props.onBackspace && !query) props.onBackspace();
125
+ };
258
126
 
259
- var defaultErrors = {
260
- notFound: shared_errors_general_not_found_LiteNotFoundError__WEBPACK_IMPORTED_MODULE_2__["NotFoundError"],
261
- forbidden: {
262
- rating: shared_errors_general_private_resource_PrivateResourceError__WEBPACK_IMPORTED_MODULE_4__["PrivateResourceError"],
263
- yearLevel: shared_errors_general_private_resource_PrivateResourceError__WEBPACK_IMPORTED_MODULE_4__["PrivateResourceError"],
264
- region: shared_errors_general_region_locked_resource_RegionLockedResourceError__WEBPACK_IMPORTED_MODULE_5__["RegionLockedResourceError"],
265
- privacy: shared_errors_general_private_resource_PrivateResourceError__WEBPACK_IMPORTED_MODULE_4__["PrivateResourceError"]
266
- },
267
- badRequest: shared_errors_general_unspecified_error_UnspecifiedError__WEBPACK_IMPORTED_MODULE_3__["UnspecifiedError"]
268
- };
269
- function useHandleObjectError(object, customErrors, currentUser) {
270
- var errors = Object.assign(Object.assign({}, defaultErrors), customErrors);
271
- if (!object.statusCode || object.statusCode === _libs_common_src_backbone_enums_HttpStatus__WEBPACK_IMPORTED_MODULE_1__["HttpStatus"].Ok) return;
127
+ var onClickClearInput = function onClickClearInput() {
128
+ setQuery('');
129
+ if (isFunction(props.onClickClearInput)) props.onClickClearInput();
130
+ };
272
131
 
273
- if (object.statusCode === _libs_common_src_backbone_enums_HttpStatus__WEBPACK_IMPORTED_MODULE_1__["HttpStatus"].NotFound) {
274
- _libs_common_src_backbone__WEBPACK_IMPORTED_MODULE_0__["Core"].ErrorHelper["throw"](new errors.notFound());
275
- return;
276
- }
132
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](SearchBarWrapper, {
133
+ onSubmit: onSubmit,
134
+ renderAsForm: !!props.renderAsForm
135
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react_autosuggest__WEBPACK_IMPORTED_MODULE_1__, {
136
+ suggestions: _SearchUtils__WEBPACK_IMPORTED_MODULE_6__["getSuggestionSections"](suggestions, !query, props.recentSearchHeading || _common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_3__["LanguageService"].getPhrase(namespace, 'recentSearchHeading'), props.suggestionsHeading, props.getSections, props.suggestionLimit),
137
+ onSuggestionsFetchRequested: _SearchUtils__WEBPACK_IMPORTED_MODULE_6__["onSuggestionsFetchRequestedHandler"](props, setSuggestions, resetSuggestions),
138
+ onSuggestionsClearRequested: function onSuggestionsClearRequested() {
139
+ if (!props.alwaysRenderSuggestions) resetSuggestions();
140
+ },
141
+ onSuggestionSelected: function onSuggestionSelected(e, _ref2) {
142
+ var suggestion = _ref2.suggestion;
143
+ if (props.clearQueryOnSelect) setQuery('');
144
+ props.onSuggestionSelected(suggestion);
145
+ },
146
+ getSuggestionValue: function getSuggestionValue(suggestion) {
147
+ if (!props.updateQueryOnSelection) return query;
148
+ return _SearchUtils__WEBPACK_IMPORTED_MODULE_6__["getSuggestionValue"](props.valueKey, suggestion);
149
+ },
150
+ renderSuggestion: function renderSuggestion(suggestion) {
151
+ if (isFunction(props.getSuggestionComponent)) return props.getSuggestionComponent(suggestion);
152
+ return _SearchUtils__WEBPACK_IMPORTED_MODULE_6__["getSuggestionComponent"](props.valueKey, suggestion);
153
+ },
154
+ alwaysRenderSuggestions: props.alwaysRenderSuggestions,
277
155
 
278
- if (object.statusCode === _libs_common_src_backbone_enums_HttpStatus__WEBPACK_IMPORTED_MODULE_1__["HttpStatus"].Forbidden) {
279
156
  /**
280
- * TODO: Work out how to go about handling all forbidden errors, such as region locking, year levels,
281
- * ratings, and privacy.
157
+ * Setting focusInputOnSuggestionClick to false when isMobile is true prevents the keyboard from
158
+ * appearing on mobile devices when a suggestion is clicked.
282
159
  */
283
- _libs_common_src_backbone__WEBPACK_IMPORTED_MODULE_0__["Core"].ErrorHelper["throw"](new errors.forbidden.privacy());
284
- return;
285
- }
286
-
287
- _libs_common_src_backbone__WEBPACK_IMPORTED_MODULE_0__["Core"].ErrorHelper["throw"](new errors.badRequest());
160
+ focusInputOnSuggestionClick: !isMobile,
161
+ inputProps: {
162
+ placeholder: props.placeholder || _common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_3__["LanguageService"].getPhrase(namespace, 'placeholder'),
163
+ value: query,
164
+ onChange: onChange,
165
+ onKeyDown: onKeyDown,
166
+ autoFocus: !!props.autoFocusInput,
167
+ highlightOnFocus: props.highlightInputOnFocus,
168
+ onClickSearchIcon: !!props.submitOnClickSearchIcon && onSubmit,
169
+ searchIconPlacement: props.searchIconPlacement,
170
+ showClearInputIcon: !!props.showClearInputIcon && !!query.length,
171
+ onClickClearInput: onClickClearInput
172
+ },
173
+ renderInputComponent: _SearchInput__WEBPACK_IMPORTED_MODULE_7__["SearchInput"],
174
+ theme: _SearchUtils__WEBPACK_IMPORTED_MODULE_6__["getTheme"](props.theme),
175
+ multiSection: true,
176
+ renderSectionTitle: _SearchUtils__WEBPACK_IMPORTED_MODULE_6__["renderSectionTitle"],
177
+ getSectionSuggestions: _SearchUtils__WEBPACK_IMPORTED_MODULE_6__["getSectionSuggestions"]
178
+ }));
288
179
  }
289
180
 
290
181
  /***/ }),
291
182
 
292
- /***/ "./src/shared/hooks/useVideoMixin.ts":
293
- /*!*******************************************!*\
294
- !*** ./src/shared/hooks/useVideoMixin.ts ***!
295
- \*******************************************/
296
- /*! exports provided: useVideoMixin */
183
+ /***/ "../../libs/shared/src/components/search-bar/SearchInput.tsx":
184
+ /*!*******************************************************************************************************!*\
185
+ !*** C:/ClickView Projects/@clickview/packages/libs/shared/src/components/search-bar/SearchInput.tsx ***!
186
+ \*******************************************************************************************************/
187
+ /*! exports provided: SearchInput */
297
188
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
298
189
 
299
190
  "use strict";
300
191
  __webpack_require__.r(__webpack_exports__);
301
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "useVideoMixin", function() { return useVideoMixin; });
302
- /* harmony import */ var _libs_common_src_react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../../libs/common/src/react */ "../../libs/common/src/react/index.ts");
303
- /* 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");
304
- /* 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");
305
- /* harmony import */ var shared_flight_requests_VideoRequests__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! shared/flight-requests/VideoRequests */ "./src/shared/flight-requests/VideoRequests.ts");
306
- /* 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");
307
- function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
308
-
309
- 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."); }
310
-
311
- 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); }
312
-
313
- function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }
314
-
315
- function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
192
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SearchInput", function() { return SearchInput; });
193
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
194
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
195
+ /* 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");
196
+ /* harmony import */ var _svg_container_SvgContainer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../svg-container/SvgContainer */ "../../libs/shared/src/components/svg-container/SvgContainer.tsx");
197
+ /* harmony import */ var _utils_SvgHelper__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../utils/SvgHelper */ "../../libs/shared/src/utils/SvgHelper.ts");
198
+ /* harmony import */ var _search_bar_scss__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./search-bar.scss */ "../../libs/shared/src/components/search-bar/search-bar.scss");
199
+ /* harmony import */ var _search_bar_scss__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_search_bar_scss__WEBPACK_IMPORTED_MODULE_4__);
200
+ var __rest = undefined && undefined.__rest || function (s, e) {
201
+ var t = {};
316
202
 
317
- 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; }
203
+ for (var p in s) {
204
+ if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
205
+ }
318
206
 
207
+ if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
208
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
209
+ }
210
+ return t;
211
+ };
319
212
 
320
213
 
321
214
 
322
215
 
323
216
 
324
- var defaults = {
325
- ratings: true,
326
- favourites: true,
327
- watchHistory: true
328
- };
329
217
 
330
- function fetchAttribute(videosFetched, request) {
331
- var _a;
332
218
 
333
- var attribute = _libs_common_src_react__WEBPACK_IMPORTED_MODULE_0__["Flight"].useGetResponse((_a = request) === null || _a === void 0 ? void 0 : _a.key);
334
- var fetch = _libs_common_src_react__WEBPACK_IMPORTED_MODULE_0__["Flight"].useGetFetch(request);
335
- if (videosFetched && request && attribute.shouldFetch) fetch();
219
+ function getInputClassName(props) {
220
+ var searchIconPlacement = props.searchIconPlacement,
221
+ showClearInputIcon = props.showClearInputIcon,
222
+ highlightOnFocus = props.highlightOnFocus,
223
+ className = props.className;
224
+ var inputClassName = 'form-control';
225
+ if (!highlightOnFocus) inputClassName += " ".concat(_search_bar_scss__WEBPACK_IMPORTED_MODULE_4___default.a.inputWithoutHighlight);
226
+ if (searchIconPlacement === 'left') inputClassName += " ".concat(_search_bar_scss__WEBPACK_IMPORTED_MODULE_4___default.a.inputWithLeftIcon);
227
+ if (searchIconPlacement === 'right' && !showClearInputIcon || searchIconPlacement === 'left' && showClearInputIcon) inputClassName += " ".concat(_search_bar_scss__WEBPACK_IMPORTED_MODULE_4___default.a.inputWithRightIcon);
228
+ if (searchIconPlacement === 'right' && showClearInputIcon) inputClassName += " ".concat(_search_bar_scss__WEBPACK_IMPORTED_MODULE_4___default.a.inputWithTwoRightIcons);
229
+ if (className) inputClassName += "".concat(className);
230
+ return inputClassName;
336
231
  }
337
232
 
338
- function useVideoMixin(videos) {
339
- var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
233
+ function getSvgContainerClassName(onClickSvg) {
234
+ var className = 'd-inline-block svg-container';
235
+ if (!_common_src_backbone_utils_FunctionHelper__WEBPACK_IMPORTED_MODULE_1__["FunctionHelper"].isFunction(onClickSvg)) return className;
236
+ return className + ' cursor-pointer';
237
+ }
340
238
 
341
- var _a, _b, _c;
239
+ function SearchInput(props) {
240
+ var onClickSearchIcon = props.onClickSearchIcon,
241
+ searchIconPlacement = props.searchIconPlacement,
242
+ showClearInputIcon = props.showClearInputIcon,
243
+ onClickClearInput = props.onClickClearInput,
244
+ highlightOnFocus = props.highlightOnFocus,
245
+ className = props.className,
246
+ inputProps = __rest(props, ["onClickSearchIcon", "searchIconPlacement", "showClearInputIcon", "onClickClearInput", "highlightOnFocus", "className"]);
247
+
248
+ var SearchIcon = function SearchIcon() {
249
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
250
+ className: 'd-inline-block'
251
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_svg_container_SvgContainer__WEBPACK_IMPORTED_MODULE_2__["SvgContainer"], {
252
+ svgName: _utils_SvgHelper__WEBPACK_IMPORTED_MODULE_3__["cvSvgLibrary"].Search,
253
+ size: _svg_container_SvgContainer__WEBPACK_IMPORTED_MODULE_2__["SvgContainerSize"].Standard,
254
+ onClick: onClickSearchIcon,
255
+ className: getSvgContainerClassName(onClickSearchIcon)
256
+ }));
257
+ };
342
258
 
343
- var _Object$assign = Object.assign(Object.assign({}, defaults), options),
344
- ratings = _Object$assign.ratings,
345
- favourites = _Object$assign.favourites,
346
- watchHistory = _Object$assign.watchHistory;
259
+ var ClearIcon = function ClearIcon() {
260
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
261
+ className: "d-inline-block text-muted ".concat(_search_bar_scss__WEBPACK_IMPORTED_MODULE_4___default.a.clearButton)
262
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_svg_container_SvgContainer__WEBPACK_IMPORTED_MODULE_2__["SvgContainer"], {
263
+ svgName: _utils_SvgHelper__WEBPACK_IMPORTED_MODULE_3__["cvSvgLibrary"].Close,
264
+ size: _svg_container_SvgContainer__WEBPACK_IMPORTED_MODULE_2__["SvgContainerSize"].Standard,
265
+ onClick: onClickClearInput,
266
+ className: getSvgContainerClassName(onClickClearInput)
267
+ }));
268
+ };
347
269
 
348
- var currentUser = _libs_common_src_react__WEBPACK_IMPORTED_MODULE_0__["Flight"].useBasicFetch(_libs_shared_src_flight_requests_UserRequests__WEBPACK_IMPORTED_MODULE_1__["UserRequests"].currentUser());
349
- var videoIds = videos && (Array.isArray(videos) ? videos.filter(Boolean).map(function (v) {
350
- return v.id;
351
- }) : videos.data.filter(Boolean).map(function (v) {
352
- return v.id;
353
- }));
354
- var user = currentUser.data;
355
- var requests = [];
356
- 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)]);
357
- 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)]);
358
- 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)]);
359
- requests.forEach(function (r) {
360
- return fetchAttribute(!!videos, r);
361
- });
270
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
271
+ className: "position-relative ".concat(_search_bar_scss__WEBPACK_IMPORTED_MODULE_4___default.a.inputContainer)
272
+ }, searchIconPlacement === 'left' && react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
273
+ className: "".concat(_search_bar_scss__WEBPACK_IMPORTED_MODULE_4___default.a.iconContainer, " ").concat(_search_bar_scss__WEBPACK_IMPORTED_MODULE_4___default.a.leftIconContainer)
274
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](SearchIcon, null)), react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("input", Object.assign({
275
+ className: getInputClassName(props)
276
+ }, inputProps)), (searchIconPlacement === 'right' || !!showClearInputIcon) && react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
277
+ className: "".concat(_search_bar_scss__WEBPACK_IMPORTED_MODULE_4___default.a.iconContainer, " ").concat(_search_bar_scss__WEBPACK_IMPORTED_MODULE_4___default.a.rightIconContainer)
278
+ }, !!showClearInputIcon && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ClearIcon, null), searchIconPlacement === 'right' && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](SearchIcon, null)));
362
279
  }
363
280
 
364
281
  /***/ }),
365
282
 
366
- /***/ "./src/shared/views/play/PlayView.tsx":
367
- /*!********************************************!*\
368
- !*** ./src/shared/views/play/PlayView.tsx ***!
369
- \********************************************/
370
- /*! exports provided: PlayView */
283
+ /***/ "../../libs/shared/src/components/search-bar/SearchUtils.tsx":
284
+ /*!*******************************************************************************************************!*\
285
+ !*** C:/ClickView Projects/@clickview/packages/libs/shared/src/components/search-bar/SearchUtils.tsx ***!
286
+ \*******************************************************************************************************/
287
+ /*! exports provided: SuggestionType, getInitialState, onSuggestionsFetchRequestedHandler, getSuggestionValue, getSuggestionComponent, getSuggestionSections, getSectionSuggestions, renderSectionTitle, getTheme */
371
288
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
372
289
 
373
290
  "use strict";
374
291
  __webpack_require__.r(__webpack_exports__);
375
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PlayView", function() { return PlayView; });
292
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SuggestionType", function() { return SuggestionType; });
293
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getInitialState", function() { return getInitialState; });
294
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "onSuggestionsFetchRequestedHandler", function() { return onSuggestionsFetchRequestedHandler; });
295
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getSuggestionValue", function() { return getSuggestionValue; });
296
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getSuggestionComponent", function() { return getSuggestionComponent; });
297
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getSuggestionSections", function() { return getSuggestionSections; });
298
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getSectionSuggestions", function() { return getSectionSuggestions; });
299
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "renderSectionTitle", function() { return renderSectionTitle; });
300
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getTheme", function() { return getTheme; });
376
301
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
377
302
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
378
- /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-redux */ "react-redux");
379
- /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_1__);
380
- /* harmony import */ var _libs_common_src_react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../libs/common/src/react */ "../../libs/common/src/react/index.ts");
381
- /* harmony import */ var _libs_common_src_react_hooks_useViewModel__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../../../libs/common/src/react/hooks/useViewModel */ "../../libs/common/src/react/hooks/useViewModel.ts");
382
- /* harmony import */ var _libs_shared_src_flight_requests_UserRequests__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../../../../libs/shared/src/flight-requests/UserRequests */ "../../libs/shared/src/flight-requests/UserRequests.ts");
383
- /* harmony import */ var _libs_shared_src_flight_requests_FavouriteVideoRequests__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../../../../libs/shared/src/flight-requests/FavouriteVideoRequests */ "../../libs/shared/src/flight-requests/FavouriteVideoRequests.ts");
384
- /* harmony import */ var _libs_shared_src_flight_requests_ThemeRequests__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../../../../libs/shared/src/flight-requests/ThemeRequests */ "../../libs/shared/src/flight-requests/ThemeRequests.ts");
385
- /* harmony import */ var _libs_common_src_react_hooks_UseSetPageTitle__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../../../../libs/common/src/react/hooks/UseSetPageTitle */ "../../libs/common/src/react/hooks/UseSetPageTitle.ts");
386
- /* harmony import */ var _libs_analytics_src_AnalyticsHelper__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../../../../libs/analytics/src/AnalyticsHelper */ "../../libs/analytics/src/AnalyticsHelper.ts");
387
- /* harmony import */ var _libs_analytics_src_interfaces__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../../../../../libs/analytics/src/interfaces */ "../../libs/analytics/src/interfaces/index.ts");
388
- /* harmony import */ var _libs_shared_src_hooks_UseAlerts__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../../../../../libs/shared/src/hooks/UseAlerts */ "../../libs/shared/src/hooks/UseAlerts.ts");
389
- /* harmony import */ var _libs_common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../../../../../libs/common/src/backbone/services/LanguageService */ "../../libs/common/src/backbone/services/LanguageService.tsx");
390
- /* harmony import */ var shared_flight_requests_VideoRequests__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! shared/flight-requests/VideoRequests */ "./src/shared/flight-requests/VideoRequests.ts");
391
- /* harmony import */ var shared_components_play_page_PlayPage__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! shared/components/play-page/PlayPage */ "./src/shared/components/play-page/PlayPage.tsx");
392
- /* harmony import */ var shared_constants_LiteViewModels__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! shared/constants/LiteViewModels */ "./src/shared/constants/LiteViewModels.ts");
393
- /* harmony import */ var shared_errors_videos_video_not_found_LiteVideoNotFoundError__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! shared/errors/videos/video-not-found/LiteVideoNotFoundError */ "./src/shared/errors/videos/video-not-found/LiteVideoNotFoundError.ts");
394
- /* harmony import */ var shared_errors_videos_video_private_VideoPrivateError__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! shared/errors/videos/video-private/VideoPrivateError */ "./src/shared/errors/videos/video-private/VideoPrivateError.ts");
395
- /* harmony import */ var shared_hooks_useHandleObjectError__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! shared/hooks/useHandleObjectError */ "./src/shared/hooks/useHandleObjectError.ts");
396
- /* harmony import */ var shared_hooks_useVideoMixin__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! shared/hooks/useVideoMixin */ "./src/shared/hooks/useVideoMixin.ts");
397
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
303
+ /* harmony import */ var _common_src_backbone_enums_HttpVerbs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../common/src/backbone/enums/HttpVerbs */ "../../libs/common/src/backbone/enums/HttpVerbs.ts");
304
+ /* harmony import */ var _common_src_react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../common/src/react */ "../../libs/common/src/react/index.ts");
305
+ /* harmony import */ var _common_src_react_utils_ObjectHelper__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../common/src/react/utils/ObjectHelper */ "../../libs/common/src/react/utils/ObjectHelper.ts");
306
+ /* harmony import */ var _common_src_react_utils_TypeHelper__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../../common/src/react/utils/TypeHelper */ "../../libs/common/src/react/utils/TypeHelper.ts");
307
+ /* harmony import */ var _common_src_backbone_utils_FunctionHelper__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../../common/src/backbone/utils/FunctionHelper */ "../../libs/common/src/backbone/utils/FunctionHelper.ts");
308
+ /* harmony import */ var _search_bar_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./search-bar.scss */ "../../libs/shared/src/components/search-bar/search-bar.scss");
309
+ /* harmony import */ var _search_bar_scss__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_search_bar_scss__WEBPACK_IMPORTED_MODULE_6__);
310
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
398
311
 
399
- 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."); }
312
+ 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."); }
400
313
 
401
314
  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); }
402
315
 
403
- 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; }
316
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }
404
317
 
405
- 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; }
318
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
406
319
 
407
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
320
+ 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; }
408
321
 
322
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
409
323
 
410
324
 
411
325
 
@@ -414,87 +328,140 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
414
328
 
415
329
 
416
330
 
331
+ var SuggestionType;
417
332
 
333
+ (function (SuggestionType) {
334
+ SuggestionType["Local"] = "local";
335
+ SuggestionType["Recent"] = "recent";
336
+ SuggestionType["Remote"] = "remote";
337
+ })(SuggestionType || (SuggestionType = {}));
418
338
 
339
+ function getInitialState(initialSuggestions, recentSearches) {
340
+ var _ref;
419
341
 
342
+ return _ref = {}, _defineProperty(_ref, SuggestionType.Recent, recentSearches), _defineProperty(_ref, SuggestionType.Local, initialSuggestions), _defineProperty(_ref, SuggestionType.Remote, []), _ref;
343
+ }
420
344
 
345
+ function hasAttribute(obj, valueKey) {
346
+ return _common_src_react_utils_ObjectHelper__WEBPACK_IMPORTED_MODULE_3__["ObjectHelper"].isObject(obj) && obj.hasOwnProperty(valueKey) && _common_src_react_utils_TypeHelper__WEBPACK_IMPORTED_MODULE_4__["TypeHelper"].isString(obj[valueKey]);
347
+ }
421
348
 
349
+ function getLocalSuggestions(query, data, valueKey) {
350
+ var q = query.trim().toLowerCase();
351
+ if (!q.length) return [];
352
+ return data.filter(function (d) {
353
+ if (!hasAttribute(d, valueKey) || !_common_src_react_utils_TypeHelper__WEBPACK_IMPORTED_MODULE_4__["TypeHelper"].isString(d[valueKey])) return false;
354
+ return d[valueKey].trim().toLowerCase().includes(q);
355
+ });
356
+ }
422
357
 
358
+ function fetchSuggestions(getUrl, query, callback) {
359
+ var resource = _common_src_backbone_utils_FunctionHelper__WEBPACK_IMPORTED_MODULE_5__["FunctionHelper"].isFunction(getUrl) && getUrl(query);
360
+ if (!resource) return;
361
+ _common_src_react__WEBPACK_IMPORTED_MODULE_2__["Flight"].ajaxRequest({
362
+ resource: resource,
363
+ type: _common_src_backbone_enums_HttpVerbs__WEBPACK_IMPORTED_MODULE_1__["HttpVerbs"].GET,
364
+ success: callback,
365
+ error: function error() {}
366
+ });
367
+ }
423
368
 
369
+ function onSuggestionsFetchRequestedHandler(props, setSuggestions, resetSuggestions) {
370
+ return function (_ref2) {
371
+ var value = _ref2.value;
372
+ if (!value.length) resetSuggestions();
373
+ if (value.length < props.activationLength) return;
424
374
 
375
+ if (props.local) {
376
+ var filtered = _common_src_backbone_utils_FunctionHelper__WEBPACK_IMPORTED_MODULE_5__["FunctionHelper"].isFunction(props.getLocalSuggestions) ? props.getLocalSuggestions(value, props.local) : getLocalSuggestions(value, props.local, props.valueKey);
377
+ setSuggestions(function (s) {
378
+ return Object.assign(Object.assign({}, s), _defineProperty({}, SuggestionType.Local, filtered));
379
+ });
380
+ }
425
381
 
382
+ if (props.getRemoteUrl) fetchSuggestions(props.getRemoteUrl, value, function (data) {
383
+ return setSuggestions(function (s) {
384
+ return Object.assign(Object.assign({}, s), _defineProperty({}, SuggestionType.Remote, _common_src_backbone_utils_FunctionHelper__WEBPACK_IMPORTED_MODULE_5__["FunctionHelper"].isFunction(props.formatRemoteSuggestions) ? props.formatRemoteSuggestions(data) : data));
385
+ });
386
+ });
387
+ };
388
+ }
389
+ function getSuggestionValue(valueKey, suggestion) {
390
+ if (!hasAttribute(suggestion, valueKey)) return '';
391
+ return suggestion[valueKey];
392
+ }
393
+ /**
394
+ * Default suggestion component. Renders text based on valueKey.
395
+ *
396
+ * @param valueKey object attribute to be rendered.
397
+ */
398
+
399
+ function getSuggestionComponent(valueKey, suggestion) {
400
+ return hasAttribute(suggestion, valueKey) ? react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null, suggestion[valueKey]) : react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null);
401
+ }
402
+ /**
403
+ * Maps the suggestion state into sections.
404
+ *
405
+ * @param getSections - an optional function passed in from anything consuming
406
+ * SearchBar used to break the local and remote suggestions into sections.
407
+ */
408
+
409
+ function getSuggestionSections(suggestionState, showRecentSearches, recentSearchHeading, suggestionsHeading, getSections, suggestionLimit) {
410
+ var getTypeSuggestions = function getTypeSuggestions(type) {
411
+ var typeSuggestions = suggestionState[type];
412
+ return typeSuggestions || [];
413
+ };
426
414
 
415
+ var recentSuggestions = showRecentSearches ? getTypeSuggestions(SuggestionType.Recent) : [];
416
+ var localSuggestions = getTypeSuggestions(SuggestionType.Local);
417
+ var remoteSuggestions = getTypeSuggestions(SuggestionType.Remote);
418
+ var sections = [];
419
+ if (recentSuggestions.length) sections.push({
420
+ title: recentSearchHeading,
421
+ data: recentSuggestions
422
+ });
423
+ var matchedSuggestions = [].concat(_toConsumableArray(localSuggestions), _toConsumableArray(remoteSuggestions));
424
+ if (Number.isInteger(suggestionLimit) && sections.length > suggestionLimit) matchedSuggestions.slice(0, suggestionLimit);
425
+ if (_common_src_backbone_utils_FunctionHelper__WEBPACK_IMPORTED_MODULE_5__["FunctionHelper"].isFunction(getSections)) sections.push.apply(sections, _toConsumableArray(getSections(matchedSuggestions)));else sections.push({
426
+ title: suggestionsHeading,
427
+ data: matchedSuggestions
428
+ });
429
+ return sections;
430
+ }
431
+ /**
432
+ * Maps a section into a list of suggestions.
433
+ */
427
434
 
428
- var namespace = 'shared.play';
429
- var videoErrors = {
430
- notFound: shared_errors_videos_video_not_found_LiteVideoNotFoundError__WEBPACK_IMPORTED_MODULE_15__["VideoNotFoundError"],
431
- forbidden: {
432
- privacy: shared_errors_videos_video_private_VideoPrivateError__WEBPACK_IMPORTED_MODULE_16__["VideoPrivateError"]
433
- }
435
+ function getSectionSuggestions(section) {
436
+ return section.data;
437
+ }
438
+ function renderSectionTitle(section) {
439
+ if (section.title) return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("strong", null, section.title);
440
+ }
441
+ var defaultTheme = {
442
+ container: 'position-relative',
443
+ suggestionsContainerOpen: "bg-white py-1 border rounded ".concat(_search_bar_scss__WEBPACK_IMPORTED_MODULE_6___default.a.suggestionsContainerOpen),
444
+ suggestionsList: 'list-unstyled m-0',
445
+ suggestion: 'cursor-pointer py-1 px-2',
446
+ suggestionHighlighted: _search_bar_scss__WEBPACK_IMPORTED_MODULE_6___default.a.suggestionHighlighted,
447
+ sectionContainer: "border-bottom py-1 ".concat(_search_bar_scss__WEBPACK_IMPORTED_MODULE_6___default.a.sectionContainer)
434
448
  };
435
- function PlayView(props) {
436
- var _a, _b, _c;
437
-
438
- var dispatch = Object(react_redux__WEBPACK_IMPORTED_MODULE_1__["useDispatch"])();
439
- var alerts = Object(_libs_shared_src_hooks_UseAlerts__WEBPACK_IMPORTED_MODULE_10__["useAlerts"])();
440
-
441
- var _useViewModel = Object(_libs_common_src_react_hooks_useViewModel__WEBPACK_IMPORTED_MODULE_3__["useViewModel"])(shared_constants_LiteViewModels__WEBPACK_IMPORTED_MODULE_14__["ViewModelKeys"].WEB_PLAYER_DATA),
442
- _useViewModel2 = _slicedToArray(_useViewModel, 2),
443
- currentPlayerData = _useViewModel2[0],
444
- setPlayerData = _useViewModel2[1];
445
-
446
- var video = _libs_common_src_react__WEBPACK_IMPORTED_MODULE_2__["Flight"].useBasicFetch(shared_flight_requests_VideoRequests__WEBPACK_IMPORTED_MODULE_12__["VideoRequests"].video(props.id));
447
- var currentUser = _libs_common_src_react__WEBPACK_IMPORTED_MODULE_2__["Flight"].useBasicFetch(_libs_shared_src_flight_requests_UserRequests__WEBPACK_IMPORTED_MODULE_4__["UserRequests"].currentUser()); // const relatedVideos = Flight.useBasicFetch<VideoCollection>(!!currentUser.data &&
448
- // FavouriteVideoRequests.favouriteVideos(currentUser.data.id));
449
-
450
- var glanceTheme = _libs_common_src_react__WEBPACK_IMPORTED_MODULE_2__["Flight"].useBasicFetch(((_b = (_a = video.data) === null || _a === void 0 ? void 0 : _a.glance) === null || _b === void 0 ? void 0 : _b.theme) ? _libs_shared_src_flight_requests_ThemeRequests__WEBPACK_IMPORTED_MODULE_6__["ThemeRequests"].theme(video.data.glance.theme) : null);
451
- Object(_libs_common_src_react_hooks_UseSetPageTitle__WEBPACK_IMPORTED_MODULE_7__["useSetPageTitle"])((_c = video.data) === null || _c === void 0 ? void 0 : _c.name);
452
- Object(shared_hooks_useHandleObjectError__WEBPACK_IMPORTED_MODULE_17__["useHandleObjectError"])(video, videoErrors, currentUser.data);
453
- Object(shared_hooks_useVideoMixin__WEBPACK_IMPORTED_MODULE_18__["useVideoMixin"])([video.data]);
454
-
455
- function setFavourite(_video, shouldFavourite, onError) {
456
- _libs_common_src_react__WEBPACK_IMPORTED_MODULE_2__["Flight"].fetch(dispatch, _libs_shared_src_flight_requests_FavouriteVideoRequests__WEBPACK_IMPORTED_MODULE_5__["FavouriteVideoRequests"].updateIsVideoFavourited(_video.id, currentUser.data.id, shouldFavourite, function () {
457
- _libs_analytics_src_AnalyticsHelper__WEBPACK_IMPORTED_MODULE_8__["AnalyticsHelper"].logUserAction({
458
- id: _video.id
459
- }, {
460
- entity: _libs_analytics_src_interfaces__WEBPACK_IMPORTED_MODULE_9__["EntityType"].Video,
461
- actionType: _libs_analytics_src_interfaces__WEBPACK_IMPORTED_MODULE_9__["UserAction"].Favourite,
462
- descriptor: shouldFavourite ? _libs_analytics_src_interfaces__WEBPACK_IMPORTED_MODULE_9__["ToggleDescriptor"].On : _libs_analytics_src_interfaces__WEBPACK_IMPORTED_MODULE_9__["ToggleDescriptor"].Off,
463
- location: _libs_analytics_src_interfaces__WEBPACK_IMPORTED_MODULE_9__["LocationContext"].PlayPage,
464
- workflowPhase: _libs_analytics_src_interfaces__WEBPACK_IMPORTED_MODULE_9__["WorkflowPhase"].Complete
465
- });
466
- alerts.success(_libs_common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_11__["LanguageService"].getPhrase(namespace, shouldFavourite ? 'favourited' : 'unfavourited', {
467
- video: _video.name
468
- }));
469
- }, onError));
470
- }
449
+ function getTheme() {
450
+ var theme = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
451
+ return Object.assign(defaultTheme, theme);
452
+ }
471
453
 
472
- react__WEBPACK_IMPORTED_MODULE_0__["useEffect"](function () {
473
- var _a;
454
+ /***/ }),
474
455
 
475
- if (!video.data) return;
476
- setPlayerData('video', video.data);
477
- var newVideo = ((_a = currentPlayerData.video) === null || _a === void 0 ? void 0 : _a.id) !== video.data.id;
478
- var newStartTime = Number.isInteger(props.startTime) && props.startTime !== currentPlayerData.startTime;
479
- /**
480
- * Only update start time if the video has changed or if a new startTime has been passed as a prop.
481
- *
482
- * We must set startTime as something other than undefined (i.e. a number) otherwise the ViewModelReducer
483
- * won't recognise that it's a KVP.
484
- */
456
+ /***/ "../../libs/shared/src/components/search-bar/search-bar.scss":
457
+ /*!*******************************************************************************************************!*\
458
+ !*** C:/ClickView Projects/@clickview/packages/libs/shared/src/components/search-bar/search-bar.scss ***!
459
+ \*******************************************************************************************************/
460
+ /*! no static exports found */
461
+ /***/ (function(module, exports, __webpack_require__) {
485
462
 
486
- if (newVideo || newStartTime) setPlayerData('startTime', props.startTime || 0);
487
- }, [!!video.data, props.startTime]);
488
- if (!video.data || !currentUser.data) return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null);
489
- return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
490
- className: 'px-3'
491
- }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](shared_components_play_page_PlayPage__WEBPACK_IMPORTED_MODULE_13__["PlayPage"], {
492
- video: video.data,
493
- glanceTheme: glanceTheme.data,
494
- // relatedVideos={relatedVideos.data ? relatedVideos.data.data : null}
495
- setFavourite: setFavourite
496
- }));
497
- }
463
+ // extracted by mini-css-extract-plugin
464
+ module.exports = {"inputWithoutHighlight":"cv--inputWithoutHighlight---L0yF","suggestionsContainerOpen":"cv--suggestionsContainerOpen--ahMdW","sectionContainer":"cv--sectionContainer--xstWL","suggestionHighlighted":"cv--suggestionHighlighted--3YTCa","inputContainer":"cv--inputContainer--1wn3m","clearButton":"cv--clearButton--1BwBs","inputWithLeftIcon":"cv--inputWithLeftIcon--qxZOe","inputWithRightIcon":"cv--inputWithRightIcon--3U4W-","inputWithTwoRightIcons":"cv--inputWithTwoRightIcons--2rgzF","iconContainer":"cv--iconContainer--1DLw5","leftIconContainer":"cv--leftIconContainer--AZCtZ","rightIconContainer":"cv--rightIconContainer--1R52s"};
498
465
 
499
466
  /***/ })
500
467