@mjhls/mjh-framework 1.0.536 → 1.0.539

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 (42) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/AD728x90.js +1 -1
  3. package/dist/cjs/AccordionPanel.js +2 -2
  4. package/dist/cjs/HamMagazine.js +207 -28
  5. package/dist/cjs/HorizontalHero.js +3 -3
  6. package/dist/cjs/MasterDeck.js +4 -4
  7. package/dist/cjs/NavDvm.js +214 -14
  8. package/dist/cjs/NavMagazine.js +200 -13
  9. package/dist/cjs/NavNative.js +190 -13
  10. package/dist/cjs/NavNormal.js +229 -10
  11. package/dist/cjs/OncliveHero.js +2 -2
  12. package/dist/cjs/PdfDownload.js +2 -2
  13. package/dist/cjs/TemplateNormal.js +7 -7
  14. package/dist/cjs/Ustream.js +5 -5
  15. package/dist/cjs/VideoSeriesListing.js +2 -2
  16. package/dist/cjs/{iconBase-637d3f1e.js → iconBase-68959171.js} +1 -0
  17. package/dist/cjs/index.esm-0e5c6a9e.js +11 -0
  18. package/dist/cjs/{index.esm-c0d8b44b.js → index.esm-66ffa47a.js} +1 -1
  19. package/dist/cjs/{index.esm-25423c2f.js → index.esm-89fabc47.js} +1 -1
  20. package/dist/cjs/{index.esm-fcdbd2c6.js → index.esm-fbd1f7e9.js} +1 -1
  21. package/dist/cjs/index.js +9 -8
  22. package/dist/esm/AD728x90.js +1 -1
  23. package/dist/esm/AccordionPanel.js +2 -2
  24. package/dist/esm/HamMagazine.js +207 -28
  25. package/dist/esm/HorizontalHero.js +2 -2
  26. package/dist/esm/MasterDeck.js +4 -4
  27. package/dist/esm/NavDvm.js +215 -15
  28. package/dist/esm/NavMagazine.js +200 -13
  29. package/dist/esm/NavNative.js +190 -13
  30. package/dist/esm/NavNormal.js +230 -11
  31. package/dist/esm/OncliveHero.js +2 -2
  32. package/dist/esm/PdfDownload.js +2 -2
  33. package/dist/esm/TemplateNormal.js +7 -7
  34. package/dist/esm/Ustream.js +3 -3
  35. package/dist/esm/VideoSeriesListing.js +2 -2
  36. package/dist/esm/{iconBase-6ee2f2fb.js → iconBase-602d52fe.js} +1 -1
  37. package/dist/esm/index.esm-16536e81.js +9 -0
  38. package/dist/esm/{index.esm-b97cf389.js → index.esm-4b1d94b7.js} +1 -1
  39. package/dist/esm/{index.esm-a7ad65ba.js → index.esm-9a4c8813.js} +1 -1
  40. package/dist/esm/{index.esm-9d6faf80.js → index.esm-b08f4b04.js} +1 -1
  41. package/dist/esm/index.js +8 -7
  42. package/package.json +1 -1
@@ -20,16 +20,17 @@ require('./stringify-7c5aff47.js');
20
20
  require('./asyncToGenerator-8e707718.js');
21
21
  require('./_set-species-4458e975.js');
22
22
  var Segment = require('./beam-d22818d3.js');
23
- require('./react-social-icons-cd0d9d3b.js');
24
- require('react-bootstrap/Button');
23
+ var reactSocialIcons = require('./react-social-icons-cd0d9d3b.js');
24
+ var iconBase = require('./iconBase-68959171.js');
25
+ var Button = _interopDefault(require('react-bootstrap/Button'));
25
26
  var Nav = _interopDefault(require('react-bootstrap/Nav'));
26
27
  var Navbar = _interopDefault(require('react-bootstrap/Navbar'));
27
28
  var NavDropdown = _interopDefault(require('react-bootstrap/NavDropdown'));
28
- require('react-bootstrap/Form');
29
- require('react-bootstrap/FormControl');
30
- var Search = require('./Search.js');
31
29
  var NavFooter = require('./NavFooter-76c913e3.js');
32
30
  var SocialNavFooter = require('./SocialNavFooter-9a07520f.js');
31
+ var index_esm$2 = require('./index.esm-0e5c6a9e.js');
32
+ var Form = _interopDefault(require('react-bootstrap/Form'));
33
+ var FormControl = _interopDefault(require('react-bootstrap/FormControl'));
33
34
 
34
35
  var NavNative = function NavNative(props) {
35
36
  /*
@@ -55,6 +56,8 @@ var NavNative = function NavNative(props) {
55
56
  socialFooterNav = _props$socialFooterNa === undefined ? false : _props$socialFooterNa;
56
57
 
57
58
  var navRef = React.useRef(null);
59
+ // reference to mobile search component
60
+ var searchRef = React.useRef(null);
58
61
 
59
62
  var _useState = React.useState(false),
60
63
  _useState2 = slicedToArray._slicedToArray(_useState, 2),
@@ -67,6 +70,12 @@ var NavNative = function NavNative(props) {
67
70
  setScreenWidth = _useState4[1];
68
71
 
69
72
  React.useEffect(function () {
73
+ // handling the top mast component
74
+ var topNavHeight = document.querySelector('.nav-brands') && document.querySelector('.nav-brands').offsetHeight;
75
+
76
+ // Setting the top of the search component based on the offset of navigation component.
77
+ searchRef.current.style.top = (topNavHeight ? topNavHeight + navRef.current.offsetHeight : navRef.current.offsetHeight) + 1 + 'px';
78
+
70
79
  document.addEventListener('scroll', trackScrolling);
71
80
  return function () {
72
81
  document.removeEventListener('scroll', trackScrolling);
@@ -88,6 +97,148 @@ var NavNative = function NavNative(props) {
88
97
  }
89
98
  };
90
99
 
100
+ // Search Term
101
+
102
+ var _useState5 = React.useState(''),
103
+ _useState6 = slicedToArray._slicedToArray(_useState5, 2),
104
+ searchKey = _useState6[0],
105
+ setSearchKey = _useState6[1];
106
+
107
+ // Search function
108
+
109
+
110
+ var submitSearch = function submitSearch(e) {
111
+ e.preventDefault();
112
+ window.location.href = '/search?searchTerm=' + searchKey;
113
+ };
114
+
115
+ // Toggling class of an element.Can't use toggle() as IE doesn't support toggle()
116
+ var toggleClass = function toggleClass(selector, type, addOn) {
117
+ if (type === 'id') {
118
+ var searchBar = document.getElementById(selector);
119
+ if (searchBar && searchBar.classList && searchBar.classList.contains(addOn)) {
120
+ searchBar.classList.remove(addOn);
121
+ } else if (searchBar && searchBar.classList) {
122
+ searchBar.classList.add(addOn);
123
+ }
124
+ } else if (type === 'class') {
125
+ var searchBtn = document.getElementsByClassName(selector)[0];
126
+ if (searchBtn && searchBtn.classList && searchBtn.classList.contains(addOn)) {
127
+ searchBtn.classList.remove(addOn);
128
+ } else if (searchBtn && searchBtn.classList) {
129
+ searchBtn.classList.add(addOn);
130
+ }
131
+ }
132
+ };
133
+
134
+ // Search Component
135
+ var socialSearchComponent = function socialSearchComponent(type) {
136
+ if (type === 'mobile') {
137
+ return React__default.createElement(
138
+ 'div',
139
+ { id: 'search-content-mobile' },
140
+ React__default.createElement(
141
+ 'div',
142
+ { id: 'search-bar-mobile', ref: searchRef },
143
+ React__default.createElement(
144
+ Form,
145
+ { inline: true, onSubmit: function onSubmit(e) {
146
+ return submitSearch(e);
147
+ } },
148
+ React__default.createElement(FormControl, { placeholder: 'Search', type: 'text', value: searchKey, onChange: function onChange(e) {
149
+ return setSearchKey(e.target.value);
150
+ } }),
151
+ React__default.createElement(
152
+ Button,
153
+ { variant: 'primary', style: { backgroundColor: 'var(--primary)' }, onClick: function onClick(e) {
154
+ return submitSearch(e);
155
+ } },
156
+ 'Search'
157
+ )
158
+ )
159
+ ),
160
+ React__default.createElement(
161
+ iconBase.IconContext.Provider,
162
+ { value: { color: 'white', className: 'search-btn-mobile', size: '50px' } },
163
+ React__default.createElement(index_esm$2.GoSearch, {
164
+ onClick: function onClick() {
165
+ var navToggle = document.getElementsByClassName('navbar-toggler')[0];
166
+ if (navToggle && navToggle.classList && !navToggle.classList.contains('collapsed')) {
167
+ var nav = document.querySelectorAll('.navbar-collapse');
168
+ for (var i = 0; i < nav.length; i++) {
169
+ if (nav[i] && nav[i].classList) nav[i].classList.remove('show');
170
+ }
171
+ if (navToggle && navToggle.classList) navToggle.classList.add('collapsed');
172
+ }
173
+
174
+ toggleClass('search-bar-mobile', 'id', 'show');
175
+ toggleClass('search-btn-mobile', 'class', 'active-search');
176
+ }
177
+ })
178
+ ),
179
+ React__default.createElement(
180
+ 'style',
181
+ { jsx: 'true' },
182
+ '\n #search-content-mobile {\n display: flex;\n }\n @media screen and (min-width: 1192px) {\n #search-content-mobile {\n display: none;\n }\n }\n #search-content-mobile .search-btn-mobile {\n padding: 5px;\n position: absolute;\n right: 4%;\n height: 45px;\n width: 45px;\n margin-top: 4px;\n cursor: pointer;\n top: -20%;\n }\n #search-content-mobile #search-bar-mobile {\n position: fixed;\n display: none;\n background-color: #60bdcd;\n left: 0px;\n width: 100%;\n border-radius: 5px;\n padding: 10px;\n }\n #search-content-mobile #search-bar-mobile .form-inline {\n margin-top: 0px;\n width: 100% !important;\n }\n #search-content-mobile #search-bar-mobile .form-inline .form-control {\n width: 78%;\n border-radius: 5px;\n height: 45px;\n }\n #search-content-mobile #search-bar-mobile .form-inline .btn {\n width: 20%;\n border-radius: 5px;\n background-color: #040c5a;\n height: 45px;\n margin-left: 5px;\n padding: 1px;\n }\n .show {\n display: block !important;\n }\n .active-search {\n border-radius: 5px;\n background-color: #60bdcd;\n border: 1px solid var(--secondary);\n }\n '
183
+ )
184
+ );
185
+ } else if (type === 'desktop') {
186
+ return React__default.createElement(
187
+ 'div',
188
+ { id: 'search-content-desktop' },
189
+ React__default.createElement(
190
+ 'div',
191
+ { id: 'search-bar-desktop' },
192
+ React__default.createElement(
193
+ Form,
194
+ { inline: true, onSubmit: function onSubmit(e) {
195
+ return submitSearch(e);
196
+ } },
197
+ React__default.createElement(FormControl, { placeholder: 'Search', type: 'text', value: searchKey, onChange: function onChange(e) {
198
+ return setSearchKey(e.target.value);
199
+ } }),
200
+ React__default.createElement(
201
+ Button,
202
+ { variant: 'primary', style: { backgroundColor: 'var(--primary)' }, onClick: function onClick(e) {
203
+ return submitSearch(e);
204
+ } },
205
+ 'Search'
206
+ )
207
+ )
208
+ ),
209
+ React__default.createElement(
210
+ iconBase.IconContext.Provider,
211
+ { value: { color: 'white', className: 'search-btn-desktop', size: '50px' } },
212
+ React__default.createElement(index_esm$2.GoSearch, {
213
+ onClick: function onClick() {
214
+ toggleClass('search-bar-desktop', 'id', 'show');
215
+ toggleClass('search-btn-desktop', 'class', 'active-search');
216
+ }
217
+ })
218
+ ),
219
+ website && website.socialLinks && website.socialLinks.length !== 0 && React__default.createElement(
220
+ 'div',
221
+ { id: 'social-tab-desktop' },
222
+ website.socialLinks && website.socialLinks.map(function (row, index) {
223
+ return React__default.createElement(reactSocialIcons.reactSocialIcons_1, {
224
+ target: row.blank ? '_blank' : '_self',
225
+ rel: 'noopener noreferrer',
226
+ key: index,
227
+ index: index,
228
+ url: row.url,
229
+ style: { width: 25, height: 25, marginRight: 3 }
230
+ });
231
+ })
232
+ ),
233
+ React__default.createElement(
234
+ 'style',
235
+ { jsx: 'true' },
236
+ '\n #social-tab-desktops {\n position: relative;\n display: flex;\n left: 0px;\n }\n @media screen and (max-width: 1191px) {\n #search-content-desktop {\n display: none !important;\n }\n }\n @media screen and (min-width: 992px) {\n .mobile-nav {\n width: 100% !important;\n }\n }\n #search-content-desktop {\n display: flex;\n padding-top: 1px;\n height: 35px;\n position: absolute;\n right: 5%;\n }\n #search-content-desktop .search-btn-desktop {\n padding: 5px;\n height: 30px;\n width: 30px;\n margin: -1px 5px 0px 0px;\n cursor: pointer;\n }\n\n #search-content-desktop #search-bar-desktop {\n display: none;\n background-color: #60bdcd;\n position: relative;\n width: 400px;\n border-radius: 5px;\n height: 48px;\n top: 50px;\n }\n #search-content-desktop #search-bar-desktop .form-inline {\n padding: 5px;\n }\n #search-content-desktop #search-bar-desktop .form-inline .form-control {\n width: 78%;\n border-radius: 5px;\n }\n #search-content-desktop #search-bar-desktop .form-inline .btn {\n width: 20%;\n border-radius: 5px;\n padding: 7px;\n margin-left: 5px;\n }\n .show {\n display: block !important;\n }\n .active-search {\n border-radius: 5px;\n background-color: #60bdcd;\n border: 1px solid var(--secondary);\n }\n '
237
+ )
238
+ );
239
+ }
240
+ };
241
+
91
242
  return React__default.createElement(
92
243
  React__default.Fragment,
93
244
  null,
@@ -115,19 +266,45 @@ var NavNative = function NavNative(props) {
115
266
  ),
116
267
  React__default.createElement(
117
268
  'div',
118
- { className: 'nav-toggle' },
119
- React__default.createElement(Navbar.Toggle, { 'aria-controls': 'basic-navbar-nav' }),
269
+ { className: 'nav-toggle', style: { width: 'auto' } },
270
+ React__default.createElement(Navbar.Toggle, {
271
+ 'aria-controls': 'basic-navbar-nav',
272
+ onClick: function onClick() {
273
+ var searchBar = document.getElementById('search-bar-mobile');
274
+ var searchBtn = document.getElementsByClassName('search-btn-mobile');
275
+ if (searchBar && searchBar.classList) {
276
+ searchBar.classList.remove('show');
277
+ }
278
+ if (searchBtn && searchBtn[0].classList) {
279
+ searchBtn[0].classList.remove('active-search');
280
+ }
281
+ }
282
+ }),
120
283
  React__default.createElement(
121
284
  Navbar.Brand,
122
285
  { id: 'nav-mobile-md', className: 'nav-mobile-logo' },
123
286
  React__default.createElement(
124
287
  'a',
125
288
  { href: '/' },
126
- mobileLogo && screenWidth < 1200 ? React__default.createElement('img', { src: mobileLogo, alt: website.title ? website.title : website.name ? website.name : 'Website Logo' }) : React__default.createElement('img', { src: logo, className: 'logo', style: { height: '50px' }, alt: website.title ? website.title : website.name ? website.name : 'Website Logo' })
289
+ mobileLogo && screenWidth < 1200 ? React__default.createElement('img', { src: mobileLogo, style: { height: '40px' }, alt: website.title ? website.title : website.name ? website.name : 'Website Logo' }) : React__default.createElement('img', { src: logo, className: 'logo', style: { height: '40px' }, alt: website.title ? website.title : website.name ? website.name : 'Website Logo' })
127
290
  )
291
+ )
292
+ ),
293
+ React__default.createElement(
294
+ 'div',
295
+ { className: 'site-logo-wrapper', style: { display: 'none' } },
296
+ React__default.createElement(
297
+ 'a',
298
+ { href: '/' },
299
+ React__default.createElement('img', { src: logo })
128
300
  ),
129
- React__default.createElement(Search, { device: 'mobile' })
301
+ React__default.createElement(
302
+ 'style',
303
+ { jsx: 'true' },
304
+ '\n @media screen and (max-width: 1191px) {\n .site-logo-wrapper {\n display: block !important;\n margin: auto;\n margin-top: 10px;\n }\n .site-logo-wrapper img {\n object-fit: contain;\n max-height: 45px;\n }\n .nav-mobile-logo {\n display: none !important;\n }\n }\n @media screen and (max-width: 420px) {\n .site-logo-wrapper img {\n max-width: 200px;\n }\n }\n '
305
+ )
130
306
  ),
307
+ socialSearchComponent('mobile'),
131
308
  subNav && React__default.createElement(
132
309
  Navbar.Collapse,
133
310
  { id: 'basic-navbar-sub' },
@@ -242,8 +419,7 @@ var NavNative = function NavNative(props) {
242
419
  ) : null;
243
420
  }
244
421
  })
245
- ),
246
- React__default.createElement(Search, { device: 'mobile' })
422
+ )
247
423
  ),
248
424
  website && React__default.createElement(
249
425
  Navbar.Collapse,
@@ -253,7 +429,8 @@ var NavNative = function NavNative(props) {
253
429
  { className: 'mr-auto' },
254
430
  socialFooterNav ? React__default.createElement(SocialNavFooter.SocialNavFooter, { website: website }) : React__default.createElement(NavFooter.NavFooter, { website: website })
255
431
  )
256
- )
432
+ ),
433
+ socialSearchComponent('desktop')
257
434
  )
258
435
  ),
259
436
  React__default.createElement(
@@ -268,7 +445,7 @@ var NavNative = function NavNative(props) {
268
445
  React__default.createElement(
269
446
  'style',
270
447
  { jsx: 'true' },
271
- '\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 #nav-mobile-sm {\n display: none;\n }\n\n @media screen and (max-width: 1191px) {\n .mobile-nav .nav-toggle {\n width: 100%;\n display: flex;\n justify-content: space-between;\n }\n .nav-mobile-logo {\n margin-left: 1.5rem;\n }\n #nav-mobile-md {\n margin-right: auto;\n }\n .nav-mobile-logo img {\n height: 48px !important;\n }\n .nav-mobile-logo img {\n height: 38px !important;\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\n .navbar-expand-lg .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 padding-left: 0.5rem;\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 /* To break text into next line */\n white-space: inherit !important;\n margin-bottom: 5px;\n }\n .navbar .mobile-nav .dropdown-menu {\n background: inherit;\n border: none;\n direction: rtl;\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\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\n @media screen and (min-width: 1191px) {\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 }\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 flex: 1 1 auto;\n margin-left: 0.25rem;\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 #nav-mobile-md {\n display: none;\n }\n #nav-mobile-sm {\n display: inline-block;\n margin: 0 auto 0.5rem;\n }\n .nav-toggle {\n margin: 0.5rem 0;\n padding: 0 0.5rem;\n }\n }\n '
448
+ '\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 #nav-mobile-sm {\n display: none;\n }\n\n @media screen and (max-width: 1192px) {\n .mobile-nav .nav-toggle {\n display: flex;\n justify-content: space-between;\n }\n .nav-mobile-logo {\n margin-left: 1.5rem;\n }\n #nav-mobile-md {\n margin-right: auto;\n }\n .nav-mobile-logo img {\n height: 48px !important;\n }\n .nav-mobile-logo img {\n height: 38px !important;\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\n .navbar-expand-lg .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 padding-left: 0.5rem;\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 /* To break text into next line */\n white-space: inherit !important;\n margin-bottom: 5px;\n }\n .navbar .mobile-nav .dropdown-menu {\n background: inherit;\n border: none;\n direction: rtl;\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\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\n @media screen and (min-width: 992px) {\n #search-content-mobile {\n position: absolute;\n right: 4%;\n top: 10%;\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 .mobile-nav .nav-toggle .form-inline {\n display: none;\n }\n }\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 flex: 1 1 auto;\n margin-left: 0.25rem;\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 #nav-mobile-md {\n display: none;\n }\n #nav-mobile-sm {\n display: inline-block;\n margin: 0 auto 0.5rem;\n }\n .nav-toggle {\n margin: 0.5rem 0;\n padding: 0 0.5rem;\n }\n }\n '
272
449
  )
273
450
  );
274
451
  };
@@ -12,21 +12,23 @@ require('./_iter-detect-4d0352f8.js');
12
12
  require('./web.dom.iterable-43c3e277.js');
13
13
  var React = require('react');
14
14
  var React__default = _interopDefault(React);
15
+ require('prop-types');
15
16
  var Container = _interopDefault(require('react-bootstrap/Container'));
16
- require('./slicedToArray-8063ee51.js');
17
+ var slicedToArray = require('./slicedToArray-8063ee51.js');
17
18
  require('./stringify-7c5aff47.js');
18
19
  require('./asyncToGenerator-8e707718.js');
19
20
  require('./_set-species-4458e975.js');
20
21
  var Segment = require('./beam-d22818d3.js');
21
- require('./iconBase-637d3f1e.js');
22
- require('react-bootstrap/Button');
22
+ var reactSocialIcons = require('./react-social-icons-cd0d9d3b.js');
23
+ var iconBase = require('./iconBase-68959171.js');
24
+ var Button = _interopDefault(require('react-bootstrap/Button'));
23
25
  var Nav = _interopDefault(require('react-bootstrap/Nav'));
24
26
  var Navbar = _interopDefault(require('react-bootstrap/Navbar'));
25
27
  var NavDropdown = _interopDefault(require('react-bootstrap/NavDropdown'));
26
- var index_esm$1 = require('./index.esm-c0d8b44b.js');
27
- require('react-bootstrap/Form');
28
- require('react-bootstrap/FormControl');
29
- var Search = require('./Search.js');
28
+ var index_esm$1 = require('./index.esm-66ffa47a.js');
29
+ var index_esm$2 = require('./index.esm-0e5c6a9e.js');
30
+ var Form = _interopDefault(require('react-bootstrap/Form'));
31
+ var FormControl = _interopDefault(require('react-bootstrap/FormControl'));
30
32
 
31
33
  var NavNormal = function NavNormal(props) {
32
34
  var logo = props.logo,
@@ -36,6 +38,63 @@ var NavNormal = function NavNormal(props) {
36
38
 
37
39
 
38
40
  var ref = React.useRef(null);
41
+ // reference to mobile search component
42
+ var searchRef = React.useRef(null);
43
+ // reference to navigation component
44
+ var navRef = React.useRef(null);
45
+ // reference to desktop search component
46
+
47
+ var _useState = React.useState(''),
48
+ _useState2 = slicedToArray._slicedToArray(_useState, 2),
49
+ searchKey = _useState2[0],
50
+ setSearchKey = _useState2[1];
51
+
52
+ React.useEffect(function () {
53
+ // Setting the top of the search component based on the offset of navigation component.
54
+ searchRef.current.style.top = navRef.current.offsetHeight + 1 + 'px';
55
+ }, []);
56
+
57
+ React.useEffect(function () {
58
+ // Making the search and navbar Sticky on scroll
59
+ var navOffsetTop = document.getElementById('navbar-normal').offsetTop;
60
+ if (window.pageYOffset > navOffsetTop) {
61
+ if (navRef.current && navRef.current.style) {
62
+ navRef.current.style.position = 'fixed';
63
+ navRef.current.style.top = 0;
64
+ navRef.current.style.width = '100%';
65
+ navRef.current.style.zIndex = '99999';
66
+ searchRef.current.style.position = 'fixed';
67
+ searchRef.current.style.top = navRef.current.offsetHeight + 1 + 'px';
68
+ searchRef.current.style.zIndex = '99999';
69
+ searchRef.current.style.width = '100%';
70
+ }
71
+ }
72
+ var stickyNav = window.addEventListener('scroll', function () {
73
+ if (window.pageYOffset > navOffsetTop) {
74
+ if (navRef.current && navRef.current.style) {
75
+ navRef.current.style.position = 'fixed';
76
+ navRef.current.style.top = 0;
77
+ navRef.current.style.width = '100%';
78
+ navRef.current.style.zIndex = '99999';
79
+ searchRef.current.style.position = 'fixed';
80
+ searchRef.current.style.top = navRef.current.offsetHeight + 1 + 'px';
81
+ searchRef.current.style.zIndex = '99999';
82
+ searchRef.current.style.width = '100%';
83
+ }
84
+ } else {
85
+ if (navRef.current && navRef.current.style) {
86
+ navRef.current.style.position = 'relative';
87
+ navRef.current.style.top = '';
88
+ searchRef.current.style.position = 'fixed';
89
+ searchRef.current.style.top = navRef.current.offsetHeight + 1 + 'px';
90
+ searchRef.current.style.width = '100%';
91
+ }
92
+ }
93
+ });
94
+ return function () {
95
+ window.removeEventListener('scroll', stickyNav);
96
+ };
97
+ }, []);
39
98
 
40
99
  React.useEffect(function () {
41
100
  Segment.Segment.init(); // auto init if not done yet
@@ -48,6 +107,139 @@ var NavNormal = function NavNormal(props) {
48
107
  }
49
108
  }, []);
50
109
 
110
+ // Search function
111
+ var submitSearch = function submitSearch(e) {
112
+ e.preventDefault();
113
+ window.location.href = '/search?searchTerm=' + searchKey;
114
+ };
115
+
116
+ // Toggling class of an element.Can't use toggle() as IE doesn't support toggle()
117
+ var toggleClass = function toggleClass(selector, type, addOn) {
118
+ if (type === 'id') {
119
+ var searchBar = document.getElementById(selector);
120
+ if (searchBar && searchBar.classList && searchBar.classList.contains(addOn)) {
121
+ searchBar.classList.remove(addOn);
122
+ } else if (searchBar && searchBar.classList) {
123
+ searchBar.classList.add(addOn);
124
+ }
125
+ } else if (type === 'class') {
126
+ var searchBtn = document.getElementsByClassName(selector)[0];
127
+ if (searchBtn && searchBtn.classList && searchBtn.classList.contains(addOn)) {
128
+ searchBtn.classList.remove(addOn);
129
+ } else if (searchBtn && searchBtn.classList) {
130
+ searchBtn.classList.add(addOn);
131
+ }
132
+ }
133
+ };
134
+
135
+ // Search Component
136
+ var socialSearchComponent = function socialSearchComponent(type) {
137
+ if (type === 'mobile') {
138
+ return React__default.createElement(
139
+ 'div',
140
+ { id: 'search-content-mobile' },
141
+ React__default.createElement(
142
+ 'div',
143
+ { id: 'search-bar-mobile', ref: searchRef },
144
+ React__default.createElement(
145
+ Form,
146
+ { inline: true, onSubmit: function onSubmit(e) {
147
+ return submitSearch(e);
148
+ } },
149
+ React__default.createElement(FormControl, { placeholder: 'Search', type: 'text', value: searchKey, onChange: function onChange(e) {
150
+ return setSearchKey(e.target.value);
151
+ } }),
152
+ React__default.createElement(
153
+ Button,
154
+ { variant: 'primary', style: { backgroundColor: 'var(--primary)' }, onClick: function onClick(e) {
155
+ return submitSearch(e);
156
+ } },
157
+ 'Search'
158
+ )
159
+ )
160
+ ),
161
+ React__default.createElement(
162
+ iconBase.IconContext.Provider,
163
+ { value: { color: 'white', className: 'search-btn-mobile', size: '50px' } },
164
+ React__default.createElement(index_esm$2.GoSearch, {
165
+ onClick: function onClick() {
166
+ var navToggle = document.getElementsByClassName('navbar-toggler')[0];
167
+ if (navToggle && navToggle.classList && !navToggle.classList.contains('collapsed')) {
168
+ var nav = document.querySelectorAll('.navbar-collapse');
169
+ for (var i = 0; i < nav.length; i++) {
170
+ if (nav[i] && nav[i].classList) nav[i].classList.remove('show');
171
+ }
172
+ if (navToggle && navToggle.classList) navToggle.classList.add('collapsed');
173
+ }
174
+
175
+ toggleClass('search-bar-mobile', 'id', 'show');
176
+ toggleClass('search-btn-mobile', 'class', 'active-search');
177
+ }
178
+ })
179
+ ),
180
+ React__default.createElement(
181
+ 'style',
182
+ { jsx: 'true' },
183
+ '\n #search-content-mobile {\n display: flex;\n }\n @media screen and (min-width: 1200px) {\n #search-content-mobile {\n display: none;\n }\n }\n #search-content-mobile .search-btn-mobile {\n padding: 5px;\n position: absolute;\n right: 4%;\n height: 45px;\n width: 45px;\n margin-top: 4px;\n cursor: pointer;\n top: 10%;\n }\n #search-content-mobile #search-bar-mobile {\n position: fixed;\n display: none;\n background-color: #60bdcd;\n left: 0px;\n width: 100%;\n border-radius: 5px;\n padding: 10px;\n }\n #search-content-mobile #search-bar-mobile .form-inline {\n margin-top: 0px;\n width: 100% !important;\n }\n #search-content-mobile #search-bar-mobile .form-inline .form-control {\n width: 78%;\n border-radius: 5px;\n height: 45px;\n }\n #search-content-mobile #search-bar-mobile .form-inline .btn {\n width: 20%;\n border-radius: 5px;\n background-color: #040c5a;\n height: 45px;\n margin-left: 5px;\n }\n .show {\n display: block !important;\n }\n .active-search {\n border-radius: 5px;\n background-color: #60bdcd;\n border: 1px solid var(--secondary);\n }\n '
184
+ )
185
+ );
186
+ } else if (type === 'desktop') {
187
+ return React__default.createElement(
188
+ 'div',
189
+ { id: 'search-content-desktop' },
190
+ React__default.createElement(
191
+ 'div',
192
+ { id: 'search-bar-desktop' },
193
+ React__default.createElement(
194
+ Form,
195
+ { inline: true, onSubmit: function onSubmit(e) {
196
+ return submitSearch(e);
197
+ } },
198
+ React__default.createElement(FormControl, { placeholder: 'Search', type: 'text', value: searchKey, onChange: function onChange(e) {
199
+ return setSearchKey(e.target.value);
200
+ } }),
201
+ React__default.createElement(
202
+ Button,
203
+ { variant: 'primary', style: { backgroundColor: 'var(--primary)' }, onClick: function onClick(e) {
204
+ return submitSearch(e);
205
+ } },
206
+ 'Search'
207
+ )
208
+ )
209
+ ),
210
+ React__default.createElement(
211
+ iconBase.IconContext.Provider,
212
+ { value: { color: 'white', className: 'search-btn-desktop', size: '50px' } },
213
+ React__default.createElement(index_esm$2.GoSearch, {
214
+ onClick: function onClick() {
215
+ toggleClass('search-bar-desktop', 'id', 'show');
216
+ toggleClass('search-btn-desktop', 'class', 'active-search');
217
+ }
218
+ })
219
+ ),
220
+ website && website.siteSettingCache && website.siteSettingCache.socialLinks && website.siteSettingCache.socialLinks.length !== 0 && React__default.createElement(
221
+ 'div',
222
+ { id: 'social-tab-desktop' },
223
+ website.siteSettingCache.socialLinks && website.siteSettingCache.socialLinks.map(function (row, index) {
224
+ return React__default.createElement(reactSocialIcons.reactSocialIcons_1, {
225
+ target: row.blank ? '_blank' : '_self',
226
+ rel: 'noopener noreferrer',
227
+ key: index,
228
+ index: index,
229
+ url: row.url,
230
+ style: { width: 25, height: 25, marginRight: 3 }
231
+ });
232
+ })
233
+ ),
234
+ React__default.createElement(
235
+ 'style',
236
+ { jsx: 'true' },
237
+ '\n #social-tab-desktops {\n position: relative;\n display: flex;\n left: 0px;\n }\n @media screen and (max-width: 1199px) {\n #search-content-desktop {\n display: none !important;\n }\n }\n #search-content-desktop {\n display: flex;\n padding-top: 1px;\n height: 35px;\n position: absolute;\n right: 5%;\n }\n #search-content-desktop .search-btn-desktop {\n padding: 5px;\n height: 30px;\n width: 30px;\n margin: -1px 5px 0px 0px;\n cursor: pointer;\n }\n\n #search-content-desktop #search-bar-desktop {\n display: none;\n top: 45px;\n background-color: #60bdcd;\n position: relative;\n width: 400px;\n border-radius: 5px;\n height: 48px;\n }\n #search-content-desktop #search-bar-desktop .form-inline {\n padding: 5px;\n }\n #search-content-desktop #search-bar-desktop .form-inline .form-control {\n width: 78%;\n border-radius: 5px;\n }\n #search-content-desktop #search-bar-desktop .form-inline .btn {\n width: 20%;\n border-radius: 5px;\n padding: 7px;\n margin-left: 5px;\n padding: 1px;\n }\n .show {\n display: block !important;\n }\n .active-search {\n border-radius: 5px;\n background-color: #60bdcd;\n border: 1px solid var(--secondary);\n }\n '
238
+ )
239
+ );
240
+ }
241
+ };
242
+
51
243
  return React__default.createElement(
52
244
  'section',
53
245
  { ref: ref },
@@ -71,11 +263,37 @@ var NavNormal = function NavNormal(props) {
71
263
  ),
72
264
  React__default.createElement(
73
265
  Navbar,
74
- { variant: 'dark', expand: 'lg', bg: 'primary' },
266
+ { id: 'navbar-normal', variant: 'dark', expand: 'lg', bg: 'primary', ref: navRef },
75
267
  React__default.createElement(
76
268
  Container,
77
269
  null,
78
- React__default.createElement(Navbar.Toggle, { 'aria-controls': 'basic-navbar-nav' }),
270
+ React__default.createElement(Navbar.Toggle, {
271
+ 'aria-controls': 'basic-navbar-nav',
272
+ onClick: function onClick() {
273
+ var searchBar = document.getElementById('search-bar-mobile');
274
+ var searchBtn = document.getElementsByClassName('search-btn-mobile');
275
+ if (searchBar && searchBar.classList) {
276
+ searchBar.classList.remove('show');
277
+ }
278
+ if (searchBtn && searchBtn[0].classList) {
279
+ searchBtn[0].classList.remove('active-search');
280
+ }
281
+ }
282
+ }),
283
+ React__default.createElement(
284
+ 'div',
285
+ { className: 'site-logo-wrapper', style: { display: 'none' } },
286
+ React__default.createElement(
287
+ 'a',
288
+ { href: '/' },
289
+ React__default.createElement('img', { src: logo })
290
+ ),
291
+ React__default.createElement(
292
+ 'style',
293
+ { jsx: 'true' },
294
+ '\n @media screen and (max-width: 1199px) {\n .site-logo-wrapper {\n display: block !important;\n margin: auto;\n margin-top: 10px;\n }\n #desktop-logo {\n display: none;\n }\n .site-logo-wrapper img {\n object-fit: contain;\n max-height: 45px;\n }\n .nav-mobile-logo {\n display: none !important;\n }\n @media screen and (max-width: 420px) {\n .site-logo-wrapper img {\n max-width: 200px;\n }\n }\n }\n '
295
+ )
296
+ ),
79
297
  React__default.createElement(
80
298
  Navbar.Collapse,
81
299
  { id: 'basic-navbar-nav' },
@@ -110,7 +328,8 @@ var NavNormal = function NavNormal(props) {
110
328
  })
111
329
  )
112
330
  ),
113
- React__default.createElement(Search, null)
331
+ socialSearchComponent('mobile'),
332
+ socialSearchComponent('desktop')
114
333
  )
115
334
  ),
116
335
  React__default.createElement(
@@ -7,9 +7,9 @@ var React = require('react');
7
7
  var React__default = _interopDefault(React);
8
8
  var moment = require('./moment-66a6a284.js');
9
9
  var index$1 = require('./index-b5eb3ff8.js');
10
- require('./iconBase-637d3f1e.js');
10
+ require('./iconBase-68959171.js');
11
11
  require('react-bootstrap/Badge');
12
- require('./index.esm-25423c2f.js');
12
+ require('./index.esm-89fabc47.js');
13
13
 
14
14
  var OncliveHero = function OncliveHero(props) {
15
15
  var client = props.client;
@@ -4,8 +4,8 @@ function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'defau
4
4
 
5
5
  var React = require('react');
6
6
  var React__default = _interopDefault(React);
7
- require('./iconBase-637d3f1e.js');
8
- var index_esm$1 = require('./index.esm-c0d8b44b.js');
7
+ require('./iconBase-68959171.js');
8
+ var index_esm$1 = require('./index.esm-66ffa47a.js');
9
9
 
10
10
  var PdfDownload = function PdfDownload(props) {
11
11
  return React__default.createElement(
@@ -30,8 +30,8 @@ require('./_arrayMap-3b4a0f75.js');
30
30
  require('./get-5dfcdc33.js');
31
31
  require('./react-social-icons-cd0d9d3b.js');
32
32
  require('react-bootstrap');
33
- require('./iconBase-637d3f1e.js');
34
- require('./index.esm-fcdbd2c6.js');
33
+ require('./iconBase-68959171.js');
34
+ require('./index.esm-fbd1f7e9.js');
35
35
  require('react-bootstrap/Button');
36
36
  var Column1 = require('./Column1.js');
37
37
  require('./SideFooter.js');
@@ -48,12 +48,12 @@ var Header = require('./Header.js');
48
48
  require('react-bootstrap/Nav');
49
49
  require('react-bootstrap/Navbar');
50
50
  require('react-bootstrap/NavDropdown');
51
- require('./index.esm-c0d8b44b.js');
52
- require('react-bootstrap/Form');
53
- require('react-bootstrap/FormControl');
54
- require('./Search.js');
51
+ require('./index.esm-66ffa47a.js');
55
52
  require('./NavFooter-76c913e3.js');
56
53
  require('./SocialNavFooter-9a07520f.js');
54
+ require('./index.esm-0e5c6a9e.js');
55
+ require('react-bootstrap/Form');
56
+ require('react-bootstrap/FormControl');
57
57
  var NavMagazine = require('./NavMagazine.js');
58
58
  var NavNative = require('./NavNative.js');
59
59
  var NavNormal = require('./NavNormal.js');
@@ -98,7 +98,7 @@ var TemplateNormal = function TemplateNormal(props) {
98
98
  var navigation = function navigation() {
99
99
  switch (config.navComponent) {
100
100
  case 'normal':
101
- return React__default.createElement(NavNormal.NavNormal, { logo: website.logo, dataObject: config.navItems });
101
+ return React__default.createElement(NavNormal.NavNormal, { logo: website.logo, dataObject: config.navItems, website: website });
102
102
  case 'magazine':
103
103
  return React__default.createElement(NavMagazine.default, { logo: website.logo, mobileLogo: website.mobileLogo, dataObject: config.navItems, subNav: config.leftItems, website: website });
104
104
  case 'native':