@mjhls/mjh-framework 1.0.686 → 1.0.688

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 (74) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/AD300x250.js +2 -1
  3. package/dist/cjs/AD300x250x600.js +2 -1
  4. package/dist/cjs/AD728x90.js +2 -1
  5. package/dist/cjs/ADFloatingFooter.js +2 -1
  6. package/dist/cjs/ADGutter.js +2 -1
  7. package/dist/cjs/ADSkyscraper.js +2 -1
  8. package/dist/cjs/ADSponsoredResources.js +2 -1
  9. package/dist/cjs/ADWebcast.js +2 -1
  10. package/dist/cjs/ADWelcome.js +2 -1
  11. package/dist/cjs/AdSlot.js +6 -5
  12. package/dist/cjs/Beam.js +340 -4
  13. package/dist/cjs/Column2.js +1 -2
  14. package/dist/cjs/Column3.js +2 -1
  15. package/dist/cjs/DeckContent.js +3 -2
  16. package/dist/cjs/ExternalResources.js +3 -2
  17. package/dist/cjs/GridContent.js +4 -3
  18. package/dist/cjs/HamMagazine.js +31 -8
  19. package/dist/cjs/IssueLanding.js +4 -3
  20. package/dist/cjs/LeftNav.js +3 -4
  21. package/dist/cjs/MasterDeck.js +4 -3
  22. package/dist/cjs/NavDvm.js +21 -9
  23. package/dist/cjs/NavMagazine.js +15 -8
  24. package/dist/cjs/NavNative.js +15 -8
  25. package/dist/cjs/NavNormal.js +2 -4
  26. package/dist/cjs/PartnerDetailListing.js +5 -4
  27. package/dist/cjs/QueueDeckExpanded.js +4 -3
  28. package/dist/cjs/Segment.js +346 -4
  29. package/dist/cjs/SideFooter.js +2 -4
  30. package/dist/cjs/TemplateNormal.js +2 -1
  31. package/dist/cjs/View.js +3 -2
  32. package/dist/cjs/getSerializers.js +3 -2
  33. package/dist/cjs/{index-8c9e8ca7.js → index-a1090dcd.js} +47 -47
  34. package/dist/cjs/index.js +7 -6
  35. package/dist/esm/AD300x250.js +2 -1
  36. package/dist/esm/AD300x250x600.js +2 -1
  37. package/dist/esm/AD728x90.js +2 -1
  38. package/dist/esm/ADFloatingFooter.js +2 -1
  39. package/dist/esm/ADGutter.js +2 -1
  40. package/dist/esm/ADSkyscraper.js +2 -1
  41. package/dist/esm/ADSponsoredResources.js +2 -1
  42. package/dist/esm/ADWebcast.js +2 -1
  43. package/dist/esm/ADWelcome.js +2 -1
  44. package/dist/esm/AdSlot.js +2 -1
  45. package/dist/esm/Beam.js +343 -3
  46. package/dist/esm/Column2.js +1 -2
  47. package/dist/esm/Column3.js +2 -1
  48. package/dist/esm/DeckContent.js +3 -2
  49. package/dist/esm/ExternalResources.js +3 -2
  50. package/dist/esm/GridContent.js +4 -3
  51. package/dist/esm/HamMagazine.js +31 -8
  52. package/dist/esm/IssueLanding.js +4 -3
  53. package/dist/esm/LeftNav.js +2 -3
  54. package/dist/esm/MasterDeck.js +4 -3
  55. package/dist/esm/NavDvm.js +22 -10
  56. package/dist/esm/NavMagazine.js +15 -8
  57. package/dist/esm/NavNative.js +15 -8
  58. package/dist/esm/NavNormal.js +1 -3
  59. package/dist/esm/PartnerDetailListing.js +5 -4
  60. package/dist/esm/QueueDeckExpanded.js +4 -3
  61. package/dist/esm/Segment.js +349 -3
  62. package/dist/esm/SideFooter.js +1 -3
  63. package/dist/esm/TemplateNormal.js +2 -1
  64. package/dist/esm/View.js +3 -2
  65. package/dist/esm/getSerializers.js +3 -2
  66. package/dist/esm/{index-5505d4f9.js → index-a3da0503.js} +2 -2
  67. package/dist/esm/index.js +5 -4
  68. package/package.json +1 -1
  69. package/dist/cjs/beam-7217b7e7.js +0 -733
  70. package/dist/esm/beam-681a9749.js +0 -730
  71. /package/dist/cjs/{ADInfeed-c676389b.js → ADInfeed-cf81b7aa.js} +0 -0
  72. /package/dist/cjs/{ADlgInfeed-57d63c87.js → ADlgInfeed-ebc1bf56.js} +0 -0
  73. /package/dist/esm/{ADInfeed-97b8cea7.js → ADInfeed-898b9c8f.js} +0 -0
  74. /package/dist/esm/{ADlgInfeed-3ab91c75.js → ADlgInfeed-a747451b.js} +0 -0
package/dist/esm/Beam.js CHANGED
@@ -5,7 +5,347 @@ import './_library-528f1934.js';
5
5
  import './_iter-detect-59409a32.js';
6
6
  import './core.get-iterator-method-54d2e411.js';
7
7
  import './web.dom.iterable-8956f9a5.js';
8
- import './stringify-008c8802.js';
9
- import './asyncToGenerator-7c654f36.js';
8
+ import { _ as _JSON$stringify } from './stringify-008c8802.js';
9
+ import { a as _asyncToGenerator, r as regenerator } from './asyncToGenerator-7c654f36.js';
10
10
  import './_set-species-cede29f8.js';
11
- export { B as default } from './beam-681a9749.js';
11
+ import Segment from './Segment.js';
12
+
13
+ require("babel-polyfill");
14
+ // server key for beam
15
+ // fnADs4Gtx6ACEgKgwlNo-eNSIrdwykH9Zj74GsDI
16
+
17
+ var beam_domain = 'https://beam.mjhlifesciences.com';
18
+
19
+ function getCookie(cname) {
20
+ var name = cname + "=";
21
+ var decodedCookie = decodeURIComponent(document.cookie);
22
+ var ca = decodedCookie.split(';');
23
+ for (var i = 0; i < ca.length; i++) {
24
+ var c = ca[i];
25
+ while (c.charAt(0) == ' ') {
26
+ c = c.substring(1);
27
+ }
28
+ if (c.indexOf(name) == 0) {
29
+ return c.substring(name.length, c.length);
30
+ }
31
+ }
32
+ return "";
33
+ }
34
+
35
+ var Beam = {
36
+ proc_url: function proc_url() {
37
+ var $_GET = {};
38
+ document.location.search.replace(/\??(?:([^=]+)=([^&]*)&?)/g, function () {
39
+ function decode(s) {
40
+ return decodeURIComponent(s.split("+").join(" "));
41
+ }
42
+ $_GET[decode(arguments[1])] = decode(arguments[2]);
43
+ });
44
+
45
+ return $_GET;
46
+ },
47
+ proc_eKey: function proc_eKey($_GET) {
48
+ var _this = this;
49
+
50
+ return _asyncToGenerator( /*#__PURE__*/regenerator.mark(function _callee() {
51
+ var eKey;
52
+ return regenerator.wrap(function _callee$(_context) {
53
+ while (1) {
54
+ switch (_context.prev = _context.next) {
55
+ case 0:
56
+ eKey = "N/A";
57
+
58
+
59
+ if ($_GET["eKey"]) {
60
+ eKey = $_GET["eKey"];
61
+ } else if (typeof window.eKey !== 'undefined') {
62
+ eKey = window.eKey;
63
+ }
64
+
65
+ if (!eKey || eKey === 'N/A') {
66
+ eKey = getCookie('eKey');
67
+ }
68
+
69
+ return _context.abrupt('return', eKey);
70
+
71
+ case 4:
72
+ case 'end':
73
+ return _context.stop();
74
+ }
75
+ }
76
+ }, _callee, _this);
77
+ }))();
78
+ },
79
+ proc_source: function proc_source() {
80
+ var referrer = "N/A";
81
+
82
+ if (encodeURIComponent(document.referrer)) {
83
+ referrer = encodeURIComponent(document.referrer);
84
+ }
85
+
86
+ return referrer;
87
+ },
88
+ proc_meta: function proc_meta() {
89
+ var data = {};
90
+
91
+ //keyword processing
92
+ var element = document.querySelector('meta[name="keywords"]');
93
+
94
+ data.keywords = "N/A";
95
+
96
+ if (element && element.getAttribute("content")) {
97
+ data.keywords = element.getAttribute("content");
98
+ }
99
+
100
+ //title processing
101
+ data.title = "N/A";
102
+ if (document.title !== "undefined") {
103
+ data.title = document.title;
104
+ }
105
+
106
+ return data;
107
+ },
108
+ proc_host: function proc_host() {
109
+ var data = {};
110
+ data.domain = window.location.hostname;
111
+ data.uri = window.location.pathname;
112
+ data.host = window.location.host;
113
+ data.protocol = window.location.protocol;
114
+
115
+ if (window.location.search) {
116
+ data.uri = data.uri + window.location.search;
117
+ }
118
+
119
+ return data;
120
+ },
121
+ get_beam: function get_beam(deviceType) {
122
+ var _this2 = this;
123
+
124
+ return _asyncToGenerator( /*#__PURE__*/regenerator.mark(function _callee2() {
125
+ var beam;
126
+ return regenerator.wrap(function _callee2$(_context2) {
127
+ while (1) {
128
+ switch (_context2.prev = _context2.next) {
129
+ case 0:
130
+ beam = {};
131
+ _context2.next = 3;
132
+ return _this2.proc_eKey(_this2.proc_url());
133
+
134
+ case 3:
135
+ beam.eKey = _context2.sent;
136
+
137
+ beam.source = _this2.proc_source();
138
+ beam.meta = _this2.proc_meta();
139
+ beam.host = _this2.proc_host();
140
+ beam.device = deviceType;
141
+ return _context2.abrupt('return', beam);
142
+
143
+ case 9:
144
+ case 'end':
145
+ return _context2.stop();
146
+ }
147
+ }
148
+ }, _callee2, _this2);
149
+ }))();
150
+ },
151
+
152
+
153
+ /* for client use */
154
+ report_beam_event: function report_beam_event(action, deviceType) {
155
+ var _this3 = this;
156
+
157
+ return _asyncToGenerator( /*#__PURE__*/regenerator.mark(function _callee3() {
158
+ var beam, response, res;
159
+ return regenerator.wrap(function _callee3$(_context3) {
160
+ while (1) {
161
+ switch (_context3.prev = _context3.next) {
162
+ case 0:
163
+ _context3.next = 2;
164
+ return _this3.get_beam(deviceType);
165
+
166
+ case 2:
167
+ beam = _context3.sent;
168
+
169
+
170
+ console.log('Call Beam', action, beam);
171
+
172
+ _context3.next = 6;
173
+ return fetch(beam_domain + '/api/beam/event', {
174
+ headers: {
175
+ 'Content-Type': 'application/json',
176
+ 'Accept': 'application/json'
177
+ },
178
+ method: 'post',
179
+ credentials: "include",
180
+ body: _JSON$stringify({
181
+ event: 'Beam',
182
+ action: action,
183
+ beam: _JSON$stringify(beam)
184
+ })
185
+ });
186
+
187
+ case 6:
188
+ response = _context3.sent;
189
+ _context3.next = 9;
190
+ return response.json();
191
+
192
+ case 9:
193
+ res = _context3.sent;
194
+
195
+ if (res.error) {
196
+ console.error('Beam reporting error:', res.error);
197
+ }
198
+
199
+ // report segment when eKey is present
200
+ if (beam.eKey) {
201
+ Segment.identify(beam.eKey);
202
+ }
203
+
204
+ case 12:
205
+ case 'end':
206
+ return _context3.stop();
207
+ }
208
+ }
209
+ }, _callee3, _this3);
210
+ }))();
211
+ },
212
+ report_beam_ad: function report_beam_ad(action, deviceType, cID, lID, campID, adSize, slotId) {
213
+ var adType = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : 'DFP';
214
+
215
+ var _this4 = this;
216
+
217
+ var adDurationBrightCove = arguments.length > 8 && arguments[8] !== undefined ? arguments[8] : '';
218
+ var adIDBrightCove = arguments.length > 9 && arguments[9] !== undefined ? arguments[9] : '';
219
+ return _asyncToGenerator( /*#__PURE__*/regenerator.mark(function _callee4() {
220
+ var beam, data, response, res;
221
+ return regenerator.wrap(function _callee4$(_context4) {
222
+ while (1) {
223
+ switch (_context4.prev = _context4.next) {
224
+ case 0:
225
+ _context4.next = 2;
226
+ return _this4.get_beam(deviceType);
227
+
228
+ case 2:
229
+ beam = _context4.sent;
230
+ data = {};
231
+
232
+ data.campaignId = campID;
233
+ data.lineItemId = lID;
234
+ data.creativeId = cID;
235
+ data.size = adSize;
236
+ data.slotId = slotId;
237
+
238
+ data.adType = adType;
239
+ data.adDurationBrightCove = adDurationBrightCove;
240
+ data.adIDBrightCove = adIDBrightCove;
241
+
242
+ console.log('Call ' + adType, action, data);
243
+
244
+ _context4.next = 15;
245
+ return fetch(beam_domain + '/api/beam/ad', {
246
+ headers: {
247
+ 'Content-Type': 'application/json',
248
+ 'Accept': 'application/json'
249
+ },
250
+ method: 'post',
251
+ credentials: "include",
252
+ body: _JSON$stringify({
253
+ event: 'DFP',
254
+ action: action,
255
+ beam: _JSON$stringify(beam),
256
+ data: _JSON$stringify(data)
257
+ })
258
+ });
259
+
260
+ case 15:
261
+ response = _context4.sent;
262
+ _context4.next = 18;
263
+ return response.json();
264
+
265
+ case 18:
266
+ res = _context4.sent;
267
+
268
+ if (res.error) {
269
+ console.error('DFP reporting error:', res.error);
270
+ }
271
+
272
+ case 20:
273
+ case 'end':
274
+ return _context4.stop();
275
+ }
276
+ }
277
+ }, _callee4, _this4);
278
+ }))();
279
+ },
280
+ report_beam_video: function report_beam_video(action, deviceType, duration, current, segment) {
281
+ var videoType = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 'Youtube';
282
+ var brightCovePlayerID = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : '';
283
+
284
+ var _this5 = this;
285
+
286
+ var brightCoveAccountID = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : '';
287
+ var brightCoveVideoID = arguments.length > 8 && arguments[8] !== undefined ? arguments[8] : '';
288
+ return _asyncToGenerator( /*#__PURE__*/regenerator.mark(function _callee5() {
289
+ var beam, data, response, res;
290
+ return regenerator.wrap(function _callee5$(_context5) {
291
+ while (1) {
292
+ switch (_context5.prev = _context5.next) {
293
+ case 0:
294
+ _context5.next = 2;
295
+ return _this5.get_beam(deviceType);
296
+
297
+ case 2:
298
+ beam = _context5.sent;
299
+ data = {};
300
+
301
+ data.duration = duration;
302
+ data.queue = Math.floor(duration / 10);
303
+ data.segment = segment;
304
+ data.current = current;
305
+
306
+ data.videoType = videoType;
307
+ data.brightCovePlayerID = brightCovePlayerID;
308
+ data.brightCoveAccountID = brightCoveAccountID;
309
+ data.brightCoveVideoID = brightCoveVideoID;
310
+
311
+ console.log('Call ' + videoType, action, data);
312
+
313
+ _context5.next = 15;
314
+ return fetch(beam_domain + '/api/beam/video', {
315
+ headers: {
316
+ 'Content-Type': 'application/json',
317
+ 'Accept': 'application/json'
318
+ },
319
+ method: 'post',
320
+ credentials: "include",
321
+ body: _JSON$stringify({
322
+ event: 'Video',
323
+ action: action,
324
+ beam: _JSON$stringify(beam),
325
+ data: _JSON$stringify(data)
326
+ })
327
+ });
328
+
329
+ case 15:
330
+ response = _context5.sent;
331
+ _context5.next = 18;
332
+ return response.json();
333
+
334
+ case 18:
335
+ res = _context5.sent;
336
+
337
+ if (res.error) {
338
+ console.error('Video reporting error:', res.error);
339
+ }
340
+
341
+ case 20:
342
+ case 'end':
343
+ return _context5.stop();
344
+ }
345
+ }
346
+ }, _callee5, _this5);
347
+ }))();
348
+ }
349
+ };
350
+
351
+ export default Beam;
@@ -11,10 +11,9 @@ import 'prop-types';
11
11
  import Row from 'react-bootstrap/Row';
12
12
  import Col from 'react-bootstrap/Col';
13
13
  import './isSymbol-807e927e.js';
14
- import './stringify-008c8802.js';
15
14
  import './asyncToGenerator-7c654f36.js';
16
15
  import './_set-species-cede29f8.js';
17
- import './beam-681a9749.js';
16
+ import './Segment.js';
18
17
  import './get-5ee14cda.js';
19
18
  import './react-social-icons-a7d5c5c7.js';
20
19
  import './defineProperty-b798470d.js';
@@ -18,7 +18,8 @@ import './stringify-008c8802.js';
18
18
  import './slicedToArray-7021e5df.js';
19
19
  import './asyncToGenerator-7c654f36.js';
20
20
  import './_set-species-cede29f8.js';
21
- import './beam-681a9749.js';
21
+ import './Segment.js';
22
+ import './Beam.js';
22
23
  import './AdSlot.js';
23
24
  import './get-5ee14cda.js';
24
25
  import './react-social-icons-a7d5c5c7.js';
@@ -35,9 +35,10 @@ import './stringify-008c8802.js';
35
35
  import './slicedToArray-7021e5df.js';
36
36
  import './asyncToGenerator-7c654f36.js';
37
37
  import './_set-species-cede29f8.js';
38
- import './beam-681a9749.js';
38
+ import './Segment.js';
39
+ import './Beam.js';
39
40
  import './AdSlot.js';
40
- import { A as ADInfeed } from './ADInfeed-97b8cea7.js';
41
+ import { A as ADInfeed } from './ADInfeed-898b9c8f.js';
41
42
 
42
43
  var DeckContent = function (_React$Component) {
43
44
  _inherits(DeckContent, _React$Component);
@@ -31,7 +31,8 @@ import './stringify-008c8802.js';
31
31
  import { _ as _slicedToArray } from './slicedToArray-7021e5df.js';
32
32
  import './asyncToGenerator-7c654f36.js';
33
33
  import './_set-species-cede29f8.js';
34
- import './beam-681a9749.js';
34
+ import './Segment.js';
35
+ import './Beam.js';
35
36
  import './AdSlot.js';
36
37
  import { B as BlockContent } from './BlockContent-a614acdf.js';
37
38
  import './smoothscroll-4b699764.js';
@@ -39,7 +40,7 @@ import './GroupDeck.js';
39
40
  import 'react-bootstrap';
40
41
  import Button from 'react-bootstrap/Button';
41
42
  import { m as momentTimezone } from './index-d2f90501.js';
42
- import { g as getSerializers } from './index-5505d4f9.js';
43
+ import { g as getSerializers } from './index-a3da0503.js';
43
44
  import './util-7700fc59.js';
44
45
  import './brightcove-react-player-loader.es-83f53e4e.js';
45
46
  import 'react-bootstrap/Pagination';
@@ -35,11 +35,12 @@ import './stringify-008c8802.js';
35
35
  import './slicedToArray-7021e5df.js';
36
36
  import './asyncToGenerator-7c654f36.js';
37
37
  import './_set-species-cede29f8.js';
38
- import './beam-681a9749.js';
38
+ import './Segment.js';
39
+ import './Beam.js';
39
40
  import './AdSlot.js';
40
- import { A as ADInfeed } from './ADInfeed-97b8cea7.js';
41
+ import { A as ADInfeed } from './ADInfeed-898b9c8f.js';
41
42
  import { l as lodash } from './lodash-17fdfebb.js';
42
- import { A as ADlgInfeed } from './ADlgInfeed-3ab91c75.js';
43
+ import { A as ADlgInfeed } from './ADlgInfeed-a747451b.js';
43
44
  import { g as getContentCategory } from './getContentCategory-15dcc413.js';
44
45
  import { g as get_1 } from './get-5ee14cda.js';
45
46
  import './AD.js';
@@ -9,11 +9,10 @@ import React__default, { useRef, useState, useEffect } from 'react';
9
9
  import 'prop-types';
10
10
  import Container from 'react-bootstrap/Container';
11
11
  import { m as main_39, a as main_40 } from './main-0465b2a0.js';
12
- import './stringify-008c8802.js';
13
12
  import { _ as _slicedToArray } from './slicedToArray-7021e5df.js';
14
13
  import './asyncToGenerator-7c654f36.js';
15
14
  import './_set-species-cede29f8.js';
16
- import { S as Segment } from './beam-681a9749.js';
15
+ import Segment from './Segment.js';
17
16
  import './react-social-icons-a7d5c5c7.js';
18
17
  import './iconBase-602d52fe.js';
19
18
  import { b as IoMdLogIn } from './index.esm-85cb09e6.js';
@@ -107,6 +106,14 @@ var HamMagazine = function HamMagazine(props) {
107
106
 
108
107
  // Initial screenwidth setup on refresh or on load
109
108
  setScreenWidth(parseInt(window.innerWidth));
109
+
110
+ var segmentLinks = navRef.current.querySelectorAll('a[needsegmentsupport="true"]');
111
+ for (var i = 0; i < segmentLinks.length; i++) {
112
+ var link = segmentLinks[i];
113
+ var href = link.getAttribute('href');
114
+ var newRef = Segment.getURL(href, { needSegmentSupport: true });
115
+ link.setAttribute('href', newRef);
116
+ }
110
117
  }, []);
111
118
 
112
119
  // Check for browser resize
@@ -396,7 +403,8 @@ var HamMagazine = function HamMagazine(props) {
396
403
  'a',
397
404
  {
398
405
  key: subIndex,
399
- href: Segment.getURL(ddRow.url, ddRow),
406
+ needsegmentsupport: ddRow.needSegmentSupport ? 'true' : '',
407
+ href: ddRow.url,
400
408
  target: ddRow.blank ? '_blank' : '_self',
401
409
  rel: 'noopener noreferrer',
402
410
  className: 'dropdown-item' },
@@ -418,7 +426,8 @@ var HamMagazine = function HamMagazine(props) {
418
426
  'a',
419
427
  {
420
428
  key: subIndex,
421
- href: Segment.getURL(ddRow.url, ddRow),
429
+ needsegmentsupport: ddRow.needSegmentSupport ? 'true' : '',
430
+ href: ddRow.url,
422
431
  target: ddRow.blank ? '_blank' : '_self',
423
432
  rel: 'noopener noreferrer',
424
433
  className: 'dropdown-item' },
@@ -432,7 +441,13 @@ var HamMagazine = function HamMagazine(props) {
432
441
  } else {
433
442
  return row.url && row.name ? React__default.createElement(
434
443
  'a',
435
- { key: index, href: Segment.getURL(row.url, row), target: row.blank ? '_blank' : '_self', rel: 'noopener noreferrer', className: 'nav-link' },
444
+ { key: index,
445
+ needsegmentsupport: row.needSegmentSupport ? 'true' : '',
446
+ href: row.url,
447
+ target: row.blank ? '_blank' : '_self',
448
+ rel: 'noopener noreferrer',
449
+ className: 'nav-link'
450
+ },
436
451
  row.name
437
452
  ) : null;
438
453
  }
@@ -470,7 +485,8 @@ var HamMagazine = function HamMagazine(props) {
470
485
  'a',
471
486
  {
472
487
  key: subIndex,
473
- href: Segment.getURL(ddRow.url, ddRow),
488
+ needsegmentsupport: ddRow.needSegmentSupport ? 'true' : '',
489
+ href: ddRow.url,
474
490
  target: ddRow.blank ? '_blank' : '_self',
475
491
  rel: 'noopener noreferrer',
476
492
  className: 'dropdown-item nav-link' },
@@ -491,7 +507,8 @@ var HamMagazine = function HamMagazine(props) {
491
507
  'a',
492
508
  {
493
509
  key: subIndex,
494
- href: Segment.getURL(ddRow.url, ddRow),
510
+ needsegmentsupport: ddRow.needSegmentSupport ? 'true' : '',
511
+ href: ddRow.url,
495
512
  target: ddRow.blank ? '_blank' : '_self',
496
513
  rel: 'noopener noreferrer',
497
514
  className: 'dropdown-item' },
@@ -505,7 +522,13 @@ var HamMagazine = function HamMagazine(props) {
505
522
  } else {
506
523
  return row.url && row.name ? React__default.createElement(
507
524
  'a',
508
- { key: index, href: Segment.getURL(row.url, row), target: row.blank ? '_blank' : '_self', rel: 'noopener noreferrer', className: 'nav-link' },
525
+ { key: index,
526
+ needsegmentsupport: row.needSegmentSupport ? 'true' : '',
527
+ href: row.url,
528
+ target: row.blank ? '_blank' : '_self',
529
+ rel: 'noopener noreferrer',
530
+ className: 'nav-link'
531
+ },
509
532
  row.name
510
533
  ) : null;
511
534
  }
@@ -27,11 +27,12 @@ import './stringify-008c8802.js';
27
27
  import './slicedToArray-7021e5df.js';
28
28
  import './asyncToGenerator-7c654f36.js';
29
29
  import './_set-species-cede29f8.js';
30
- import './beam-681a9749.js';
30
+ import './Segment.js';
31
+ import './Beam.js';
31
32
  import './AdSlot.js';
32
- import './ADInfeed-97b8cea7.js';
33
+ import './ADInfeed-898b9c8f.js';
33
34
  import './lodash-17fdfebb.js';
34
- import './ADlgInfeed-3ab91c75.js';
35
+ import './ADlgInfeed-a747451b.js';
35
36
  import './getContentCategory-15dcc413.js';
36
37
  import './AuthorComponent-00f13201.js';
37
38
  import 'react-bootstrap';
@@ -15,7 +15,8 @@ import './stringify-008c8802.js';
15
15
  import './slicedToArray-7021e5df.js';
16
16
  import './asyncToGenerator-7c654f36.js';
17
17
  import './_set-species-cede29f8.js';
18
- import { S as Segment } from './beam-681a9749.js';
18
+ import Segment from './Segment.js';
19
+ import './Beam.js';
19
20
  import './AdSlot.js';
20
21
  import ListGroup from 'react-bootstrap/ListGroup';
21
22
  import ADWebcast from './ADWebcast.js';
@@ -49,8 +50,6 @@ var LeftNav = function LeftNav(props) {
49
50
 
50
51
  var leftNavRef = useRef(null);
51
52
  useEffect(function () {
52
- Segment.init(); // auto init if not done yet
53
-
54
53
  var segmentLinks = leftNavRef.current.querySelectorAll('a[needsegmentsupport="true"]');
55
54
  for (var i = 0; i < segmentLinks.length; i++) {
56
55
  var link = segmentLinks[i];
@@ -33,11 +33,12 @@ import './stringify-008c8802.js';
33
33
  import './slicedToArray-7021e5df.js';
34
34
  import { _ as _Promise } from './asyncToGenerator-7c654f36.js';
35
35
  import './_set-species-cede29f8.js';
36
- import './beam-681a9749.js';
36
+ import './Segment.js';
37
+ import './Beam.js';
37
38
  import './AdSlot.js';
38
- import { A as ADInfeed } from './ADInfeed-97b8cea7.js';
39
+ import { A as ADInfeed } from './ADInfeed-898b9c8f.js';
39
40
  import { l as lodash } from './lodash-17fdfebb.js';
40
- import { A as ADlgInfeed } from './ADlgInfeed-3ab91c75.js';
41
+ import { A as ADlgInfeed } from './ADlgInfeed-a747451b.js';
41
42
 
42
43
  var MasterDeck = function (_React$Component) {
43
44
  _inherits(MasterDeck, _React$Component);
@@ -5,13 +5,12 @@ import './_library-528f1934.js';
5
5
  import './_iter-detect-59409a32.js';
6
6
  import './core.get-iterator-method-54d2e411.js';
7
7
  import './web.dom.iterable-8956f9a5.js';
8
- import React__default from 'react';
8
+ import React__default, { useRef, useEffect } from 'react';
9
9
  import Container from 'react-bootstrap/Container';
10
- import './stringify-008c8802.js';
11
10
  import './slicedToArray-7021e5df.js';
12
11
  import './asyncToGenerator-7c654f36.js';
13
12
  import './_set-species-cede29f8.js';
14
- import { S as Segment } from './beam-681a9749.js';
13
+ import Segment from './Segment.js';
15
14
  import 'react-bootstrap/Button';
16
15
  import 'react-bootstrap/Form';
17
16
  import Nav from 'react-bootstrap/Nav';
@@ -30,28 +29,41 @@ var NavDvm = function NavDvm(props) {
30
29
  website = _props$website === undefined ? {} : _props$website;
31
30
 
32
31
 
32
+ var sfRef = useRef(null);
33
+
34
+ useEffect(function () {
35
+ // this adds ?eKey=xxx or ?anonymousid=xxx for forms that's outside - eg) formstack forms
36
+ // for tracking same user
37
+ var segmentLinks = sfRef.current.querySelectorAll('a[needsegmentsupport="true"]');
38
+ for (var i = 0; i < segmentLinks.length; i++) {
39
+ var link = segmentLinks[i];
40
+ var href = link.getAttribute('href');
41
+ var newRef = Segment.getURL(href, { needSegmentSupport: true });
42
+ link.setAttribute('href', newRef);
43
+ }
44
+ }, []);
45
+
33
46
  var getLink = function getLink(url, className, name, key, blank) {
34
47
  var needSegmentSupport = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false;
35
48
 
36
- url = Segment.getURL(url, { needSegmentSupport: needSegmentSupport });
37
49
  if (url && (url.includes('https://') || url.includes('http://'))) {
38
50
  return React__default.createElement(
39
51
  'a',
40
- { target: blank ? '_blank' : '_self', key: key, href: url || '#', className: className },
52
+ { target: blank ? '_blank' : '_self', needsegmentsupport: needSegmentSupport ? 'true' : '', key: key, href: url || '#', className: className },
41
53
  name
42
54
  );
43
55
  }
44
56
 
45
57
  return React__default.createElement(
46
58
  'a',
47
- { key: key, href: url || '#', target: blank ? '_blank' : '_self', className: className },
59
+ { key: key, href: url || '#', needsegmentsupport: needSegmentSupport ? 'true' : '', target: blank ? '_blank' : '_self', className: className },
48
60
  name
49
61
  );
50
62
  };
51
63
 
52
64
  return React__default.createElement(
53
65
  React__default.Fragment,
54
- null,
66
+ { ref: sfRef },
55
67
  React__default.createElement(
56
68
  Navbar,
57
69
  { className: 'top-nav', expand: 'xl' },
@@ -151,7 +163,7 @@ var NavDvm = function NavDvm(props) {
151
163
  if (ddRow.url && ddRow.name) {
152
164
  return ddRow.url && ddRow.name ? React__default.createElement(
153
165
  'a',
154
- { key: subIndex, href: Segment.getURL(ddRow.url, ddRow), target: ddRow.blank ? '_blank' : '_self', className: 'dropdown-item' },
166
+ { key: subIndex, needsegmentsupport: ddRow.needSegmentSupport ? 'true' : '', href: ddRow.url, target: ddRow.blank ? '_blank' : '_self', className: 'dropdown-item' },
155
167
  ddRow.name
156
168
  ) : null;
157
169
  } else return null;
@@ -171,7 +183,7 @@ var NavDvm = function NavDvm(props) {
171
183
  if (ddRow.url && ddRow.name) {
172
184
  return ddRow.url && ddRow.name ? React__default.createElement(
173
185
  'a',
174
- { key: subIndex, href: Segment.getURL(ddRow.url, ddRow), target: ddRow.blank ? '_blank' : '_self', className: 'dropdown-item' },
186
+ { key: subIndex, needsegmentsupport: ddRow.needSegmentSupport ? 'true' : '', href: ddRow.url, target: ddRow.blank ? '_blank' : '_self', className: 'dropdown-item' },
175
187
  ddRow.name
176
188
  ) : null;
177
189
  } else return null;
@@ -183,7 +195,7 @@ var NavDvm = function NavDvm(props) {
183
195
  } else {
184
196
  return row.url && row.name ? React__default.createElement(
185
197
  'a',
186
- { key: index, href: Segment.getURL(row.url, row), target: row.blank ? '_blank' : '_self', className: 'nav-link' },
198
+ { key: index, needsegmentsupport: row.needSegmentSupport ? 'true' : '', href: row.url, target: row.blank ? '_blank' : '_self', className: 'nav-link' },
187
199
  row.name
188
200
  ) : null;
189
201
  }