@clickview/lite 0.0.20-rc.1 → 0.0.20
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.
- package/dist/scripts/{bundle-df3f2fe30a.min.js → bundle-0a051d30d1.min.js} +1 -1
- package/dist/scripts/bundles.json +1 -1
- package/package.json +1 -1
- package/dist/css/0.chunk.css.map +0 -1
- package/dist/css/1.chunk.css +0 -146
- package/dist/css/1.chunk.css.map +0 -1
- package/dist/css/11.chunk.css.map +0 -1
- package/dist/css/12.chunk.css.map +0 -1
- package/dist/css/13.chunk.css.map +0 -1
- package/dist/css/14.chunk.css.map +0 -1
- package/dist/css/15.chunk.css.map +0 -1
- package/dist/css/16.chunk.css.map +0 -1
- package/dist/css/17.chunk.css.map +0 -1
- package/dist/css/18.chunk.css.map +0 -1
- package/dist/css/19.chunk.css.map +0 -1
- package/dist/css/21.chunk.css.map +0 -1
- package/dist/css/22.chunk.css.map +0 -1
- package/dist/css/23.chunk.css.map +0 -1
- package/dist/css/24.chunk.css.map +0 -1
- package/dist/css/25.chunk.css.map +0 -1
- package/dist/css/26.chunk.css.map +0 -1
- package/dist/css/27.chunk.css.map +0 -1
- package/dist/css/28.chunk.css.map +0 -1
- package/dist/css/29.chunk.css.map +0 -1
- package/dist/css/3.chunk.css.map +0 -1
- package/dist/css/30.chunk.css +0 -32
- package/dist/css/30.chunk.css.map +0 -1
- package/dist/css/31.chunk.css.map +0 -1
- package/dist/css/32.chunk.css +0 -6
- package/dist/css/32.chunk.css.map +0 -1
- package/dist/css/33.chunk.css +0 -5
- package/dist/css/33.chunk.css.map +0 -1
- package/dist/css/34.chunk.css.map +0 -1
- package/dist/css/36.chunk.css +0 -6
- package/dist/css/36.chunk.css.map +0 -1
- package/dist/css/37.chunk.css +0 -7
- package/dist/css/37.chunk.css.map +0 -1
- package/dist/css/38.chunk.css.map +0 -1
- package/dist/css/41.chunk.css +0 -38
- package/dist/css/41.chunk.css.map +0 -1
- package/dist/css/5.chunk.css.map +0 -1
- package/dist/css/51.chunk.css +0 -9
- package/dist/css/51.chunk.css.map +0 -1
- package/dist/css/6.chunk.css.map +0 -1
- package/dist/css/7.chunk.css +0 -66
- package/dist/css/7.chunk.css.map +0 -1
- package/dist/css/lite-app.css.map +0 -1
- package/dist/projects/lite/src/polyfills.d.ts +0 -2
- package/dist/scripts/0.chunk.js +0 -308
- package/dist/scripts/0.chunk.js.map +0 -1
- package/dist/scripts/1.chunk.js +0 -623
- package/dist/scripts/1.chunk.js.map +0 -1
- package/dist/scripts/10.chunk.js +0 -530
- package/dist/scripts/10.chunk.js.map +0 -1
- package/dist/scripts/11.chunk.js +0 -380
- package/dist/scripts/11.chunk.js.map +0 -1
- package/dist/scripts/12.chunk.js +0 -434
- package/dist/scripts/12.chunk.js.map +0 -1
- package/dist/scripts/13.chunk.js +0 -1287
- package/dist/scripts/13.chunk.js.map +0 -1
- package/dist/scripts/14.chunk.js +0 -575
- package/dist/scripts/14.chunk.js.map +0 -1
- package/dist/scripts/15.chunk.js +0 -806
- package/dist/scripts/15.chunk.js.map +0 -1
- package/dist/scripts/16.chunk.js +0 -482
- package/dist/scripts/16.chunk.js.map +0 -1
- package/dist/scripts/17.chunk.js +0 -428
- package/dist/scripts/17.chunk.js.map +0 -1
- package/dist/scripts/18.chunk.js +0 -766
- package/dist/scripts/18.chunk.js.map +0 -1
- package/dist/scripts/19.chunk.js +0 -647
- package/dist/scripts/19.chunk.js.map +0 -1
- package/dist/scripts/2.chunk.js +0 -18882
- package/dist/scripts/2.chunk.js.map +0 -1
- package/dist/scripts/20.chunk.js +0 -212
- package/dist/scripts/20.chunk.js.map +0 -1
- package/dist/scripts/21.chunk.js +0 -1591
- package/dist/scripts/21.chunk.js.map +0 -1
- package/dist/scripts/22.chunk.js +0 -1348
- package/dist/scripts/22.chunk.js.map +0 -1
- package/dist/scripts/23.chunk.js +0 -1181
- package/dist/scripts/23.chunk.js.map +0 -1
- package/dist/scripts/24.chunk.js +0 -1141
- package/dist/scripts/24.chunk.js.map +0 -1
- package/dist/scripts/25.chunk.js +0 -907
- package/dist/scripts/25.chunk.js.map +0 -1
- package/dist/scripts/26.chunk.js +0 -979
- package/dist/scripts/26.chunk.js.map +0 -1
- package/dist/scripts/27.chunk.js +0 -655
- package/dist/scripts/27.chunk.js.map +0 -1
- package/dist/scripts/28.chunk.js +0 -615
- package/dist/scripts/28.chunk.js.map +0 -1
- package/dist/scripts/29.chunk.js +0 -622
- package/dist/scripts/29.chunk.js.map +0 -1
- package/dist/scripts/3.chunk.js +0 -809
- package/dist/scripts/3.chunk.js.map +0 -1
- package/dist/scripts/30.chunk.js +0 -468
- package/dist/scripts/30.chunk.js.map +0 -1
- package/dist/scripts/31.chunk.js +0 -441
- package/dist/scripts/31.chunk.js.map +0 -1
- package/dist/scripts/32.chunk.js +0 -509
- package/dist/scripts/32.chunk.js.map +0 -1
- package/dist/scripts/33.chunk.js +0 -957
- package/dist/scripts/33.chunk.js.map +0 -1
- package/dist/scripts/34.chunk.js +0 -502
- package/dist/scripts/34.chunk.js.map +0 -1
- package/dist/scripts/35.chunk.js +0 -938
- package/dist/scripts/35.chunk.js.map +0 -1
- package/dist/scripts/36.chunk.js +0 -537
- package/dist/scripts/36.chunk.js.map +0 -1
- package/dist/scripts/37.chunk.js +0 -414
- package/dist/scripts/37.chunk.js.map +0 -1
- package/dist/scripts/38.chunk.js +0 -245
- package/dist/scripts/38.chunk.js.map +0 -1
- package/dist/scripts/39.chunk.js +0 -337
- package/dist/scripts/39.chunk.js.map +0 -1
- package/dist/scripts/4.chunk.js +0 -402
- package/dist/scripts/4.chunk.js.map +0 -1
- package/dist/scripts/40.chunk.js +0 -350
- package/dist/scripts/40.chunk.js.map +0 -1
- package/dist/scripts/41.chunk.js +0 -343
- package/dist/scripts/41.chunk.js.map +0 -1
- package/dist/scripts/42.chunk.js +0 -404
- package/dist/scripts/42.chunk.js.map +0 -1
- package/dist/scripts/43.chunk.js +0 -221
- package/dist/scripts/43.chunk.js.map +0 -1
- package/dist/scripts/44.chunk.js +0 -230
- package/dist/scripts/44.chunk.js.map +0 -1
- package/dist/scripts/45.chunk.js +0 -409
- package/dist/scripts/45.chunk.js.map +0 -1
- package/dist/scripts/46.chunk.js +0 -272
- package/dist/scripts/46.chunk.js.map +0 -1
- package/dist/scripts/47.chunk.js +0 -267
- package/dist/scripts/47.chunk.js.map +0 -1
- package/dist/scripts/48.chunk.js +0 -359
- package/dist/scripts/48.chunk.js.map +0 -1
- package/dist/scripts/49.chunk.js +0 -225
- package/dist/scripts/49.chunk.js.map +0 -1
- package/dist/scripts/5.chunk.js +0 -1104
- package/dist/scripts/5.chunk.js.map +0 -1
- package/dist/scripts/50.chunk.js +0 -318
- package/dist/scripts/50.chunk.js.map +0 -1
- package/dist/scripts/51.chunk.js +0 -64
- package/dist/scripts/51.chunk.js.map +0 -1
- package/dist/scripts/52.chunk.js +0 -108
- package/dist/scripts/52.chunk.js.map +0 -1
- package/dist/scripts/53.chunk.js +0 -110
- package/dist/scripts/53.chunk.js.map +0 -1
- package/dist/scripts/54.chunk.js +0 -162
- package/dist/scripts/54.chunk.js.map +0 -1
- package/dist/scripts/55.chunk.js +0 -145
- package/dist/scripts/55.chunk.js.map +0 -1
- package/dist/scripts/56.chunk.js +0 -139
- package/dist/scripts/56.chunk.js.map +0 -1
- package/dist/scripts/57.chunk.js +0 -142
- package/dist/scripts/57.chunk.js.map +0 -1
- package/dist/scripts/58.chunk.js +0 -173
- package/dist/scripts/58.chunk.js.map +0 -1
- package/dist/scripts/59.chunk.js +0 -160
- package/dist/scripts/59.chunk.js.map +0 -1
- package/dist/scripts/6.chunk.js +0 -335
- package/dist/scripts/6.chunk.js.map +0 -1
- package/dist/scripts/60.chunk.js +0 -98
- package/dist/scripts/60.chunk.js.map +0 -1
- package/dist/scripts/61.chunk.js +0 -48
- package/dist/scripts/61.chunk.js.map +0 -1
- package/dist/scripts/62.chunk.js +0 -70
- package/dist/scripts/62.chunk.js.map +0 -1
- package/dist/scripts/63.chunk.js +0 -32
- package/dist/scripts/63.chunk.js.map +0 -1
- package/dist/scripts/64.chunk.js +0 -29
- package/dist/scripts/64.chunk.js.map +0 -1
- package/dist/scripts/65.chunk.js +0 -27
- package/dist/scripts/65.chunk.js.map +0 -1
- package/dist/scripts/66.chunk.js +0 -65
- package/dist/scripts/66.chunk.js.map +0 -1
- package/dist/scripts/67.chunk.js +0 -67
- package/dist/scripts/67.chunk.js.map +0 -1
- package/dist/scripts/68.chunk.js +0 -104
- package/dist/scripts/68.chunk.js.map +0 -1
- package/dist/scripts/69.chunk.js +0 -89
- package/dist/scripts/69.chunk.js.map +0 -1
- package/dist/scripts/7.chunk.js +0 -2579
- package/dist/scripts/7.chunk.js.map +0 -1
- package/dist/scripts/70.chunk.js +0 -1001
- package/dist/scripts/70.chunk.js.map +0 -1
- package/dist/scripts/71.chunk.js +0 -36
- package/dist/scripts/71.chunk.js.map +0 -1
- package/dist/scripts/8.chunk.js +0 -24
- package/dist/scripts/8.chunk.js.map +0 -1
- package/dist/scripts/9.chunk.js +0 -327
- package/dist/scripts/9.chunk.js.map +0 -1
- package/dist/scripts/bundle.js +0 -38145
- package/dist/scripts/bundle.js.map +0 -1
- package/dist/scripts/polyfills.js +0 -15232
- package/dist/scripts/polyfills.js.map +0 -1
package/dist/scripts/42.chunk.js
DELETED
|
@@ -1,404 +0,0 @@
|
|
|
1
|
-
(window["webpackJsonp_clickview_lite"] = window["webpackJsonp_clickview_lite"] || []).push([[42],{
|
|
2
|
-
|
|
3
|
-
/***/ "../../libs/shared/src/components/video-list/PartialVideoList.tsx":
|
|
4
|
-
/*!************************************************************************************************************!*\
|
|
5
|
-
!*** C:/ClickView/front-end/clickview/packages/libs/shared/src/components/video-list/PartialVideoList.tsx ***!
|
|
6
|
-
\************************************************************************************************************/
|
|
7
|
-
/*! exports provided: PartialVideoList */
|
|
8
|
-
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
9
|
-
|
|
10
|
-
"use strict";
|
|
11
|
-
__webpack_require__.r(__webpack_exports__);
|
|
12
|
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PartialVideoList", function() { return PartialVideoList; });
|
|
13
|
-
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
|
|
14
|
-
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
15
|
-
|
|
16
|
-
function PartialVideoList(props) {
|
|
17
|
-
return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null);
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
/***/ }),
|
|
21
|
-
|
|
22
|
-
/***/ "../../libs/shared/src/flight-requests/FavouriteVideoRequests.ts":
|
|
23
|
-
/*!***********************************************************************************************************!*\
|
|
24
|
-
!*** C:/ClickView/front-end/clickview/packages/libs/shared/src/flight-requests/FavouriteVideoRequests.ts ***!
|
|
25
|
-
\***********************************************************************************************************/
|
|
26
|
-
/*! exports provided: FavouriteVideoRequests */
|
|
27
|
-
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
28
|
-
|
|
29
|
-
"use strict";
|
|
30
|
-
__webpack_require__.r(__webpack_exports__);
|
|
31
|
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FavouriteVideoRequests", function() { return FavouriteVideoRequests; });
|
|
32
|
-
/* 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");
|
|
33
|
-
/* harmony import */ var _constants_WithStatements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../constants/WithStatements */ "../../libs/shared/src/constants/WithStatements.ts");
|
|
34
|
-
var __rest = undefined && undefined.__rest || function (s, e) {
|
|
35
|
-
var t = {};
|
|
36
|
-
|
|
37
|
-
for (var p in s) {
|
|
38
|
-
if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
42
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
|
|
43
|
-
}
|
|
44
|
-
return t;
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
function favouriteVideo(videoId, userId, success, error) {
|
|
51
|
-
return {
|
|
52
|
-
url: "/api/domain/v2/objects/".concat(userId),
|
|
53
|
-
key: "favourite:video:".concat(userId, ":").concat(videoId),
|
|
54
|
-
data: {
|
|
55
|
-
favouriteVideos: videoId
|
|
56
|
-
},
|
|
57
|
-
type: _common_src_backbone_enums_HttpVerbs__WEBPACK_IMPORTED_MODULE_0__["HttpVerbs"].PUT,
|
|
58
|
-
invalidationKeys: ["favourite:videos:".concat(userId), "video:is:favourited:".concat(userId)],
|
|
59
|
-
success: success,
|
|
60
|
-
error: error
|
|
61
|
-
};
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
function unfavouriteVideo(videoId, userId, success, error) {
|
|
65
|
-
return {
|
|
66
|
-
url: "/api/domain/v2/objects/".concat(userId, "/favouriteVideos/").concat(videoId),
|
|
67
|
-
key: "favourite:video:".concat(userId, ":").concat(videoId),
|
|
68
|
-
type: _common_src_backbone_enums_HttpVerbs__WEBPACK_IMPORTED_MODULE_0__["HttpVerbs"].DELETE,
|
|
69
|
-
invalidationKeys: ["favourite:videos:".concat(userId), "video:is:favourited:".concat(userId)],
|
|
70
|
-
success: success,
|
|
71
|
-
error: error
|
|
72
|
-
};
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
var FavouriteVideoRequests = {
|
|
76
|
-
favouriteVideos: function favouriteVideos(userId, cursor) {
|
|
77
|
-
var query = "".concat(_constants_WithStatements__WEBPACK_IMPORTED_MODULE_1__["SharedWithStatements"].VIDEO_COLLECTION).concat(addCursor(cursor));
|
|
78
|
-
return {
|
|
79
|
-
url: "/api/domain/v2/objects/".concat(userId, "/favouriteVideos?query=").concat(query),
|
|
80
|
-
key: "favourite:videos:".concat(userId).concat(cursor ? ":".concat(cursor) : '')
|
|
81
|
-
};
|
|
82
|
-
},
|
|
83
|
-
updateIsVideoFavourited: function updateIsVideoFavourited(videoId, userId, shouldFavourite, success, error) {
|
|
84
|
-
var requestFn = shouldFavourite ? favouriteVideo : unfavouriteVideo;
|
|
85
|
-
return requestFn(videoId, userId, success, error);
|
|
86
|
-
},
|
|
87
|
-
isFavourited: function isFavourited(userId, ids) {
|
|
88
|
-
var sortedIds = ids.slice().sort();
|
|
89
|
-
var params = sortedIds.map(function (i) {
|
|
90
|
-
return "id=".concat(i);
|
|
91
|
-
});
|
|
92
|
-
return {
|
|
93
|
-
url: "/api/domain/v2/objects?query=favouritedBy{id:".concat(userId, "}&").concat(params.join('&')),
|
|
94
|
-
key: "video:is:favourited:".concat(userId, ":by:id:").concat(sortedIds.join(',')),
|
|
95
|
-
formatData: function formatData(videos) {
|
|
96
|
-
var _a;
|
|
97
|
-
|
|
98
|
-
if (!((_a = videos) === null || _a === void 0 ? void 0 : _a.length)) return videos;
|
|
99
|
-
|
|
100
|
-
var setIsFavourited = function setIsFavourited(video) {
|
|
101
|
-
var _a, _b;
|
|
102
|
-
|
|
103
|
-
var favouritedBy = video.favouritedBy,
|
|
104
|
-
v = __rest(video, ["favouritedBy"]); // As we filtered by userId, if there are any users, set isFavourited to true.
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
return Object.assign(Object.assign({}, v), {
|
|
108
|
-
isFavourited: !!((_b = (_a = favouritedBy) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.length)
|
|
109
|
-
});
|
|
110
|
-
};
|
|
111
|
-
|
|
112
|
-
return videos.map(setIsFavourited);
|
|
113
|
-
}
|
|
114
|
-
};
|
|
115
|
-
}
|
|
116
|
-
};
|
|
117
|
-
|
|
118
|
-
function addCursor(cursor) {
|
|
119
|
-
return cursor ? "&cursor=".concat(cursor) : '';
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
/***/ }),
|
|
123
|
-
|
|
124
|
-
/***/ "./src/shared/flight-requests/SeriesRequests.ts":
|
|
125
|
-
/*!******************************************************!*\
|
|
126
|
-
!*** ./src/shared/flight-requests/SeriesRequests.ts ***!
|
|
127
|
-
\******************************************************/
|
|
128
|
-
/*! exports provided: SeriesRequests */
|
|
129
|
-
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
130
|
-
|
|
131
|
-
"use strict";
|
|
132
|
-
__webpack_require__.r(__webpack_exports__);
|
|
133
|
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SeriesRequests", function() { return SeriesRequests; });
|
|
134
|
-
/* harmony import */ var shared_constants_WithStatements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! shared/constants/WithStatements */ "./src/shared/constants/WithStatements.ts");
|
|
135
|
-
|
|
136
|
-
var endpoints = {
|
|
137
|
-
series: function series(id) {
|
|
138
|
-
return "/api/domain/v2/objects/".concat(id);
|
|
139
|
-
},
|
|
140
|
-
seriesVideos: function seriesVideos(id, cursor) {
|
|
141
|
-
return "/api/domain/v2/objects/".concat(id, "/videos?query=").concat(shared_constants_WithStatements__WEBPACK_IMPORTED_MODULE_0__["WithStatements"].VIDEO_COLLECTION).concat(addCursor(cursor));
|
|
142
|
-
},
|
|
143
|
-
breadcrumbs: function breadcrumbs(id) {
|
|
144
|
-
return "/api/domain/v1/subjects/".concat(id, "/path");
|
|
145
|
-
}
|
|
146
|
-
};
|
|
147
|
-
var SeriesRequests = {
|
|
148
|
-
series: function series(id) {
|
|
149
|
-
return {
|
|
150
|
-
url: endpoints.series(id),
|
|
151
|
-
key: "series:".concat(id)
|
|
152
|
-
};
|
|
153
|
-
},
|
|
154
|
-
seriesVideos: function seriesVideos(id, cursor) {
|
|
155
|
-
return {
|
|
156
|
-
url: endpoints.seriesVideos(id, cursor),
|
|
157
|
-
key: "series:".concat(id, ":videos:").concat(cursor)
|
|
158
|
-
};
|
|
159
|
-
},
|
|
160
|
-
breadcrumbs: function breadcrumbs(classificationId) {
|
|
161
|
-
if (!classificationId) return;
|
|
162
|
-
return {
|
|
163
|
-
url: endpoints.breadcrumbs(classificationId),
|
|
164
|
-
key: "series:".concat(classificationId, ":breadcrumbs")
|
|
165
|
-
};
|
|
166
|
-
}
|
|
167
|
-
};
|
|
168
|
-
|
|
169
|
-
function addCursor(cursor) {
|
|
170
|
-
return cursor ? "&cursor=".concat(cursor) : '';
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
/***/ }),
|
|
174
|
-
|
|
175
|
-
/***/ "./src/shared/hooks/useVideoMixin.ts":
|
|
176
|
-
/*!*******************************************!*\
|
|
177
|
-
!*** ./src/shared/hooks/useVideoMixin.ts ***!
|
|
178
|
-
\*******************************************/
|
|
179
|
-
/*! exports provided: useVideoMixin */
|
|
180
|
-
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
181
|
-
|
|
182
|
-
"use strict";
|
|
183
|
-
__webpack_require__.r(__webpack_exports__);
|
|
184
|
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "useVideoMixin", function() { return useVideoMixin; });
|
|
185
|
-
/* harmony import */ var _libs_common_src_react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../../libs/common/src/react */ "../../libs/common/src/react/index.ts");
|
|
186
|
-
/* 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");
|
|
187
|
-
/* 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");
|
|
188
|
-
/* harmony import */ var shared_flight_requests_VideoRequests__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! shared/flight-requests/VideoRequests */ "./src/shared/flight-requests/VideoRequests.ts");
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
function fetchAttribute(videosFetched, request) {
|
|
195
|
-
var attribute = _libs_common_src_react__WEBPACK_IMPORTED_MODULE_0__["Flight"].useGetResponse(request && request.key);
|
|
196
|
-
var fetch = _libs_common_src_react__WEBPACK_IMPORTED_MODULE_0__["Flight"].useGetFetch(request);
|
|
197
|
-
if (videosFetched && attribute.shouldFetch) fetch();
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
function useVideoMixin(videos) {
|
|
201
|
-
var currentUser = _libs_common_src_react__WEBPACK_IMPORTED_MODULE_0__["Flight"].useBasicFetch(_libs_shared_src_flight_requests_UserRequests__WEBPACK_IMPORTED_MODULE_1__["UserRequests"].currentUser);
|
|
202
|
-
var videoIds = videos && (Array.isArray(videos) ? videos.map(function (v) {
|
|
203
|
-
return v.id;
|
|
204
|
-
}) : videos.data.map(function (v) {
|
|
205
|
-
return v.id;
|
|
206
|
-
}));
|
|
207
|
-
var requests = [videoIds && shared_flight_requests_VideoRequests__WEBPACK_IMPORTED_MODULE_3__["VideoRequests"].videoRatings(videoIds), videoIds && currentUser.data && _libs_shared_src_flight_requests_FavouriteVideoRequests__WEBPACK_IMPORTED_MODULE_2__["FavouriteVideoRequests"].isFavourited(currentUser.data.id, videoIds)];
|
|
208
|
-
requests.forEach(function (r) {
|
|
209
|
-
return fetchAttribute(!!videos, r);
|
|
210
|
-
});
|
|
211
|
-
}
|
|
212
|
-
|
|
213
|
-
/***/ }),
|
|
214
|
-
|
|
215
|
-
/***/ "./src/shared/views/series/SeriesView.tsx":
|
|
216
|
-
/*!************************************************!*\
|
|
217
|
-
!*** ./src/shared/views/series/SeriesView.tsx ***!
|
|
218
|
-
\************************************************/
|
|
219
|
-
/*! exports provided: SeriesView */
|
|
220
|
-
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
221
|
-
|
|
222
|
-
"use strict";
|
|
223
|
-
__webpack_require__.r(__webpack_exports__);
|
|
224
|
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SeriesView", function() { return SeriesView; });
|
|
225
|
-
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
|
|
226
|
-
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
227
|
-
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-redux */ "react-redux");
|
|
228
|
-
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_1__);
|
|
229
|
-
/* harmony import */ var _libs_common_src_react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../libs/common/src/react */ "../../libs/common/src/react/index.ts");
|
|
230
|
-
/* harmony import */ var _libs_common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../../../libs/common/src/backbone/services/LanguageService */ "../../libs/common/src/backbone/services/LanguageService.tsx");
|
|
231
|
-
/* 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");
|
|
232
|
-
/* harmony import */ var _libs_shared_src_flight_requests_ConfigRequests__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../../../../libs/shared/src/flight-requests/ConfigRequests */ "../../libs/shared/src/flight-requests/ConfigRequests.ts");
|
|
233
|
-
/* harmony import */ var _libs_shared_src_flight_requests_FavouriteVideoRequests__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../../../../libs/shared/src/flight-requests/FavouriteVideoRequests */ "../../libs/shared/src/flight-requests/FavouriteVideoRequests.ts");
|
|
234
|
-
/* 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");
|
|
235
|
-
/* harmony import */ var _libs_shared_src_components_breadcrumbs_Breadcrumbs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../../../../libs/shared/src/components/breadcrumbs/Breadcrumbs */ "../../libs/shared/src/components/breadcrumbs/Breadcrumbs.tsx");
|
|
236
|
-
/* harmony import */ var _libs_shared_src_components_video_list_VideoList__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../../../../../libs/shared/src/components/video-list/VideoList */ "../../libs/shared/src/components/video-list/VideoList.tsx");
|
|
237
|
-
/* harmony import */ var _libs_shared_src_components_video_list_PartialVideoList__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../../../../../libs/shared/src/components/video-list/PartialVideoList */ "../../libs/shared/src/components/video-list/PartialVideoList.tsx");
|
|
238
|
-
/* harmony import */ var _libs_shared_src_utils_SvgHelper__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../../../../../libs/shared/src/utils/SvgHelper */ "../../libs/shared/src/utils/SvgHelper.ts");
|
|
239
|
-
/* harmony import */ var shared_flight_requests_SeriesRequests__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! shared/flight-requests/SeriesRequests */ "./src/shared/flight-requests/SeriesRequests.ts");
|
|
240
|
-
/* harmony import */ var shared_constants_LiteActions__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! shared/constants/LiteActions */ "./src/shared/constants/LiteActions.ts");
|
|
241
|
-
/* harmony import */ var shared_constants_LiteRadioChannels__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! shared/constants/LiteRadioChannels */ "./src/shared/constants/LiteRadioChannels.ts");
|
|
242
|
-
/* harmony import */ var shared_hooks_useVideoMixin__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! shared/hooks/useVideoMixin */ "./src/shared/hooks/useVideoMixin.ts");
|
|
243
|
-
/* harmony import */ var _libs_analytics_src_AnalyticsHelper__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../../../../../../libs/analytics/src/AnalyticsHelper */ "../../libs/analytics/src/AnalyticsHelper.ts");
|
|
244
|
-
/* harmony import */ var _libs_analytics_src_interfaces__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../../../../../../libs/analytics/src/interfaces */ "../../libs/analytics/src/interfaces/index.ts");
|
|
245
|
-
/* harmony import */ var _libs_common_src_react_utils_TextHelper__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../../../../../../libs/common/src/react/utils/TextHelper */ "../../libs/common/src/react/utils/TextHelper.ts");
|
|
246
|
-
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
247
|
-
|
|
248
|
-
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."); }
|
|
249
|
-
|
|
250
|
-
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); }
|
|
251
|
-
|
|
252
|
-
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }
|
|
253
|
-
|
|
254
|
-
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
255
|
-
|
|
256
|
-
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; }
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
/**
|
|
278
|
-
* This will need to change when this is moved into its own application directory.
|
|
279
|
-
*/
|
|
280
|
-
|
|
281
|
-
var namespace = 'shared.series';
|
|
282
|
-
var getPhrase = _libs_common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_3__["LanguageService"].encloseNamespace(namespace); // Update this applink when we pull dashboard in
|
|
283
|
-
|
|
284
|
-
var getClassificationAppLink = function getClassificationAppLink(classification) {
|
|
285
|
-
return {
|
|
286
|
-
application: null,
|
|
287
|
-
action: null,
|
|
288
|
-
args: [classification.id]
|
|
289
|
-
};
|
|
290
|
-
};
|
|
291
|
-
|
|
292
|
-
var getVideoAppLink = function getVideoAppLink(video) {
|
|
293
|
-
return {
|
|
294
|
-
application: null,
|
|
295
|
-
action: null,
|
|
296
|
-
args: [video.id]
|
|
297
|
-
};
|
|
298
|
-
};
|
|
299
|
-
|
|
300
|
-
var getSeriesAppLink = function getSeriesAppLink(series) {
|
|
301
|
-
return {
|
|
302
|
-
application: shared_constants_LiteRadioChannels__WEBPACK_IMPORTED_MODULE_14__["AppChannels"].DEFAULT,
|
|
303
|
-
action: shared_constants_LiteActions__WEBPACK_IMPORTED_MODULE_13__["Actions"].Default.SERIES,
|
|
304
|
-
args: [series.id, _libs_common_src_react_utils_TextHelper__WEBPACK_IMPORTED_MODULE_18__["TextHelper"].slugify(series.name)]
|
|
305
|
-
};
|
|
306
|
-
};
|
|
307
|
-
|
|
308
|
-
var getHeaderActions = function getHeaderActions() {
|
|
309
|
-
return [{
|
|
310
|
-
label: _libs_common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_3__["LanguageService"].getPhrase(namespace, 'share'),
|
|
311
|
-
appLink: {
|
|
312
|
-
application: shared_constants_LiteRadioChannels__WEBPACK_IMPORTED_MODULE_14__["AppChannels"].DEFAULT,
|
|
313
|
-
action: 'index'
|
|
314
|
-
},
|
|
315
|
-
svgName: _libs_shared_src_utils_SvgHelper__WEBPACK_IMPORTED_MODULE_11__["cvSvgLibrary"].Share,
|
|
316
|
-
className: 'btn btn-light mr-2',
|
|
317
|
-
button: true
|
|
318
|
-
}, {
|
|
319
|
-
label: _libs_common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_3__["LanguageService"].getPhrase(namespace, 'follow'),
|
|
320
|
-
appLink: {
|
|
321
|
-
application: shared_constants_LiteRadioChannels__WEBPACK_IMPORTED_MODULE_14__["AppChannels"].DEFAULT,
|
|
322
|
-
action: 'index'
|
|
323
|
-
},
|
|
324
|
-
svgName: _libs_shared_src_utils_SvgHelper__WEBPACK_IMPORTED_MODULE_11__["cvSvgLibrary"].Edit,
|
|
325
|
-
className: 'btn btn-light',
|
|
326
|
-
button: true
|
|
327
|
-
}];
|
|
328
|
-
};
|
|
329
|
-
|
|
330
|
-
function SeriesView(props) {
|
|
331
|
-
var dispatch = Object(react_redux__WEBPACK_IMPORTED_MODULE_1__["useDispatch"])();
|
|
332
|
-
var config = _libs_common_src_react__WEBPACK_IMPORTED_MODULE_2__["Flight"].useBasicFetch(_libs_shared_src_flight_requests_ConfigRequests__WEBPACK_IMPORTED_MODULE_5__["ConfigRequests"].config);
|
|
333
|
-
var currentUser = _libs_common_src_react__WEBPACK_IMPORTED_MODULE_2__["Flight"].useBasicFetch(_libs_shared_src_flight_requests_UserRequests__WEBPACK_IMPORTED_MODULE_4__["UserRequests"].currentUser);
|
|
334
|
-
var series = _libs_common_src_react__WEBPACK_IMPORTED_MODULE_2__["Flight"].useBasicFetch(shared_flight_requests_SeriesRequests__WEBPACK_IMPORTED_MODULE_12__["SeriesRequests"].series(props.id));
|
|
335
|
-
var seriesVideos = _libs_common_src_react__WEBPACK_IMPORTED_MODULE_2__["Flight"].useBasicFetch(shared_flight_requests_SeriesRequests__WEBPACK_IMPORTED_MODULE_12__["SeriesRequests"].seriesVideos(props.id, props.cursor));
|
|
336
|
-
Object(shared_hooks_useVideoMixin__WEBPACK_IMPORTED_MODULE_15__["useVideoMixin"])(seriesVideos.data);
|
|
337
|
-
var breadcrumbs = [series.data];
|
|
338
|
-
|
|
339
|
-
if (props.classificationId) {
|
|
340
|
-
var subjectPath = _libs_common_src_react__WEBPACK_IMPORTED_MODULE_2__["Flight"].useBasicFetch(shared_flight_requests_SeriesRequests__WEBPACK_IMPORTED_MODULE_12__["SeriesRequests"].breadcrumbs(props.classificationId));
|
|
341
|
-
|
|
342
|
-
if (subjectPath.data) {
|
|
343
|
-
breadcrumbs.unshift.apply(breadcrumbs, _toConsumableArray(subjectPath.data));
|
|
344
|
-
}
|
|
345
|
-
}
|
|
346
|
-
|
|
347
|
-
function setFavourite(videoId, shouldFavourite, onError) {
|
|
348
|
-
_libs_common_src_react__WEBPACK_IMPORTED_MODULE_2__["Flight"].fetch(dispatch, _libs_shared_src_flight_requests_FavouriteVideoRequests__WEBPACK_IMPORTED_MODULE_6__["FavouriteVideoRequests"].updateIsVideoFavourited(videoId, currentUser.data.id, shouldFavourite, function () {
|
|
349
|
-
_libs_analytics_src_AnalyticsHelper__WEBPACK_IMPORTED_MODULE_16__["AnalyticsHelper"].logUserAction({
|
|
350
|
-
id: videoId
|
|
351
|
-
}, {
|
|
352
|
-
entity: _libs_analytics_src_interfaces__WEBPACK_IMPORTED_MODULE_17__["EntityType"].Video,
|
|
353
|
-
actionType: _libs_analytics_src_interfaces__WEBPACK_IMPORTED_MODULE_17__["UserAction"].Favourite,
|
|
354
|
-
descriptor: shouldFavourite ? _libs_analytics_src_interfaces__WEBPACK_IMPORTED_MODULE_17__["ToggleDescriptor"].On : _libs_analytics_src_interfaces__WEBPACK_IMPORTED_MODULE_17__["ToggleDescriptor"].Off,
|
|
355
|
-
location: _libs_analytics_src_interfaces__WEBPACK_IMPORTED_MODULE_17__["LocationContext"].VideoThumbnail,
|
|
356
|
-
workflowPhase: _libs_analytics_src_interfaces__WEBPACK_IMPORTED_MODULE_17__["WorkflowPhase"].Complete
|
|
357
|
-
});
|
|
358
|
-
}, onError));
|
|
359
|
-
}
|
|
360
|
-
|
|
361
|
-
if (!seriesVideos.data || !config.data || !series.data) return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null);
|
|
362
|
-
var heading = getPhrase('series', {
|
|
363
|
-
seriesName: series.data.name
|
|
364
|
-
});
|
|
365
|
-
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"], {
|
|
366
|
-
heading: heading,
|
|
367
|
-
banner: null,
|
|
368
|
-
imageCdnUrl: config.data.imageCdnUrl,
|
|
369
|
-
backButtonAppLink: {
|
|
370
|
-
application: shared_constants_LiteRadioChannels__WEBPACK_IMPORTED_MODULE_14__["AppChannels"].DASHBOARD,
|
|
371
|
-
action: shared_constants_LiteActions__WEBPACK_IMPORTED_MODULE_13__["Actions"].Dashboard.HOME
|
|
372
|
-
},
|
|
373
|
-
backButtonText: 'Home' // this needs to be changed eventually
|
|
374
|
-
,
|
|
375
|
-
actions: getHeaderActions()
|
|
376
|
-
}), react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", null, react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
|
|
377
|
-
className: 'border-bottom py-3 mb-3'
|
|
378
|
-
}, props.classificationId && breadcrumbs.length < 2 ? react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_components_breadcrumbs_Breadcrumbs__WEBPACK_IMPORTED_MODULE_8__["PartialBreadcrumbs"], null) : react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_components_breadcrumbs_Breadcrumbs__WEBPACK_IMPORTED_MODULE_8__["Breadcrumbs"], {
|
|
379
|
-
currentItem: series.data,
|
|
380
|
-
type: _libs_shared_src_components_breadcrumbs_Breadcrumbs__WEBPACK_IMPORTED_MODULE_8__["BreadcrumbType"].Static,
|
|
381
|
-
getItemAppLink: getClassificationAppLink,
|
|
382
|
-
data: breadcrumbs,
|
|
383
|
-
rootItem: {
|
|
384
|
-
label: getPhrase('dashboard'),
|
|
385
|
-
appLink: {
|
|
386
|
-
application: shared_constants_LiteRadioChannels__WEBPACK_IMPORTED_MODULE_14__["AppChannels"].DASHBOARD,
|
|
387
|
-
action: shared_constants_LiteActions__WEBPACK_IMPORTED_MODULE_13__["Actions"].Dashboard.HOME
|
|
388
|
-
}
|
|
389
|
-
}
|
|
390
|
-
}), series.data.description && react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("p", {
|
|
391
|
-
className: 'pt-3'
|
|
392
|
-
}, series.data.description)), seriesVideos.data ? !seriesVideos.isFetching ? react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_components_video_list_VideoList__WEBPACK_IMPORTED_MODULE_9__["VideoList"], {
|
|
393
|
-
videos: seriesVideos.data.data,
|
|
394
|
-
cursors: seriesVideos.data.pagination.cursors,
|
|
395
|
-
getVideoAppLink: getVideoAppLink,
|
|
396
|
-
getSeriesAppLink: getSeriesAppLink,
|
|
397
|
-
setFavourite: setFavourite
|
|
398
|
-
}) : react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_libs_shared_src_components_video_list_PartialVideoList__WEBPACK_IMPORTED_MODULE_10__["PartialVideoList"], null) : react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null, "Empty State")));
|
|
399
|
-
}
|
|
400
|
-
|
|
401
|
-
/***/ })
|
|
402
|
-
|
|
403
|
-
}]);
|
|
404
|
-
//# sourceMappingURL=42.chunk.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["file://C:/ClickView/front-end/clickview/packages/libs/shared/src/components/video-list/PartialVideoList.tsx","file://C:/ClickView/front-end/clickview/packages/libs/shared/src/flight-requests/FavouriteVideoRequests.ts","file://C:/ClickView/front-end/clickview/packages/projects/lite/src/shared/flight-requests/SeriesRequests.ts","file://C:/ClickView/front-end/clickview/packages/projects/lite/src/shared/hooks/useVideoMixin.ts","file://C:/ClickView/front-end/clickview/packages/projects/lite/src/shared/views/series/SeriesView.tsx"],"names":[],"mappings":"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","file":"scripts/42.chunk.js","sourcesContent":["import * as React from 'react';\r\n\r\ninterface PartialVideoListProps {\r\n\r\n}\r\n\r\nexport function PartialVideoList(props: PartialVideoListProps): JSX.Element {\r\n return (\r\n <>\r\n </>\r\n );\r\n}","import { Flight } from 'libs/common/flight';\r\nimport { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\r\nimport { Xhr } from 'libs/common/backbone/interfaces';\r\nimport { HashObject } from 'libs/common/react/interfaces/HashObject';\r\n\r\nimport { SharedWithStatements } from 'libs/shared/constants/WithStatements';\r\n\r\nfunction favouriteVideo(\r\n videoId: string, userId: string, success?: () => void, error?: (Xhr: Xhr) => void\r\n): Flight.Request {\r\n return {\r\n url: `/api/domain/v2/objects/${userId}`,\r\n key: `favourite:video:${userId}:${videoId}`,\r\n data: { favouriteVideos: videoId },\r\n type: HttpVerbs.PUT,\r\n invalidationKeys: [ `favourite:videos:${userId}`, `video:is:favourited:${userId}` ],\r\n success,\r\n error\r\n };\r\n}\r\n\r\nfunction unfavouriteVideo(\r\n videoId: string, userId: string, success?: () => void, error?: (Xhr: Xhr) => void\r\n): Flight.Request {\r\n return {\r\n url: `/api/domain/v2/objects/${userId}/favouriteVideos/${videoId}`,\r\n key: `favourite:video:${userId}:${videoId}`,\r\n type: HttpVerbs.DELETE,\r\n invalidationKeys: [ `favourite:videos:${userId}`, `video:is:favourited:${userId}` ],\r\n success,\r\n error\r\n };\r\n}\r\n\r\nexport const FavouriteVideoRequests = {\r\n favouriteVideos(userId: string, cursor?: string): Flight.Request {\r\n const query = `${SharedWithStatements.VIDEO_COLLECTION}${addCursor(cursor)}`;\r\n\r\n return {\r\n url: `/api/domain/v2/objects/${userId}/favouriteVideos?query=${query}`,\r\n key: `favourite:videos:${userId}${cursor ? `:${cursor}` : ''}`\r\n };\r\n },\r\n\r\n updateIsVideoFavourited(\r\n videoId: string, userId: string, shouldFavourite: boolean, success?: () => void, error?: (Xhr: Xhr) => void\r\n ): Flight.Request {\r\n const requestFn = shouldFavourite\r\n ? favouriteVideo\r\n : unfavouriteVideo;\r\n\r\n return requestFn(videoId, userId, success, error);\r\n },\r\n\r\n isFavourited(userId: string, ids: string[]): Flight.Request {\r\n const sortedIds = ids.slice().sort();\r\n\r\n const params = sortedIds.map(i => `id=${i}`);\r\n\r\n return {\r\n url: `/api/domain/v2/objects?query=favouritedBy{id:${userId}}&${params.join('&')}`,\r\n key: `video:is:favourited:${userId}:by:id:${sortedIds.join(',')}`,\r\n formatData: (videos: HashObject[]) => {\r\n if (!videos?.length)\r\n return videos;\r\n\r\n const setIsFavourited = (video: HashObject) => {\r\n const { favouritedBy, ...v } = video;\r\n\r\n // As we filtered by userId, if there are any users, set isFavourited to true.\r\n return {\r\n ...v,\r\n isFavourited: !!favouritedBy?.data?.length\r\n };\r\n };\r\n\r\n return videos.map(setIsFavourited);\r\n }\r\n };\r\n }\r\n};\r\n\r\nfunction addCursor(cursor: string): string {\r\n return cursor ? `&cursor=${cursor}` : '';\r\n}","import { Flight } from 'libs/common/flight';\r\nimport { WithStatements } from 'shared/constants/WithStatements';\r\n\r\nconst endpoints = {\r\n series: (id: string) => `/api/domain/v2/objects/${id}`,\r\n seriesVideos: (id: string, cursor: string) =>\r\n `/api/domain/v2/objects/${id}/videos?query=${WithStatements.VIDEO_COLLECTION}${addCursor(cursor)}`,\r\n\r\n breadcrumbs: (id: string) => `/api/domain/v1/subjects/${id}/path`\r\n};\r\n\r\nexport const SeriesRequests = {\r\n series(id: string): Flight.Request {\r\n return {\r\n url: endpoints.series(id),\r\n key: `series:${id}`\r\n };\r\n },\r\n seriesVideos(id: string, cursor: string): Flight.Request {\r\n return {\r\n url: endpoints.seriesVideos(id, cursor),\r\n key: `series:${id}:videos:${cursor}`\r\n };\r\n },\r\n breadcrumbs(classificationId: string): Flight.Request {\r\n if (!classificationId)\r\n return;\r\n\r\n return {\r\n url: endpoints.breadcrumbs(classificationId),\r\n key: `series:${classificationId}:breadcrumbs`\r\n };\r\n }\r\n};\r\n\r\nfunction addCursor(cursor: string): string {\r\n return cursor ? `&cursor=${cursor}` : '';\r\n}","import { Flight } from 'libs/common/flight';\r\nimport { VideoCollection, User, Video } from 'libs/shared/interfaces';\r\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\r\nimport { FavouriteVideoRequests } from 'libs/shared/flight-requests/FavouriteVideoRequests';\r\n\r\nimport { VideoRequests } from 'shared/flight-requests/VideoRequests';\r\n\r\nfunction fetchAttribute(videosFetched: boolean, request: Flight.Request): void {\r\n const attribute = Flight.useGetResponse<VideoCollection>(request && request.key);\r\n const fetch = Flight.useGetFetch(request);\r\n\r\n if (videosFetched && attribute.shouldFetch)\r\n fetch();\r\n}\r\n\r\nexport function useVideoMixin(videos: VideoCollection | Video[]): void {\r\n const currentUser = Flight.useBasicFetch<User>(UserRequests.currentUser);\r\n\r\n const videoIds = videos && (Array.isArray(videos)\r\n ? videos.map(v => v.id)\r\n : videos.data.map(v => v.id));\r\n\r\n const requests: Flight.Request[] = [\r\n videoIds && VideoRequests.videoRatings(videoIds),\r\n videoIds && currentUser.data && FavouriteVideoRequests.isFavourited(currentUser.data.id, videoIds)\r\n ];\r\n\r\n requests.forEach(r => fetchAttribute(!!videos, r));\r\n}","import * as React from 'react';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport { Flight } from 'libs/common/flight';\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\nimport { Core } from 'libs/common/core';\r\nimport { Series, Config, Video, Classification, VideoCollection, BaseObject, User } from 'libs/shared/interfaces';\r\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\r\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\r\nimport { FavouriteVideoRequests } from 'libs/shared/flight-requests/FavouriteVideoRequests';\r\nimport { BannerHeader } from 'libs/shared/components/banner-header/BannerHeader';\r\nimport { Breadcrumbs, BreadcrumbType, PartialBreadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\r\nimport { VideoList } from 'libs/shared/components/video-list/VideoList';\r\nimport { PartialVideoList } from 'libs/shared/components/video-list/PartialVideoList';\r\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\r\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\r\n\r\nimport { SeriesRequests } from 'shared/flight-requests/SeriesRequests';\r\nimport { Actions } from 'shared/constants/LiteActions';\r\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\r\nimport { useVideoMixin } from 'shared/hooks/useVideoMixin';\r\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\r\nimport { EntityType, UserAction, LocationContext, WorkflowPhase, ToggleDescriptor } from 'libs/analytics/interfaces';\r\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\r\n\r\n/**\r\n * This will need to change when this is moved into its own application directory.\r\n */\r\nconst namespace = 'shared.series';\r\nconst getPhrase = LanguageService.encloseNamespace(namespace);\r\n\r\n// Update this applink when we pull dashboard in\r\nconst getClassificationAppLink = (classification: Classification): Core.AppLink => ({\r\n application: null,\r\n action: null,\r\n args: [classification.id]\r\n});\r\n\r\nconst getVideoAppLink = (video: Video): Core.AppLink => ({\r\n application: null,\r\n action: null,\r\n args: [video.id]\r\n});\r\n\r\nconst getSeriesAppLink = (series: Series): Core.AppLink => ({\r\n application: AppChannels.DEFAULT,\r\n action: Actions.Default.SERIES,\r\n args: [ series.id, TextHelper.slugify(series.name) ]\r\n});\r\n\r\nconst getHeaderActions = (): ActionOptions[] => ([\r\n {\r\n label: LanguageService.getPhrase(namespace, 'share'),\r\n appLink: { application: AppChannels.DEFAULT, action: 'index' },\r\n svgName: cvSvgLibrary.Share,\r\n className: 'btn btn-light mr-2',\r\n button: true\r\n },\r\n {\r\n label: LanguageService.getPhrase(namespace, 'follow'),\r\n appLink: { application: AppChannels.DEFAULT, action: 'index' },\r\n svgName: cvSvgLibrary.Edit, // TODO: Change to \"Follow\" icon\r\n className: 'btn btn-light',\r\n button: true\r\n }\r\n]);\r\n\r\ninterface SeriesViewProps {\r\n id: string;\r\n classificationId?: string;\r\n cursor?: string;\r\n}\r\n\r\nexport function SeriesView(props: SeriesViewProps): JSX.Element {\r\n const dispatch = useDispatch();\r\n\r\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config);\r\n const currentUser = Flight.useBasicFetch<User>(UserRequests.currentUser);\r\n const series = Flight.useBasicFetch<Series>(SeriesRequests.series(props.id));\r\n const seriesVideos = Flight.useBasicFetch<VideoCollection>(SeriesRequests.seriesVideos(props.id, props.cursor));\r\n\r\n useVideoMixin(seriesVideos.data);\r\n\r\n let breadcrumbs: BaseObject[] = [series.data];\r\n if (props.classificationId) {\r\n const subjectPath = Flight.useBasicFetch<Classification[]>(SeriesRequests.breadcrumbs(props.classificationId));\r\n if (subjectPath.data) {\r\n breadcrumbs.unshift(...subjectPath.data);\r\n }\r\n }\r\n\r\n function setFavourite(videoId: string, shouldFavourite: boolean, onError?: () => void): void {\r\n Flight.fetch(\r\n dispatch,\r\n FavouriteVideoRequests.updateIsVideoFavourited(videoId, currentUser.data.id, shouldFavourite, () => {\r\n AnalyticsHelper.logUserAction({ id: videoId }, {\r\n entity: EntityType.Video,\r\n actionType: UserAction.Favourite,\r\n descriptor: shouldFavourite ? ToggleDescriptor.On : ToggleDescriptor.Off,\r\n location: LocationContext.VideoThumbnail,\r\n workflowPhase: WorkflowPhase.Complete\r\n });\r\n }, onError)\r\n );\r\n }\r\n\r\n if (!seriesVideos.data || !config.data || !series.data)\r\n return <></>;\r\n\r\n const heading = getPhrase('series', { seriesName: series.data.name });\r\n\r\n return (\r\n <>\r\n <BannerHeader\r\n heading={heading}\r\n banner={null}\r\n imageCdnUrl={config.data.imageCdnUrl}\r\n backButtonAppLink={{\r\n application: AppChannels.DASHBOARD,\r\n action: Actions.Dashboard.HOME\r\n }}\r\n backButtonText='Home' // this needs to be changed eventually\r\n actions={getHeaderActions()}\r\n />\r\n <div>\r\n <div className='border-bottom py-3 mb-3'>\r\n {(props.classificationId && breadcrumbs.length < 2)\r\n ? <PartialBreadcrumbs />\r\n : <Breadcrumbs\r\n currentItem={series.data}\r\n type={BreadcrumbType.Static}\r\n getItemAppLink={getClassificationAppLink}\r\n data={breadcrumbs}\r\n rootItem={{\r\n label: getPhrase('dashboard'),\r\n appLink: {\r\n application: AppChannels.DASHBOARD,\r\n action: Actions.Dashboard.HOME\r\n }\r\n }}\r\n />\r\n }\r\n\r\n {series.data.description && (\r\n <p className='pt-3'>{series.data.description}</p>\r\n )}\r\n </div>\r\n\r\n {seriesVideos.data\r\n ? !seriesVideos.isFetching\r\n ? <VideoList\r\n videos={seriesVideos.data.data}\r\n cursors={seriesVideos.data.pagination.cursors}\r\n getVideoAppLink={getVideoAppLink}\r\n getSeriesAppLink={getSeriesAppLink}\r\n setFavourite={setFavourite}\r\n />\r\n : <PartialVideoList />\r\n : <>Empty State</>\r\n }\r\n </div>\r\n </>\r\n );\r\n}"],"sourceRoot":""}
|