1 | 'use strict';
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 |
|
7 | var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
|
8 |
|
9 | var _slicedToArray = function () { function sliceIterator(arr, i) { 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"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
|
10 |
|
11 | exports.parseStartTime = parseStartTime;
|
12 | exports.parseEndTime = parseEndTime;
|
13 | exports.randomString = randomString;
|
14 | exports.queryString = queryString;
|
15 | exports.getSDK = getSDK;
|
16 | exports.getConfig = getConfig;
|
17 | exports.omit = omit;
|
18 | exports.callPlayer = callPlayer;
|
19 | exports.isObject = isObject;
|
20 | exports.isEqual = isEqual;
|
21 | exports.isMediaStream = isMediaStream;
|
22 |
|
23 | var _loadScript = require('load-script');
|
24 |
|
25 | var _loadScript2 = _interopRequireDefault(_loadScript);
|
26 |
|
27 | var _deepmerge = require('deepmerge');
|
28 |
|
29 | var _deepmerge2 = _interopRequireDefault(_deepmerge);
|
30 |
|
31 | var _props = require('./props');
|
32 |
|
33 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
|
34 |
|
35 | 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; }
|
36 |
|
37 | var MATCH_START_QUERY = /[?&#](?:start|t)=([0-9hms]+)/;
|
38 | var MATCH_END_QUERY = /[?&#]end=([0-9hms]+)/;
|
39 | var MATCH_START_STAMP = /(\d+)(h|m|s)/g;
|
40 | var MATCH_NUMERIC = /^\d+$/;
|
41 |
|
42 |
|
43 |
|
44 | function parseTimeParam(url, pattern) {
|
45 | var match = url.match(pattern);
|
46 | if (match) {
|
47 | var stamp = match[1];
|
48 | if (stamp.match(MATCH_START_STAMP)) {
|
49 | return parseTimeString(stamp);
|
50 | }
|
51 | if (MATCH_NUMERIC.test(stamp)) {
|
52 | return parseInt(stamp);
|
53 | }
|
54 | }
|
55 | return undefined;
|
56 | }
|
57 |
|
58 | function parseTimeString(stamp) {
|
59 | var seconds = 0;
|
60 | var array = MATCH_START_STAMP.exec(stamp);
|
61 | while (array !== null) {
|
62 | var _array = array,
|
63 | _array2 = _slicedToArray(_array, 3),
|
64 | count = _array2[1],
|
65 | period = _array2[2];
|
66 |
|
67 | if (period === 'h') seconds += parseInt(count, 10) * 60 * 60;
|
68 | if (period === 'm') seconds += parseInt(count, 10) * 60;
|
69 | if (period === 's') seconds += parseInt(count, 10);
|
70 | array = MATCH_START_STAMP.exec(stamp);
|
71 | }
|
72 | return seconds;
|
73 | }
|
74 |
|
75 | function parseStartTime(url) {
|
76 | return parseTimeParam(url, MATCH_START_QUERY);
|
77 | }
|
78 |
|
79 | function parseEndTime(url) {
|
80 | return parseTimeParam(url, MATCH_END_QUERY);
|
81 | }
|
82 |
|
83 |
|
84 | function randomString() {
|
85 | return Math.random().toString(36).substr(2, 5);
|
86 | }
|
87 |
|
88 | function queryString(object) {
|
89 | return Object.keys(object).map(function (key) {
|
90 | return key + '=' + object[key];
|
91 | }).join('&');
|
92 | }
|
93 |
|
94 |
|
95 |
|
96 | var resolves = {};
|
97 | function getSDK(url, sdkGlobal) {
|
98 | var sdkReady = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
|
99 | var isLoaded = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : function () {
|
100 | return true;
|
101 | };
|
102 | var fetchScript = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : _loadScript2['default'];
|
103 |
|
104 | if (window[sdkGlobal] && isLoaded(window[sdkGlobal])) {
|
105 | return Promise.resolve(window[sdkGlobal]);
|
106 | }
|
107 | return new Promise(function (resolve, reject) {
|
108 |
|
109 |
|
110 | if (resolves[url]) {
|
111 | resolves[url].push(resolve);
|
112 | return;
|
113 | }
|
114 | resolves[url] = [resolve];
|
115 | var onLoaded = function onLoaded(sdk) {
|
116 |
|
117 | resolves[url].forEach(function (resolve) {
|
118 | return resolve(sdk);
|
119 | });
|
120 | };
|
121 | if (sdkReady) {
|
122 | var previousOnReady = window[sdkReady];
|
123 | window[sdkReady] = function () {
|
124 | if (previousOnReady) previousOnReady();
|
125 | onLoaded(window[sdkGlobal]);
|
126 | };
|
127 | }
|
128 | fetchScript(url, function (err) {
|
129 | if (err) reject(err);
|
130 | if (!sdkReady) {
|
131 | onLoaded(window[sdkGlobal]);
|
132 | }
|
133 | });
|
134 | });
|
135 | }
|
136 |
|
137 | function getConfig(props, defaultProps, showWarning) {
|
138 | var config = (0, _deepmerge2['default'])(defaultProps.config, props.config);
|
139 | var _iteratorNormalCompletion = true;
|
140 | var _didIteratorError = false;
|
141 | var _iteratorError = undefined;
|
142 |
|
143 | try {
|
144 | for (var _iterator = _props.DEPRECATED_CONFIG_PROPS[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
145 | var p = _step.value;
|
146 |
|
147 | if (props[p]) {
|
148 | var key = p.replace(/Config$/, '');
|
149 | config = (0, _deepmerge2['default'])(config, _defineProperty({}, key, props[p]));
|
150 | if (showWarning) {
|
151 | var link = 'https://github.com/CookPete/react-player#config-prop';
|
152 | var message = 'ReactPlayer: %c' + p + ' %cis deprecated, please use the config prop instead \u2013 ' + link;
|
153 | console.warn(message, 'font-weight: bold', '');
|
154 | }
|
155 | }
|
156 | }
|
157 | } catch (err) {
|
158 | _didIteratorError = true;
|
159 | _iteratorError = err;
|
160 | } finally {
|
161 | try {
|
162 | if (!_iteratorNormalCompletion && _iterator['return']) {
|
163 | _iterator['return']();
|
164 | }
|
165 | } finally {
|
166 | if (_didIteratorError) {
|
167 | throw _iteratorError;
|
168 | }
|
169 | }
|
170 | }
|
171 |
|
172 | return config;
|
173 | }
|
174 |
|
175 | function omit(object) {
|
176 | var _ref;
|
177 |
|
178 | for (var _len = arguments.length, arrays = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
179 | arrays[_key - 1] = arguments[_key];
|
180 | }
|
181 |
|
182 | var omitKeys = (_ref = []).concat.apply(_ref, arrays);
|
183 | var output = {};
|
184 | var keys = Object.keys(object);
|
185 | var _iteratorNormalCompletion2 = true;
|
186 | var _didIteratorError2 = false;
|
187 | var _iteratorError2 = undefined;
|
188 |
|
189 | try {
|
190 | for (var _iterator2 = keys[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
|
191 | var key = _step2.value;
|
192 |
|
193 | if (omitKeys.indexOf(key) === -1) {
|
194 | output[key] = object[key];
|
195 | }
|
196 | }
|
197 | } catch (err) {
|
198 | _didIteratorError2 = true;
|
199 | _iteratorError2 = err;
|
200 | } finally {
|
201 | try {
|
202 | if (!_iteratorNormalCompletion2 && _iterator2['return']) {
|
203 | _iterator2['return']();
|
204 | }
|
205 | } finally {
|
206 | if (_didIteratorError2) {
|
207 | throw _iteratorError2;
|
208 | }
|
209 | }
|
210 | }
|
211 |
|
212 | return output;
|
213 | }
|
214 |
|
215 | function callPlayer(method) {
|
216 | var _player;
|
217 |
|
218 |
|
219 |
|
220 | if (!this.player || !this.player[method]) {
|
221 | var message = 'ReactPlayer: ' + this.constructor.displayName + ' player could not call %c' + method + '%c \u2013 ';
|
222 | if (!this.player) {
|
223 | message += 'The player was not available';
|
224 | } else if (!this.player[method]) {
|
225 | message += 'The method was not available';
|
226 | }
|
227 | console.warn(message, 'font-weight: bold', '');
|
228 | return null;
|
229 | }
|
230 |
|
231 | for (var _len2 = arguments.length, args = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
|
232 | args[_key2 - 1] = arguments[_key2];
|
233 | }
|
234 |
|
235 | return (_player = this.player)[method].apply(_player, args);
|
236 | }
|
237 |
|
238 | function isObject(val) {
|
239 | return val !== null && (typeof val === 'undefined' ? 'undefined' : _typeof(val)) === 'object';
|
240 | }
|
241 |
|
242 |
|
243 |
|
244 | function isEqual(a, b) {
|
245 | if (typeof a === 'function' && typeof b === 'function') {
|
246 | return true;
|
247 | }
|
248 | if (a instanceof Array && b instanceof Array) {
|
249 | if (a.length !== b.length) {
|
250 | return false;
|
251 | }
|
252 | for (var i = 0; i !== a.length; i++) {
|
253 | if (!isEqual(a[i], b[i])) {
|
254 | return false;
|
255 | }
|
256 | }
|
257 | return true;
|
258 | }
|
259 | if (isObject(a) && isObject(b)) {
|
260 | if (Object.keys(a).length !== Object.keys(b).length) {
|
261 | return false;
|
262 | }
|
263 | var _iteratorNormalCompletion3 = true;
|
264 | var _didIteratorError3 = false;
|
265 | var _iteratorError3 = undefined;
|
266 |
|
267 | try {
|
268 | for (var _iterator3 = Object.keys(a)[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
|
269 | var key = _step3.value;
|
270 |
|
271 | if (!isEqual(a[key], b[key])) {
|
272 | return false;
|
273 | }
|
274 | }
|
275 | } catch (err) {
|
276 | _didIteratorError3 = true;
|
277 | _iteratorError3 = err;
|
278 | } finally {
|
279 | try {
|
280 | if (!_iteratorNormalCompletion3 && _iterator3['return']) {
|
281 | _iterator3['return']();
|
282 | }
|
283 | } finally {
|
284 | if (_didIteratorError3) {
|
285 | throw _iteratorError3;
|
286 | }
|
287 | }
|
288 | }
|
289 |
|
290 | return true;
|
291 | }
|
292 | return a === b;
|
293 | }
|
294 |
|
295 | function isMediaStream(url) {
|
296 | return typeof window !== 'undefined' && typeof window.MediaStream !== 'undefined' && url instanceof window.MediaStream;
|
297 | } |
\ | No newline at end of file |