@mjhls/mjh-framework 1.0.619 → 1.0.621

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/README.md CHANGED
@@ -1,5 +1,5 @@
1
1
 
2
- # mjh-framework v. 1.0.619
2
+ # mjh-framework v. 1.0.621
3
3
 
4
4
  > Foundation Framework
5
5
 
@@ -10,7 +10,7 @@ var React = require('react');
10
10
  var React__default = _interopDefault(React);
11
11
  var slicedToArray = require('./slicedToArray-8063ee51.js');
12
12
  require('./iconBase-68959171.js');
13
- var index_esm = require('./index.esm-fbd1f7e9.js');
13
+ var index_esm = require('./index.esm-876ca9ff.js');
14
14
  var Accordion = _interopDefault(require('react-bootstrap/Accordion'));
15
15
  var AccordionToggle = require('react-bootstrap/AccordionToggle');
16
16
 
@@ -33,7 +33,7 @@ require('./slicedToArray-8063ee51.js');
33
33
  require('./smoothscroll-95231a70.js');
34
34
  var YoutubeGroup = require('./YoutubeGroup.js');
35
35
  require('./iconBase-68959171.js');
36
- var index_esm = require('./index.esm-fbd1f7e9.js');
36
+ var index_esm = require('./index.esm-876ca9ff.js');
37
37
 
38
38
  var ArticleSeriesListing = function (_React$Component) {
39
39
  inherits._inherits(ArticleSeriesListing, _React$Component);
@@ -22,17 +22,18 @@ require('./_set-species-4458e975.js');
22
22
  var Segment = require('./beam-d22818d3.js');
23
23
  require('./react-social-icons-cd0d9d3b.js');
24
24
  require('./iconBase-68959171.js');
25
- var index_esm = require('./index.esm-fbd1f7e9.js');
25
+ var index_esm = require('./index.esm-876ca9ff.js');
26
26
  require('react-bootstrap/Button');
27
27
  var Nav = _interopDefault(require('react-bootstrap/Nav'));
28
28
  var Navbar = _interopDefault(require('react-bootstrap/Navbar'));
29
29
  var NavDropdown = _interopDefault(require('react-bootstrap/NavDropdown'));
30
30
  var index_esm$1 = require('./index.esm-66ffa47a.js');
31
31
  var NavFooter = require('./NavFooter-76c913e3.js');
32
- var SocialNavFooter = require('./SocialNavFooter-9a07520f.js');
32
+ var index_esm$2 = require('./index.esm-d1259b34.js');
33
+ require('./SocialIcons.js');
33
34
  require('react-bootstrap/Form');
34
35
  require('react-bootstrap/FormControl');
35
- var Search = require('./Search.js');
36
+ var SocialSearchComponent = require('./SocialSearchComponent-5cbde5e0.js');
36
37
 
37
38
  var HamMagazine = function HamMagazine(props) {
38
39
  /*
@@ -46,6 +47,7 @@ var HamMagazine = function HamMagazine(props) {
46
47
  />
47
48
  */
48
49
 
50
+ // Setting 'socialIconVariant' as 'light' as default to make the social icons and search icon black
49
51
  var logo = props.logo,
50
52
  mobileLogo = props.mobileLogo,
51
53
  dataObject = props.dataObject,
@@ -55,7 +57,11 @@ var HamMagazine = function HamMagazine(props) {
55
57
  _props$showLogin = props.showLogin,
56
58
  showLogin = _props$showLogin === undefined ? false : _props$showLogin,
57
59
  _props$socialFooterNa = props.socialFooterNav,
58
- socialFooterNav = _props$socialFooterNa === undefined ? false : _props$socialFooterNa;
60
+ socialFooterNav = _props$socialFooterNa === undefined ? false : _props$socialFooterNa,
61
+ _props$socialIconVari = props.socialIconVariant,
62
+ socialIconVariant = _props$socialIconVari === undefined ? 'light' : _props$socialIconVari,
63
+ invertedLogo = props.invertedLogo,
64
+ settings = props.settings;
59
65
 
60
66
  var navRef = React.useRef(null);
61
67
  var topNavRef = React.useRef(null);
@@ -85,19 +91,31 @@ var HamMagazine = function HamMagazine(props) {
85
91
  resolution = _useState10[0],
86
92
  setResolution = _useState10[1];
87
93
 
88
- React.useEffect(function () {
89
- document.addEventListener('scroll', trackScrolling);
90
- return function () {
91
- document.removeEventListener('scroll', trackScrolling);
92
- };
93
- // eslint-disable-next-line react-hooks/exhaustive-deps
94
- }, []);
94
+ var _useState11 = React.useState(true),
95
+ _useState12 = slicedToArray._slicedToArray(_useState11, 2),
96
+ isDesktop = _useState12[0],
97
+ setIsDesktop = _useState12[1];
98
+
99
+ var _useState13 = React.useState(0),
100
+ _useState14 = slicedToArray._slicedToArray(_useState13, 2),
101
+ topOffset = _useState14[0],
102
+ setTopOffset = _useState14[1];
95
103
 
96
- // Initial User agent setup on refresh or on load
97
104
  React.useEffect(function () {
105
+ // Check for desktop or mobile device
106
+ if (window && window.innerWidth < 1200) setIsDesktop(false);
107
+
108
+ // Hiding light-nav with logo on mobile devices
109
+ if (window && window.innerWidth < 1200 && topNavRef) topNavRef.current.style.display = 'none';
110
+
111
+ // Initial User agent setup on refresh or on load
98
112
  setUserAgent(navigator.userAgent.toString());
113
+
114
+ // Initial screenwidth setup on refresh or on load
115
+ setScreenWidth(parseInt(window.innerWidth));
99
116
  }, []);
100
117
 
118
+ // Check for browser resize
101
119
  React.useEffect(function () {
102
120
  if (resolution === 0) {
103
121
  setResolution(window.innerWidth);
@@ -118,10 +136,6 @@ var HamMagazine = function HamMagazine(props) {
118
136
  window.addEventListener('resize', handleResize);
119
137
  }, [resolution]);
120
138
 
121
- React.useEffect(function () {
122
- setScreenWidth(parseInt(window.innerWidth));
123
- }, []);
124
-
125
139
  // Check for change in useragent with change in screen resolution
126
140
  React.useEffect(function () {
127
141
  var handleResize = function handleResize() {
@@ -133,34 +147,37 @@ var HamMagazine = function HamMagazine(props) {
133
147
  window.addEventListener('resize', handleResize);
134
148
  }, [userAgent]);
135
149
 
150
+ // Handling navigation and logo position on scroll
136
151
  React.useEffect(function () {
137
- var navOffsetTop = document.getElementById('navbar-ham').offsetTop;
152
+ var navOffsetTop = document.getElementById('navbar-ham') && document.getElementById('navbar-ham').offsetTop;
138
153
  var adSection = document.querySelector('.AD728x90');
154
+ var navLinks = document.getElementById('nav-links');
155
+ var mastNav = document.querySelector('.nav-brands');
156
+ if (mastNav && mastNav.offsetHeight) setTopOffset(mastNav.offsetHeight - 3);
157
+
139
158
  if (window.pageYOffset > navOffsetTop) {
140
159
  if (navRef.current && navRef.current.style) {
141
- topNavRef.current.style.paddingBottom = navRef.current.offsetHeight + 'px';
142
160
  navRef.current.style.position = 'fixed';
143
- navRef.current.style.top = 0;
144
- navRef.current.style.width = '100%';
145
- navRef.current.style.zIndex = '99999';
161
+ if (mastNav && mastNav.offsetHeight) navRef.current.style.top = mastNav.offsetHeight;
146
162
  }
147
163
  }
148
164
  var stickyNav = window.addEventListener('scroll', function () {
149
165
  if (window.pageYOffset > navOffsetTop) {
150
166
  if (navRef.current && navRef.current.style) {
151
- topNavRef.current.style.paddingBottom = navRef.current.offsetHeight + 'px';
152
167
  navRef.current.style.position = 'fixed';
153
- navRef.current.style.top = 0;
154
- navRef.current.style.width = '100%';
155
- navRef.current.style.zIndex = '99999';
168
+ if (mastNav && mastNav.offsetHeight) navRef.current.style.top = mastNav.offsetHeight;
156
169
  }
170
+ setIsSticky(true);
171
+ navLinks.style.margin = 'auto';
157
172
  } else {
158
173
  if (navRef.current && navRef.current.style) {
159
174
  topNavRef.current.style.paddingBottom = '0';
160
175
  navRef.current.style.position = 'relative';
161
- navRef.current.style.top = '';
162
176
  if (adSection) adSection.style.marginTop = '';
177
+ if (mastNav && mastNav.offsetHeight) navRef.current.style.top = mastNav.offsetHeight;
163
178
  }
179
+ setIsSticky(false);
180
+ navLinks.style.margin = '0px auto 0px 0px';
164
181
  }
165
182
  });
166
183
  return function () {
@@ -168,16 +185,6 @@ var HamMagazine = function HamMagazine(props) {
168
185
  };
169
186
  }, []);
170
187
 
171
- var trackScrolling = function trackScrolling() {
172
- var offsetTop = navRef.current.getBoundingClientRect().top;
173
-
174
- if (offsetTop <= 0) {
175
- setIsSticky(true);
176
- } else {
177
- setIsSticky(false);
178
- }
179
- };
180
-
181
188
  var handleLogin = function handleLogin(e) {
182
189
  if (typeof GCN !== 'undefined' && GCN && GCN.onecount) {
183
190
  GCN.onecount.login();
@@ -196,7 +203,7 @@ var HamMagazine = function HamMagazine(props) {
196
203
 
197
204
  return React__default.createElement(
198
205
  'header',
199
- { className: !main.main_39 && isOpen ? 'nav-open' : 'nav-close', style: { zIndex: '99999' } },
206
+ { className: !main.main_39 && isOpen ? 'nav-open' : 'nav-close', style: { zIndex: '999999' } },
200
207
  React__default.createElement(
201
208
  Navbar,
202
209
  { expand: 'md', ref: topNavRef },
@@ -312,24 +319,46 @@ var HamMagazine = function HamMagazine(props) {
312
319
  ),
313
320
  React__default.createElement(
314
321
  Navbar,
315
- { id: 'navbar-ham', variant: 'dark', expand: 'xl', bg: 'primary', ref: navRef, style: { width: '100%' } },
322
+ { id: 'navbar-ham', variant: 'dark', expand: 'xl', bg: 'primary', ref: navRef, style: { width: '100%', display: 'flex', top: topOffset, overflow: 'auto' } },
316
323
  React__default.createElement(
317
324
  Container,
318
325
  { className: 'mobile-nav' },
319
326
  React__default.createElement(
320
327
  'div',
321
- { className: 'nav-toggle' },
328
+ { className: 'nav-toggle', style: { display: 'flex' } },
322
329
  React__default.createElement(Navbar.Toggle, {
323
330
  'aria-controls': 'basic-navbar-nav',
324
331
  onClick: function onClick() {
332
+ // Set overflow fix for iPhones safari browsers
333
+ if (main.main_40) {
334
+ var mainNav = document.querySelector('#navbar-ham');
335
+ if (mainNav && mainNav.style) mainNav.style.overflow = 'auto';
336
+ }
337
+ var searchBar = document.getElementById('search-bar-mobile');
338
+ var searchBtn = document.getElementsByClassName('search-btn-mobile');
339
+ if (searchBar && searchBar.classList) {
340
+ searchBar.classList.remove('show');
341
+ }
342
+ if (searchBtn && searchBtn[0].classList) {
343
+ searchBtn[0].classList.remove('active-search');
344
+ }
325
345
  setIsOpen(!isOpen);
326
346
  }
327
347
  }),
328
- React__default.createElement(Search, { device: 'mobile' })
348
+ !isDesktop && React__default.createElement(
349
+ 'div',
350
+ { className: 'site-logo-wrapper', style: { margin: 'auto' } },
351
+ React__default.createElement(
352
+ 'a',
353
+ { href: '/' },
354
+ React__default.createElement('img', { src: invertedLogo ? invertedLogo : logo, style: { padding: '0px ', objectFit: 'contain', maxHeight: '45px' } })
355
+ )
356
+ ),
357
+ !isDesktop && React__default.createElement(SocialSearchComponent.SocialSearchComponent, { type: 'mobile', socialIconVariant: socialIconVariant, website: website, navID: 'navbar-ham' })
329
358
  ),
330
359
  React__default.createElement(
331
360
  'div',
332
- { className: 'hamburger-menu-list', style: { width: '100%', maxHeight: '80vh' } },
361
+ { className: 'hamburger-menu-list', style: { width: '100%', maxHeight: '85vh' } },
333
362
  subNav && React__default.createElement(
334
363
  Navbar.Collapse,
335
364
  { id: 'basic-navbar-sub' },
@@ -399,14 +428,18 @@ var HamMagazine = function HamMagazine(props) {
399
428
  React__default.createElement(
400
429
  Navbar.Collapse,
401
430
  { id: 'basic-navbar-nav' },
402
- isSticky && React__default.createElement(
403
- 'a',
404
- { href: '/' },
405
- React__default.createElement(index_esm.IoIosHome, { size: 20, className: 'sticky-home', color: '#fff' })
431
+ isSticky && invertedLogo && isDesktop && React__default.createElement(
432
+ Nav.Item,
433
+ { className: 'nav-mobile-logo' },
434
+ React__default.createElement(
435
+ 'a',
436
+ { href: '/' },
437
+ React__default.createElement('img', { src: invertedLogo, className: 'mobile-logo', style: { height: '38px' }, alt: website.title ? website.title : website.name ? website.name : 'Website Logo' })
438
+ )
406
439
  ),
407
440
  React__default.createElement(
408
441
  Nav,
409
- { className: 'mr-auto web-nav' },
442
+ { id: 'nav-links', style: { marginRight: 'auto' } },
410
443
  dataObject && dataObject.map(function (row, index) {
411
444
  if (row.subQuery && row.subQuery.length > 0) {
412
445
  return row.name ? React__default.createElement(
@@ -464,7 +497,7 @@ var HamMagazine = function HamMagazine(props) {
464
497
  }
465
498
  })
466
499
  ),
467
- React__default.createElement(Search, { device: 'mobile' })
500
+ isDesktop && React__default.createElement(SocialSearchComponent.SocialSearchComponent, { type: 'desktop', socialIconVariant: socialIconVariant, website: website, navID: 'navbar-ham' })
468
501
  ),
469
502
  website && React__default.createElement(
470
503
  Navbar.Collapse,
@@ -472,7 +505,7 @@ var HamMagazine = function HamMagazine(props) {
472
505
  React__default.createElement(
473
506
  Nav,
474
507
  { className: 'mr-auto' },
475
- socialFooterNav ? React__default.createElement(SocialNavFooter.SocialNavFooter, { website: website, showLogo: true }) : React__default.createElement(NavFooter.NavFooter, { website: website, showLogo: true })
508
+ socialFooterNav ? React__default.createElement(index_esm$2.SocialNavFooter, { website: website, showLogo: true }) : React__default.createElement(NavFooter.NavFooter, { website: website, showLogo: true })
476
509
  )
477
510
  )
478
511
  )
@@ -490,7 +523,7 @@ var HamMagazine = function HamMagazine(props) {
490
523
  React__default.createElement(
491
524
  'style',
492
525
  { jsx: 'true' },
493
- '\n .sticky-home {\n position: relative;\n top: -3px;\n left: -6px;\n cursor: pointer;\n }\n .nav-item svg {\n margin-bottom: 2px;\n }\n #nav-login,\n #nav-logout,\n #nav-register {\n padding: 0.5rem;\n cursor: pointer;\n }\n #nav-mobile-login,\n #nav-mobile-logout,\n #nav-mobile-register {\n display: none;\n }\n #nav-mobile-logout,\n #nav-mobile-login {\n position: absolute;\n right: 1rem;\n }\n #nav-mobile-register {\n position: absolute;\n left: 1rem;\n }\n @media screen and (max-width: 376px) {\n .mobile-nav .nav-toggle .form-inline .mobile-search {\n width: 60%;\n }\n .mobile-nav .nav-toggle .form-inline {\n width: 70%;\n }\n }\n @media screen and (max-width: 328px) {\n .mobile-nav .nav-toggle .form-inline .mobile-search {\n margin-right: 5px;\n }\n }\n @media screen and (max-width: 767px) {\n .logo {\n width: 100%;\n padding-left: 10px;\n padding-right: 10px;\n }\n }\n @media screen and (max-width: 1199px) {\n .nav-open {\n position: relative;\n }\n\n .mobile-nav .nav-toggle {\n width: 100%;\n }\n\n .android-nav {\n max-height: 80vh;\n }\n\n .ios-nav {\n max-height: none;\n }\n\n .navbar.bg-primary {\n overflow: auto;\n }\n\n .mobile-nav .nav-toggle .navbar-toggler {\n float: left;\n height: 45px;\n }\n .mobile-nav .nav-toggle .form-inline {\n float: right;\n margin: 4px 0px 0px 0px;\n }\n .mobile-nav .form-inline .mobile-search {\n width: auto;\n }\n .sticky-home {\n display: none;\n }\n .dropdown-menu {\n max-height: 315px;\n overflow: auto;\n }\n ::-webkit-scrollbar {\n width: 10px;\n }\n ::-webkit-scrollbar-thumb {\n border-radius: 4px;\n background-color: rgba(214, 214, 214, 0.8);\n box-shadow: 0 0 1px rgba(255, 255, 255, 0.5);\n -webkit-box-shadow: 0 0 1px rgba(255, 255, 255, 0.5);\n }\n .navbar-expand-xl .show#basic-navbar-sub {\n display: block;\n }\n .navbar .mobile-nav .navbar-collapse.show {\n padding-bottom: 10px;\n border-bottom: 0.5px solid white;\n }\n .navbar .mobile-nav .navbar-collapse .form-inline {\n display: none;\n }\n .navbar .mobile-nav .navbar-collapse {\n margin-top: 15px;\n }\n .navbar .mobile-nav .navbar-collapse:last-child {\n border-bottom: none;\n margin-bottom: 0px;\n padding-bottom: 0px;\n margin-top: 0px;\n padding-top: 10px;\n }\n .navbar .mobile-nav .navbar-collapse .nav-footer ul {\n list-style-type: none;\n padding: inherit;\n margin-bottom: 0rem;\n }\n .navbar .mobile-nav .navbar-collapse .nav-footer .nav-link {\n text-transform: capitalize !important;\n font-weight: 300;\n }\n .navbar .mobile-nav .dropdown-item:focus {\n background-color: #696969;\n }\n .navbar .mobile-nav .dropdown-menu .dropdown-item {\n color: white;\n }\n .navbar .mobile-nav .dropdown-menu {\n background: inherit;\n border: none;\n }\n .navbar .mobile-nav .dropdown-menu.show {\n max-height: 100px;\n }\n }\n @media screen and (min-width: 1200px) {\n #basic-navbar-sub {\n display: none !important;\n }\n .navbar .mobile-nav .dropdown-menu .dropdown-item {\n color: #696969;\n }\n .navbar .mobile-nav .dropdown-menu {\n background: white;\n border: 1 px solid #708090;\n }\n .mobile-nav .nav-toggle .form-inline {\n display: none;\n }\n .navbar.bg-primary {\n z-index: 3000000 !important;\n }\n }\n @media screen and (max-width: 1199px) {\n #nav-mobile-login,\n #nav-mobile-logout,\n #nav-mobile-register {\n display: block;\n }\n .navbar-top {\n flex-direction: row;\n justify-content: space-around !important;\n align-items: center;\n padding-left: 0.25rem;\n padding-right: 0.25rem;\n width: 100%;\n }\n }\n '
526
+ '\n .sticky-home {\n position: relative;\n top: -3px;\n left: -6px;\n cursor: pointer;\n }\n .nav-item svg {\n margin-bottom: 2px;\n }\n #nav-login,\n #nav-logout,\n #nav-register {\n padding: 0.5rem;\n cursor: pointer;\n }\n #nav-mobile-login,\n #nav-mobile-logout,\n #nav-mobile-register {\n display: none;\n }\n #nav-mobile-logout,\n #nav-mobile-login {\n position: absolute;\n right: 1rem;\n }\n #nav-mobile-register {\n position: absolute;\n left: 1rem;\n }\n\n @media screen and (max-width: 767px) {\n .logo {\n width: 100%;\n padding-left: 10px;\n padding-right: 10px;\n }\n }\n @media screen and (max-width: 1199px) {\n .mobile-nav .nav-toggle {\n width: 100%;\n }\n .nav-open {\n position: relative;\n }\n\n .mobile-nav .nav-toggle {\n width: 100%;\n }\n\n .android-nav {\n max-height: 80vh;\n }\n\n .ios-nav {\n max-height: none;\n }\n\n .mobile-nav .nav-toggle .navbar-toggler {\n float: left;\n height: 45px;\n }\n .mobile-nav .form-inline .mobile-search {\n width: auto;\n }\n .sticky-home {\n display: none;\n }\n .dropdown-menu {\n max-height: 315px;\n overflow: auto;\n }\n ::-webkit-scrollbar {\n width: 10px;\n }\n ::-webkit-scrollbar-thumb {\n border-radius: 4px;\n background-color: rgba(214, 214, 214, 0.8);\n box-shadow: 0 0 1px rgba(255, 255, 255, 0.5);\n -webkit-box-shadow: 0 0 1px rgba(255, 255, 255, 0.5);\n }\n .navbar-expand-xl .show#basic-navbar-sub {\n display: block;\n }\n .navbar .mobile-nav .navbar-collapse.show {\n padding-bottom: 10px;\n border-bottom: 0.5px solid white;\n }\n .navbar .mobile-nav .navbar-collapse .form-inline {\n display: none;\n }\n .navbar .mobile-nav .navbar-collapse {\n margin-top: 15px;\n }\n .navbar .mobile-nav .navbar-collapse:last-child {\n border-bottom: none;\n margin-bottom: 0px;\n padding-bottom: 0px;\n margin-top: 0px;\n padding-top: 10px;\n }\n .navbar .mobile-nav .navbar-collapse .nav-footer ul {\n list-style-type: none;\n padding: inherit;\n margin-bottom: 0rem;\n }\n .navbar .mobile-nav .navbar-collapse .nav-footer .nav-link {\n text-transform: capitalize !important;\n font-weight: 300;\n }\n .navbar .mobile-nav .dropdown-item:focus {\n background-color: #696969;\n }\n .navbar .mobile-nav .dropdown-menu .dropdown-item {\n color: white;\n white-space: inherit !important;\n margin-bottom: 5px;\n }\n .navbar .mobile-nav .dropdown-menu {\n background: inherit;\n border: none;\n }\n .navbar .mobile-nav .dropdown-menu.show {\n max-height: 100px;\n }\n }\n @media screen and (min-width: 1200px) {\n #navbar-ham {\n overflow: visible !important;\n }\n #basic-navbar-sub {\n display: none !important;\n }\n .navbar .mobile-nav .dropdown-menu .dropdown-item {\n color: #696969;\n }\n .navbar .mobile-nav .dropdown-menu {\n background: white;\n border: 1 px solid #708090;\n }\n\n .navbar.bg-primary {\n z-index: 3000000 !important;\n }\n }\n @media screen and (max-width: 1199px) {\n #nav-mobile-login,\n #nav-mobile-logout,\n #nav-mobile-register {\n display: block;\n }\n .navbar-top {\n flex-direction: row;\n justify-content: space-around !important;\n align-items: center;\n padding-left: 0.25rem;\n padding-right: 0.25rem;\n width: 100%;\n }\n }\n '
494
527
  )
495
528
  );
496
529
  };