@mjhls/mjh-framework 1.0.236 → 1.0.237

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 (40) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/AdSlot-d87cef08.js +69 -0
  3. package/dist/cjs/DeckContent.js +3 -3
  4. package/dist/cjs/DeckQueue.js +2 -2
  5. package/dist/cjs/{Dfp-f16a4421.js → Dfp-f62b16e1.js} +1 -1
  6. package/dist/cjs/{GridContent-3f7dc5ac.js → GridContent-6dae5d6a.js} +4 -4
  7. package/dist/cjs/GridContent.js +4 -4
  8. package/dist/cjs/MasterDeck.js +2 -2
  9. package/dist/cjs/{Normal-815c5ad0.js → Normal-821546cd.js} +3 -3
  10. package/dist/cjs/QueueDeckExpanded.js +2 -2
  11. package/dist/cjs/{TaxonomyCard-0d4ec68b.js → TaxonomyCard-d97685e2.js} +1 -1
  12. package/dist/cjs/TaxonomyCard.js +2 -2
  13. package/dist/cjs/TemplateNormal.js +4 -4
  14. package/dist/cjs/{Ustream-5f595d09.js → Ustream-0d3dd953.js} +1 -1
  15. package/dist/cjs/Ustream.js +2 -2
  16. package/dist/cjs/VideoSeriesListing.js +1 -1
  17. package/dist/cjs/{_babelHelpers-4a69caad.js → _babelHelpers-f321c258.js} +0 -30
  18. package/dist/cjs/index.js +8 -79
  19. package/dist/cjs/{main-becc38ae.js → main-58839f4e.js} +0 -1
  20. package/dist/esm/AdSlot-0ea49f7e.js +64 -0
  21. package/dist/esm/DeckContent.js +3 -3
  22. package/dist/esm/DeckQueue.js +2 -2
  23. package/dist/esm/{Dfp-0567f8a3.js → Dfp-f026ab16.js} +1 -1
  24. package/dist/esm/{GridContent-e61fff04.js → GridContent-7990f509.js} +4 -4
  25. package/dist/esm/GridContent.js +4 -4
  26. package/dist/esm/MasterDeck.js +2 -2
  27. package/dist/esm/{Normal-ebb02255.js → Normal-20ff5bf5.js} +3 -3
  28. package/dist/esm/QueueDeckExpanded.js +2 -2
  29. package/dist/esm/{TaxonomyCard-92f9e327.js → TaxonomyCard-f9c93953.js} +1 -1
  30. package/dist/esm/TaxonomyCard.js +2 -2
  31. package/dist/esm/TemplateNormal.js +4 -4
  32. package/dist/esm/{Ustream-2bfb1813.js → Ustream-6bb45fe7.js} +1 -1
  33. package/dist/esm/Ustream.js +2 -2
  34. package/dist/esm/VideoSeriesListing.js +1 -1
  35. package/dist/esm/{_babelHelpers-c212c59c.js → _babelHelpers-67c05996.js} +1 -30
  36. package/dist/esm/index.js +12 -82
  37. package/dist/esm/{main-e84e7749.js → main-cd81c243.js} +1 -1
  38. package/package.json +1 -1
  39. package/dist/cjs/AdSlot-983cfe5f.js +0 -515
  40. package/dist/esm/AdSlot-c40f4438.js +0 -509
@@ -1,515 +0,0 @@
1
- 'use strict';
2
-
3
- function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
4
-
5
- var React = require('react');
6
- var React__default = _interopDefault(React);
7
- var index = require('./index-0322e486.js');
8
- var PropTypes = _interopDefault(require('prop-types'));
9
- var debounce = require('./debounce-a963b136.js');
10
- var main = require('./main-becc38ae.js');
11
- var _babelHelpers = require('./_babelHelpers-4a69caad.js');
12
-
13
- var faunadb = require('faunadb');
14
-
15
- var _require = require('faunadb'),
16
- q = _require.query;
17
-
18
- var shortid = require('shortid');
19
- var moment = require('moment');
20
- var cookie = require('react-cookies'); // client side cookie handler
21
-
22
- var _require2 = require('cookie'),
23
- serialize = _require2.serialize; // cookie serializer
24
-
25
-
26
- var serverCookies = require('next-cookies'); // server side cookie handler
27
- require("babel-polyfill");
28
-
29
- // admin key for beam
30
- var secret = 'fnADs4GncNACEiNgTqb2GYn7p8SENkcQmbRmywRA';
31
- // server key for beam
32
- // fnADs4Gtx6ACEgKgwlNo-eNSIrdwykH9Zj74GsDI
33
-
34
- var Beam = {
35
- init: function init(ctx) {
36
- // set eKey in cookie for later use
37
- var eKey = ctx.query.eKey;
38
-
39
- if (eKey) {
40
- ctx.res.setHeader('Set-Cookie', serialize('eKey', eKey, { path: '/' }));
41
- }
42
-
43
- var _serverCookies = serverCookies(ctx),
44
- MJH_SSID = _serverCookies.MJH_SSID;
45
-
46
- if (!MJH_SSID) {
47
- ctx.res.setHeader('Set-Cookie', serialize('MJH_SSID', shortid.generate(), { path: '/' }));
48
- }
49
-
50
- var _serverCookies2 = serverCookies(ctx),
51
- BEAMID = _serverCookies2.BEAMID;
52
-
53
- if (!BEAMID) {
54
- var now = new Date();
55
- var time = now.getTime();
56
- var expireTime = time + 1000 * 60 * 60 * 24 * 365 * 20;
57
- now.setTime(expireTime);
58
- ctx.res.setHeader('Set-Cookie', serialize('BEAMID', shortid.generate(), { path: '/', expires: now }));
59
- }
60
- },
61
- get_email_from_ekey: function get_email_from_ekey(eKey) {
62
- var email = '';
63
- if (eKey) {
64
- try {
65
- var buff = new Buffer(eKey, 'base64');
66
- email = buff.toString('ascii');
67
- } catch (e) {
68
- console.log('invalid eKey:', eKey);
69
- }
70
- }
71
-
72
- return email;
73
- },
74
- save_beam_ad: function save_beam_ad(beam_id, session_id, ip, url, host, eKey, event, referer, device, agent, cID, lID, campID, adSize, keywords) {
75
- var _this = this;
76
-
77
- return _babelHelpers.asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
78
- var client, _id, email, result;
79
-
80
- return regeneratorRuntime.wrap(function _callee$(_context) {
81
- while (1) {
82
- switch (_context.prev = _context.next) {
83
- case 0:
84
- _context.prev = 0;
85
- client = new faunadb.Client({ secret: secret });
86
- _id = shortid.generate();
87
- email = _this.get_email_from_ekey(eKey);
88
- _context.next = 6;
89
- return client.query(q.Create(q.Collection('beamlogad'), {
90
- data: {
91
- id: _id,
92
- beam_id: beam_id,
93
- session_id: session_id,
94
- eKey: eKey,
95
- email: email,
96
- keywords: keywords,
97
- ip: ip,
98
- domain: host,
99
- url: url,
100
- fullUrl: '' + host + url,
101
- referer: referer,
102
- device: device,
103
- event: event,
104
- serverAgent: agent,
105
- cID: cID,
106
- lID: lID,
107
- campID: campID,
108
- adSize: adSize,
109
- uptime: moment().utc().format()
110
- }
111
- }));
112
-
113
- case 6:
114
- result = _context.sent;
115
-
116
- if (!(!result.data || !result.data.id)) {
117
- _context.next = 9;
118
- break;
119
- }
120
-
121
- throw new Error('Failed to report pageview!');
122
-
123
- case 9:
124
- return _context.abrupt('return', { error: '', log_id: _id });
125
-
126
- case 12:
127
- _context.prev = 12;
128
- _context.t0 = _context['catch'](0);
129
- return _context.abrupt('return', { error: _context.t0.message, log_id: '' });
130
-
131
- case 15:
132
- case 'end':
133
- return _context.stop();
134
- }
135
- }
136
- }, _callee, _this, [[0, 12]]);
137
- }))();
138
- },
139
- save_beam_event: function save_beam_event(beam_id, session_id, ip, url, host, eKey, event, referer, device, agent, keywords) {
140
- var _this2 = this;
141
-
142
- return _babelHelpers.asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2() {
143
- var client, _id, email, result;
144
-
145
- return regeneratorRuntime.wrap(function _callee2$(_context2) {
146
- while (1) {
147
- switch (_context2.prev = _context2.next) {
148
- case 0:
149
- _context2.prev = 0;
150
- client = new faunadb.Client({ secret: secret });
151
- _id = shortid.generate();
152
- email = _this2.get_email_from_ekey(eKey);
153
- _context2.next = 6;
154
- return client.query(q.Create(q.Collection('beamlog'), {
155
- data: {
156
- id: _id,
157
- beam_id: beam_id,
158
- session_id: session_id,
159
- eKey: eKey,
160
- email: email,
161
- keywords: keywords,
162
- ip: ip,
163
- domain: host,
164
- url: url,
165
- fullUrl: '' + host + url,
166
- referer: referer,
167
- device: device,
168
- event: event,
169
- serverAgent: agent,
170
- uptime: moment().utc().format()
171
- }
172
- }));
173
-
174
- case 6:
175
- result = _context2.sent;
176
-
177
- if (!(!result.data || !result.data.id)) {
178
- _context2.next = 9;
179
- break;
180
- }
181
-
182
- throw new Error('Failed to report pageview!');
183
-
184
- case 9:
185
- return _context2.abrupt('return', { error: '', log_id: _id });
186
-
187
- case 12:
188
- _context2.prev = 12;
189
- _context2.t0 = _context2['catch'](0);
190
- return _context2.abrupt('return', { error: _context2.t0.message, log_id: '' });
191
-
192
- case 15:
193
- case 'end':
194
- return _context2.stop();
195
- }
196
- }
197
- }, _callee2, _this2, [[0, 12]]);
198
- }))();
199
- },
200
-
201
-
202
- /*
203
- ### for /api/beam/event
204
- import { process_beam_ad } from '@mjhls/mjh-framework'
205
- export default async(req, res) => {
206
- await process_beam_ad(req, res)
207
- }
208
- */
209
- process_beam_event: function process_beam_event(req, res) {
210
- var _this3 = this;
211
-
212
- return _babelHelpers.asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3() {
213
- var ip, userAgent, host, url, eKey, referer, device, event, session_id, beam_id, keywords;
214
- return regeneratorRuntime.wrap(function _callee3$(_context3) {
215
- while (1) {
216
- switch (_context3.prev = _context3.next) {
217
- case 0:
218
- ip = req.headers['x-real-ip'];
219
- userAgent = req.headers['user-agent'];
220
- host = req.headers['host'];
221
- url = req.body.url;
222
- eKey = req.body.eKey;
223
- referer = req.body.referer;
224
- device = req.body.device;
225
- event = req.body.event;
226
- session_id = req.body.session_id;
227
- beam_id = req.body.beam_id;
228
- keywords = req.body.keywords;
229
- _context3.t0 = res;
230
- _context3.next = 14;
231
- return _this3.save_beam_event(beam_id, session_id, ip, url, host, eKey, event, referer, device, userAgent, keywords);
232
-
233
- case 14:
234
- _context3.t1 = _context3.sent;
235
- return _context3.abrupt('return', _context3.t0.json.call(_context3.t0, _context3.t1));
236
-
237
- case 16:
238
- case 'end':
239
- return _context3.stop();
240
- }
241
- }
242
- }, _callee3, _this3);
243
- }))();
244
- },
245
-
246
-
247
- /*
248
- ### for /api/beam/ad
249
- import { process_beam_ad } from '@mjhls/mjh-framework'
250
- export default async(req, res) => {
251
- await process_beam_ad(req, res)
252
- }
253
- */
254
- process_beam_ad: function process_beam_ad(req, res) {
255
- var _this4 = this;
256
-
257
- return _babelHelpers.asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee4() {
258
- var ip, userAgent, host, url, eKey, referer, device, cID, lID, campID, adSize, event, session_id, beam_id, keywords, result;
259
- return regeneratorRuntime.wrap(function _callee4$(_context4) {
260
- while (1) {
261
- switch (_context4.prev = _context4.next) {
262
- case 0:
263
- ip = req.headers['x-real-ip'];
264
- userAgent = req.headers['user-agent'];
265
- host = req.headers['host'];
266
- url = req.body.url;
267
- eKey = req.body.eKey;
268
- referer = req.body.referer;
269
- device = req.body.device;
270
- cID = req.body.cID;
271
- lID = req.body.lID;
272
- campID = req.body.campID;
273
- adSize = req.body.adSize;
274
- event = req.body.event;
275
- session_id = req.body.session_id;
276
- beam_id = req.body.beam_id;
277
- keywords = req.body.keywords;
278
- _context4.next = 17;
279
- return _this4.save_beam_ad(beam_id, session_id, ip, url, host, eKey, event, referer, device, userAgent, cID, lID, campID, adSize, keywords);
280
-
281
- case 17:
282
- result = _context4.sent;
283
- return _context4.abrupt('return', res.json(result));
284
-
285
- case 19:
286
- case 'end':
287
- return _context4.stop();
288
- }
289
- }
290
- }, _callee4, _this4);
291
- }))();
292
- },
293
-
294
-
295
- /* for client use */
296
- report_beam_event: function report_beam_event(event, deviceType) {
297
- var _this5 = this;
298
-
299
- return _babelHelpers.asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee5() {
300
- var referer, eKey, url, session_id, beam_id, element, keywords, response, data;
301
- return regeneratorRuntime.wrap(function _callee5$(_context5) {
302
- while (1) {
303
- switch (_context5.prev = _context5.next) {
304
- case 0:
305
- referer = document.referrer;
306
- eKey = cookie.load('eKey');
307
- url = window.location.pathname + window.location.search;
308
- session_id = cookie.load('MJH_SSID');
309
- beam_id = cookie.load('BEAMID');
310
- element = document.querySelector('meta[name="keywords"]');
311
- keywords = element.getAttribute("content");
312
- _context5.next = 9;
313
- return fetch('/api/beam/event', {
314
- headers: {
315
- 'Content-Type': 'application/json',
316
- 'Accept': 'application/json'
317
- },
318
- method: 'post',
319
- credentials: 'same-origin',
320
- body: JSON.stringify({
321
- url: url,
322
- referer: referer,
323
- device: deviceType,
324
- eKey: eKey,
325
- event: event,
326
- session_id: session_id,
327
- beam_id: beam_id,
328
- keywords: keywords
329
- })
330
- });
331
-
332
- case 9:
333
- response = _context5.sent;
334
- _context5.next = 12;
335
- return response.json();
336
-
337
- case 12:
338
- data = _context5.sent;
339
-
340
- if (data.error) {
341
- console.error('Beam reporting error:', data.error);
342
- }
343
-
344
- case 14:
345
- case 'end':
346
- return _context5.stop();
347
- }
348
- }
349
- }, _callee5, _this5);
350
- }))();
351
- },
352
- report_beam_ad: function report_beam_ad(event, deviceType, cID, lID, campID, adSize) {
353
- var _this6 = this;
354
-
355
- return _babelHelpers.asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee6() {
356
- var referer, eKey, url, session_id, beam_id, element, keywords, response, data;
357
- return regeneratorRuntime.wrap(function _callee6$(_context6) {
358
- while (1) {
359
- switch (_context6.prev = _context6.next) {
360
- case 0:
361
- referer = document.referrer;
362
- eKey = cookie.load('eKey');
363
- url = window.location.pathname + window.location.search;
364
- session_id = cookie.load('MJH_SSID');
365
- beam_id = cookie.load('BEAMID');
366
- element = document.querySelector('meta[name="keywords"]');
367
- keywords = element.getAttribute("content");
368
- _context6.next = 9;
369
- return fetch('/api/beam/ad', {
370
- headers: {
371
- 'Content-Type': 'application/json',
372
- 'Accept': 'application/json'
373
- },
374
- method: 'post',
375
- credentials: 'same-origin',
376
- body: JSON.stringify({
377
- url: url,
378
- referer: referer,
379
- device: deviceType,
380
- eKey: eKey,
381
- event: event,
382
- session_id: session_id,
383
- beam_id: beam_id,
384
- keywords: keywords,
385
- cID: cID,
386
- lID: lID,
387
- campID: campID,
388
- adSize: adSize
389
- })
390
- });
391
-
392
- case 9:
393
- response = _context6.sent;
394
- _context6.next = 12;
395
- return response.json();
396
-
397
- case 12:
398
- data = _context6.sent;
399
-
400
- if (data.error) {
401
- console.error('Beam AD reporting error:', data.error);
402
- }
403
-
404
- case 14:
405
- case 'end':
406
- return _context6.stop();
407
- }
408
- }
409
- }, _callee6, _this6);
410
- }))();
411
- }
412
- };
413
-
414
- var DFPAdSlot = function DFPAdSlot(_ref) {
415
- var adUnit = _ref.adUnit,
416
- sizeMapping = _ref.sizeMapping,
417
- className = _ref.className,
418
- slotId = _ref.slotId,
419
- sizes = _ref.sizes,
420
- _ref$targeting = _ref.targeting,
421
- targeting = _ref$targeting === undefined ? {} : _ref$targeting;
422
-
423
- var _useState = React.useState(false),
424
- _useState2 = _babelHelpers.slicedToArray(_useState, 2),
425
- adRendered = _useState2[0],
426
- setAdRendered = _useState2[1];
427
-
428
- var _useState3 = React.useState(false),
429
- _useState4 = _babelHelpers.slicedToArray(_useState3, 2),
430
- adRefreshable = _useState4[0],
431
- setAdRefreshable = _useState4[1];
432
-
433
- var _useState5 = React.useState(false),
434
- _useState6 = _babelHelpers.slicedToArray(_useState5, 2),
435
- adHasFocus = _useState6[0],
436
- setAdHasFocus = _useState6[1];
437
-
438
- var handleVisibilityChange = debounce.debounce_1(function (_ref2) {
439
- var event = _ref2.event;
440
-
441
- if (event.inViewPercentage <= 0) {
442
- setAdRefreshable(false);
443
- } else {
444
- setAdRefreshable(true);
445
- }
446
- }, 500);
447
-
448
- return React__default.createElement(
449
- 'div',
450
- { className: className },
451
- React__default.createElement(index.lib_2, {
452
- slotId: slotId,
453
- sizes: sizes,
454
- adUnit: adUnit,
455
- sizeMapping: sizeMapping,
456
- targetingArguments: targeting,
457
- onSlotRender: function onSlotRender(eventData) {
458
- setAdRendered(true);
459
- if (eventData && eventData.event) {
460
- var cID = eventData.event.creativeId;
461
- var lID = eventData.event.lineItemId;
462
- var campID = eventData.event.campaignId;
463
- var adSize = eventData.event.size.length > 1 ? eventData.event.size[0] + 'x' + eventData.event.size[1] : '';
464
- Beam.report_beam_ad('AD Rendered', main.main_16, cID, lID, campID, adSize);
465
-
466
- var slot_div = document.getElementById(eventData.slotId);
467
- if (slot_div) {
468
- slot_div.addEventListener('mouseenter', function () {
469
- var timeoutId = slot_div.getAttribute('timeoutId');
470
- clearTimeout(timeoutId);
471
- slot_div.setAttribute('hasFocus', 'yes');
472
- });
473
-
474
- slot_div.addEventListener('mouseleave', function () {
475
- var timeoutId = setTimeout(function () {
476
- slot_div.setAttribute('hasFocus', 'no');
477
- }, 60);
478
- slot_div.setAttribute('timeoutId', timeoutId);
479
- });
480
-
481
- document.addEventListener('visibilitychange', function () {
482
- if (!document.hidden) {
483
- return;
484
- }
485
-
486
- var hasFocus = slot_div.getAttribute('hasFocus');
487
- if (hasFocus == 'yes' && document.hidden) {
488
- console.log('AD Clicked:', eventData.slotId);
489
- slot_div.setAttribute('hasFocus', 'no');
490
- Beam.report_beam_ad('AD Clicked', main.main_16, cID, lID, campID, adSize);
491
- }
492
- });
493
- } else {
494
- console.error('slot div not found:', slotId);
495
- }
496
- }
497
- },
498
- onSlotVisibilityChanged: handleVisibilityChange,
499
- shouldRefresh: function shouldRefresh() {
500
- if (adRendered && adRefreshable) return true;else return false;
501
- }
502
- })
503
- );
504
- };
505
-
506
- DFPAdSlot.propTypes = {
507
- adUnit: PropTypes.string.isRequired,
508
- slotId: PropTypes.string,
509
- className: PropTypes.string,
510
- sizeMapping: PropTypes.array,
511
- sizes: PropTypes.array
512
- };
513
-
514
- exports.Beam = Beam;
515
- exports.DFPAdSlot = DFPAdSlot;