@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
@@ -13,16 +13,17 @@ import './stringify-e30bc114.js';
13
13
  import './asyncToGenerator-0379e924.js';
14
14
  import './_set-species-6f64f1c1.js';
15
15
  import { S as Segment } from './beam-a25bd8fd.js';
16
- import './react-social-icons-a7d5c5c7.js';
17
- import 'react-bootstrap/Button';
16
+ import { r as reactSocialIcons_1 } from './react-social-icons-a7d5c5c7.js';
17
+ import { I as IconContext } from './iconBase-602d52fe.js';
18
+ import Button from 'react-bootstrap/Button';
18
19
  import Nav from 'react-bootstrap/Nav';
19
20
  import Navbar from 'react-bootstrap/Navbar';
20
21
  import NavDropdown from 'react-bootstrap/NavDropdown';
21
- import 'react-bootstrap/Form';
22
- import 'react-bootstrap/FormControl';
23
- import Search from './Search.js';
24
22
  import { N as NavFooter } from './NavFooter-e27bd93b.js';
25
23
  import { S as SocialNavFooter } from './SocialNavFooter-4fb16720.js';
24
+ import { G as GoSearch } from './index.esm-16536e81.js';
25
+ import Form from 'react-bootstrap/Form';
26
+ import FormControl from 'react-bootstrap/FormControl';
26
27
 
27
28
  var NavNative = function NavNative(props) {
28
29
  /*
@@ -48,6 +49,8 @@ var NavNative = function NavNative(props) {
48
49
  socialFooterNav = _props$socialFooterNa === undefined ? false : _props$socialFooterNa;
49
50
 
50
51
  var navRef = useRef(null);
52
+ // reference to mobile search component
53
+ var searchRef = useRef(null);
51
54
 
52
55
  var _useState = useState(false),
53
56
  _useState2 = _slicedToArray(_useState, 2),
@@ -60,6 +63,12 @@ var NavNative = function NavNative(props) {
60
63
  setScreenWidth = _useState4[1];
61
64
 
62
65
  useEffect(function () {
66
+ // handling the top mast component
67
+ var topNavHeight = document.querySelector('.nav-brands') && document.querySelector('.nav-brands').offsetHeight;
68
+
69
+ // Setting the top of the search component based on the offset of navigation component.
70
+ searchRef.current.style.top = (topNavHeight ? topNavHeight + navRef.current.offsetHeight : navRef.current.offsetHeight) + 1 + 'px';
71
+
63
72
  document.addEventListener('scroll', trackScrolling);
64
73
  return function () {
65
74
  document.removeEventListener('scroll', trackScrolling);
@@ -81,6 +90,148 @@ var NavNative = function NavNative(props) {
81
90
  }
82
91
  };
83
92
 
93
+ // Search Term
94
+
95
+ var _useState5 = useState(''),
96
+ _useState6 = _slicedToArray(_useState5, 2),
97
+ searchKey = _useState6[0],
98
+ setSearchKey = _useState6[1];
99
+
100
+ // Search function
101
+
102
+
103
+ var submitSearch = function submitSearch(e) {
104
+ e.preventDefault();
105
+ window.location.href = '/search?searchTerm=' + searchKey;
106
+ };
107
+
108
+ // Toggling class of an element.Can't use toggle() as IE doesn't support toggle()
109
+ var toggleClass = function toggleClass(selector, type, addOn) {
110
+ if (type === 'id') {
111
+ var searchBar = document.getElementById(selector);
112
+ if (searchBar && searchBar.classList && searchBar.classList.contains(addOn)) {
113
+ searchBar.classList.remove(addOn);
114
+ } else if (searchBar && searchBar.classList) {
115
+ searchBar.classList.add(addOn);
116
+ }
117
+ } else if (type === 'class') {
118
+ var searchBtn = document.getElementsByClassName(selector)[0];
119
+ if (searchBtn && searchBtn.classList && searchBtn.classList.contains(addOn)) {
120
+ searchBtn.classList.remove(addOn);
121
+ } else if (searchBtn && searchBtn.classList) {
122
+ searchBtn.classList.add(addOn);
123
+ }
124
+ }
125
+ };
126
+
127
+ // Search Component
128
+ var socialSearchComponent = function socialSearchComponent(type) {
129
+ if (type === 'mobile') {
130
+ return React__default.createElement(
131
+ 'div',
132
+ { id: 'search-content-mobile' },
133
+ React__default.createElement(
134
+ 'div',
135
+ { id: 'search-bar-mobile', ref: searchRef },
136
+ React__default.createElement(
137
+ Form,
138
+ { inline: true, onSubmit: function onSubmit(e) {
139
+ return submitSearch(e);
140
+ } },
141
+ React__default.createElement(FormControl, { placeholder: 'Search', type: 'text', value: searchKey, onChange: function onChange(e) {
142
+ return setSearchKey(e.target.value);
143
+ } }),
144
+ React__default.createElement(
145
+ Button,
146
+ { variant: 'primary', style: { backgroundColor: 'var(--primary)' }, onClick: function onClick(e) {
147
+ return submitSearch(e);
148
+ } },
149
+ 'Search'
150
+ )
151
+ )
152
+ ),
153
+ React__default.createElement(
154
+ IconContext.Provider,
155
+ { value: { color: 'white', className: 'search-btn-mobile', size: '50px' } },
156
+ React__default.createElement(GoSearch, {
157
+ onClick: function onClick() {
158
+ var navToggle = document.getElementsByClassName('navbar-toggler')[0];
159
+ if (navToggle && navToggle.classList && !navToggle.classList.contains('collapsed')) {
160
+ var nav = document.querySelectorAll('.navbar-collapse');
161
+ for (var i = 0; i < nav.length; i++) {
162
+ if (nav[i] && nav[i].classList) nav[i].classList.remove('show');
163
+ }
164
+ if (navToggle && navToggle.classList) navToggle.classList.add('collapsed');
165
+ }
166
+
167
+ toggleClass('search-bar-mobile', 'id', 'show');
168
+ toggleClass('search-btn-mobile', 'class', 'active-search');
169
+ }
170
+ })
171
+ ),
172
+ React__default.createElement(
173
+ 'style',
174
+ { jsx: 'true' },
175
+ '\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 '
176
+ )
177
+ );
178
+ } else if (type === 'desktop') {
179
+ return React__default.createElement(
180
+ 'div',
181
+ { id: 'search-content-desktop' },
182
+ React__default.createElement(
183
+ 'div',
184
+ { id: 'search-bar-desktop' },
185
+ React__default.createElement(
186
+ Form,
187
+ { inline: true, onSubmit: function onSubmit(e) {
188
+ return submitSearch(e);
189
+ } },
190
+ React__default.createElement(FormControl, { placeholder: 'Search', type: 'text', value: searchKey, onChange: function onChange(e) {
191
+ return setSearchKey(e.target.value);
192
+ } }),
193
+ React__default.createElement(
194
+ Button,
195
+ { variant: 'primary', style: { backgroundColor: 'var(--primary)' }, onClick: function onClick(e) {
196
+ return submitSearch(e);
197
+ } },
198
+ 'Search'
199
+ )
200
+ )
201
+ ),
202
+ React__default.createElement(
203
+ IconContext.Provider,
204
+ { value: { color: 'white', className: 'search-btn-desktop', size: '50px' } },
205
+ React__default.createElement(GoSearch, {
206
+ onClick: function onClick() {
207
+ toggleClass('search-bar-desktop', 'id', 'show');
208
+ toggleClass('search-btn-desktop', 'class', 'active-search');
209
+ }
210
+ })
211
+ ),
212
+ website && website.socialLinks && website.socialLinks.length !== 0 && React__default.createElement(
213
+ 'div',
214
+ { id: 'social-tab-desktop' },
215
+ website.socialLinks && website.socialLinks.map(function (row, index) {
216
+ return React__default.createElement(reactSocialIcons_1, {
217
+ target: row.blank ? '_blank' : '_self',
218
+ rel: 'noopener noreferrer',
219
+ key: index,
220
+ index: index,
221
+ url: row.url,
222
+ style: { width: 25, height: 25, marginRight: 3 }
223
+ });
224
+ })
225
+ ),
226
+ React__default.createElement(
227
+ 'style',
228
+ { jsx: 'true' },
229
+ '\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 '
230
+ )
231
+ );
232
+ }
233
+ };
234
+
84
235
  return React__default.createElement(
85
236
  React__default.Fragment,
86
237
  null,
@@ -108,19 +259,45 @@ var NavNative = function NavNative(props) {
108
259
  ),
109
260
  React__default.createElement(
110
261
  'div',
111
- { className: 'nav-toggle' },
112
- React__default.createElement(Navbar.Toggle, { 'aria-controls': 'basic-navbar-nav' }),
262
+ { className: 'nav-toggle', style: { width: 'auto' } },
263
+ React__default.createElement(Navbar.Toggle, {
264
+ 'aria-controls': 'basic-navbar-nav',
265
+ onClick: function onClick() {
266
+ var searchBar = document.getElementById('search-bar-mobile');
267
+ var searchBtn = document.getElementsByClassName('search-btn-mobile');
268
+ if (searchBar && searchBar.classList) {
269
+ searchBar.classList.remove('show');
270
+ }
271
+ if (searchBtn && searchBtn[0].classList) {
272
+ searchBtn[0].classList.remove('active-search');
273
+ }
274
+ }
275
+ }),
113
276
  React__default.createElement(
114
277
  Navbar.Brand,
115
278
  { id: 'nav-mobile-md', className: 'nav-mobile-logo' },
116
279
  React__default.createElement(
117
280
  'a',
118
281
  { href: '/' },
119
- 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' })
282
+ 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' })
120
283
  )
284
+ )
285
+ ),
286
+ React__default.createElement(
287
+ 'div',
288
+ { className: 'site-logo-wrapper', style: { display: 'none' } },
289
+ React__default.createElement(
290
+ 'a',
291
+ { href: '/' },
292
+ React__default.createElement('img', { src: logo })
121
293
  ),
122
- React__default.createElement(Search, { device: 'mobile' })
294
+ React__default.createElement(
295
+ 'style',
296
+ { jsx: 'true' },
297
+ '\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 '
298
+ )
123
299
  ),
300
+ socialSearchComponent('mobile'),
124
301
  subNav && React__default.createElement(
125
302
  Navbar.Collapse,
126
303
  { id: 'basic-navbar-sub' },
@@ -235,8 +412,7 @@ var NavNative = function NavNative(props) {
235
412
  ) : null;
236
413
  }
237
414
  })
238
- ),
239
- React__default.createElement(Search, { device: 'mobile' })
415
+ )
240
416
  ),
241
417
  website && React__default.createElement(
242
418
  Navbar.Collapse,
@@ -246,7 +422,8 @@ var NavNative = function NavNative(props) {
246
422
  { className: 'mr-auto' },
247
423
  socialFooterNav ? React__default.createElement(SocialNavFooter, { website: website }) : React__default.createElement(NavFooter, { website: website })
248
424
  )
249
- )
425
+ ),
426
+ socialSearchComponent('desktop')
250
427
  )
251
428
  ),
252
429
  React__default.createElement(
@@ -261,7 +438,7 @@ var NavNative = function NavNative(props) {
261
438
  React__default.createElement(
262
439
  'style',
263
440
  { jsx: 'true' },
264
- '\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 '
441
+ '\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 '
265
442
  )
266
443
  );
267
444
  };
@@ -4,22 +4,24 @@ import './core.get-iterator-method-f5c0d66a.js';
4
4
  import './_library-528f1934.js';
5
5
  import './_iter-detect-6e099a34.js';
6
6
  import './web.dom.iterable-46c95e52.js';
7
- import React__default, { useRef, useEffect } from 'react';
7
+ import React__default, { useRef, useState, useEffect } from 'react';
8
+ import 'prop-types';
8
9
  import Container from 'react-bootstrap/Container';
9
- import './slicedToArray-f1e40361.js';
10
+ import { _ as _slicedToArray } from './slicedToArray-f1e40361.js';
10
11
  import './stringify-e30bc114.js';
11
12
  import './asyncToGenerator-0379e924.js';
12
13
  import './_set-species-6f64f1c1.js';
13
14
  import { S as Segment } from './beam-a25bd8fd.js';
14
- import './iconBase-6ee2f2fb.js';
15
- import 'react-bootstrap/Button';
15
+ import { r as reactSocialIcons_1 } from './react-social-icons-a7d5c5c7.js';
16
+ import { I as IconContext } from './iconBase-602d52fe.js';
17
+ import Button from 'react-bootstrap/Button';
16
18
  import Nav from 'react-bootstrap/Nav';
17
19
  import Navbar from 'react-bootstrap/Navbar';
18
20
  import NavDropdown from 'react-bootstrap/NavDropdown';
19
- import { M as MdEmail, a as MdMouse } from './index.esm-9d6faf80.js';
20
- import 'react-bootstrap/Form';
21
- import 'react-bootstrap/FormControl';
22
- import Search from './Search.js';
21
+ import { M as MdEmail, a as MdMouse } from './index.esm-b08f4b04.js';
22
+ import { G as GoSearch } from './index.esm-16536e81.js';
23
+ import Form from 'react-bootstrap/Form';
24
+ import FormControl from 'react-bootstrap/FormControl';
23
25
 
24
26
  var NavNormal = function NavNormal(props) {
25
27
  var logo = props.logo,
@@ -29,6 +31,63 @@ var NavNormal = function NavNormal(props) {
29
31
 
30
32
 
31
33
  var ref = useRef(null);
34
+ // reference to mobile search component
35
+ var searchRef = useRef(null);
36
+ // reference to navigation component
37
+ var navRef = useRef(null);
38
+ // reference to desktop search component
39
+
40
+ var _useState = useState(''),
41
+ _useState2 = _slicedToArray(_useState, 2),
42
+ searchKey = _useState2[0],
43
+ setSearchKey = _useState2[1];
44
+
45
+ useEffect(function () {
46
+ // Setting the top of the search component based on the offset of navigation component.
47
+ searchRef.current.style.top = navRef.current.offsetHeight + 1 + 'px';
48
+ }, []);
49
+
50
+ useEffect(function () {
51
+ // Making the search and navbar Sticky on scroll
52
+ var navOffsetTop = document.getElementById('navbar-normal').offsetTop;
53
+ if (window.pageYOffset > navOffsetTop) {
54
+ if (navRef.current && navRef.current.style) {
55
+ navRef.current.style.position = 'fixed';
56
+ navRef.current.style.top = 0;
57
+ navRef.current.style.width = '100%';
58
+ navRef.current.style.zIndex = '99999';
59
+ searchRef.current.style.position = 'fixed';
60
+ searchRef.current.style.top = navRef.current.offsetHeight + 1 + 'px';
61
+ searchRef.current.style.zIndex = '99999';
62
+ searchRef.current.style.width = '100%';
63
+ }
64
+ }
65
+ var stickyNav = window.addEventListener('scroll', function () {
66
+ if (window.pageYOffset > navOffsetTop) {
67
+ if (navRef.current && navRef.current.style) {
68
+ navRef.current.style.position = 'fixed';
69
+ navRef.current.style.top = 0;
70
+ navRef.current.style.width = '100%';
71
+ navRef.current.style.zIndex = '99999';
72
+ searchRef.current.style.position = 'fixed';
73
+ searchRef.current.style.top = navRef.current.offsetHeight + 1 + 'px';
74
+ searchRef.current.style.zIndex = '99999';
75
+ searchRef.current.style.width = '100%';
76
+ }
77
+ } else {
78
+ if (navRef.current && navRef.current.style) {
79
+ navRef.current.style.position = 'relative';
80
+ navRef.current.style.top = '';
81
+ searchRef.current.style.position = 'fixed';
82
+ searchRef.current.style.top = navRef.current.offsetHeight + 1 + 'px';
83
+ searchRef.current.style.width = '100%';
84
+ }
85
+ }
86
+ });
87
+ return function () {
88
+ window.removeEventListener('scroll', stickyNav);
89
+ };
90
+ }, []);
32
91
 
33
92
  useEffect(function () {
34
93
  Segment.init(); // auto init if not done yet
@@ -41,6 +100,139 @@ var NavNormal = function NavNormal(props) {
41
100
  }
42
101
  }, []);
43
102
 
103
+ // Search function
104
+ var submitSearch = function submitSearch(e) {
105
+ e.preventDefault();
106
+ window.location.href = '/search?searchTerm=' + searchKey;
107
+ };
108
+
109
+ // Toggling class of an element.Can't use toggle() as IE doesn't support toggle()
110
+ var toggleClass = function toggleClass(selector, type, addOn) {
111
+ if (type === 'id') {
112
+ var searchBar = document.getElementById(selector);
113
+ if (searchBar && searchBar.classList && searchBar.classList.contains(addOn)) {
114
+ searchBar.classList.remove(addOn);
115
+ } else if (searchBar && searchBar.classList) {
116
+ searchBar.classList.add(addOn);
117
+ }
118
+ } else if (type === 'class') {
119
+ var searchBtn = document.getElementsByClassName(selector)[0];
120
+ if (searchBtn && searchBtn.classList && searchBtn.classList.contains(addOn)) {
121
+ searchBtn.classList.remove(addOn);
122
+ } else if (searchBtn && searchBtn.classList) {
123
+ searchBtn.classList.add(addOn);
124
+ }
125
+ }
126
+ };
127
+
128
+ // Search Component
129
+ var socialSearchComponent = function socialSearchComponent(type) {
130
+ if (type === 'mobile') {
131
+ return React__default.createElement(
132
+ 'div',
133
+ { id: 'search-content-mobile' },
134
+ React__default.createElement(
135
+ 'div',
136
+ { id: 'search-bar-mobile', ref: searchRef },
137
+ React__default.createElement(
138
+ Form,
139
+ { inline: true, onSubmit: function onSubmit(e) {
140
+ return submitSearch(e);
141
+ } },
142
+ React__default.createElement(FormControl, { placeholder: 'Search', type: 'text', value: searchKey, onChange: function onChange(e) {
143
+ return setSearchKey(e.target.value);
144
+ } }),
145
+ React__default.createElement(
146
+ Button,
147
+ { variant: 'primary', style: { backgroundColor: 'var(--primary)' }, onClick: function onClick(e) {
148
+ return submitSearch(e);
149
+ } },
150
+ 'Search'
151
+ )
152
+ )
153
+ ),
154
+ React__default.createElement(
155
+ IconContext.Provider,
156
+ { value: { color: 'white', className: 'search-btn-mobile', size: '50px' } },
157
+ React__default.createElement(GoSearch, {
158
+ onClick: function onClick() {
159
+ var navToggle = document.getElementsByClassName('navbar-toggler')[0];
160
+ if (navToggle && navToggle.classList && !navToggle.classList.contains('collapsed')) {
161
+ var nav = document.querySelectorAll('.navbar-collapse');
162
+ for (var i = 0; i < nav.length; i++) {
163
+ if (nav[i] && nav[i].classList) nav[i].classList.remove('show');
164
+ }
165
+ if (navToggle && navToggle.classList) navToggle.classList.add('collapsed');
166
+ }
167
+
168
+ toggleClass('search-bar-mobile', 'id', 'show');
169
+ toggleClass('search-btn-mobile', 'class', 'active-search');
170
+ }
171
+ })
172
+ ),
173
+ React__default.createElement(
174
+ 'style',
175
+ { jsx: 'true' },
176
+ '\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 '
177
+ )
178
+ );
179
+ } else if (type === 'desktop') {
180
+ return React__default.createElement(
181
+ 'div',
182
+ { id: 'search-content-desktop' },
183
+ React__default.createElement(
184
+ 'div',
185
+ { id: 'search-bar-desktop' },
186
+ React__default.createElement(
187
+ Form,
188
+ { inline: true, onSubmit: function onSubmit(e) {
189
+ return submitSearch(e);
190
+ } },
191
+ React__default.createElement(FormControl, { placeholder: 'Search', type: 'text', value: searchKey, onChange: function onChange(e) {
192
+ return setSearchKey(e.target.value);
193
+ } }),
194
+ React__default.createElement(
195
+ Button,
196
+ { variant: 'primary', style: { backgroundColor: 'var(--primary)' }, onClick: function onClick(e) {
197
+ return submitSearch(e);
198
+ } },
199
+ 'Search'
200
+ )
201
+ )
202
+ ),
203
+ React__default.createElement(
204
+ IconContext.Provider,
205
+ { value: { color: 'white', className: 'search-btn-desktop', size: '50px' } },
206
+ React__default.createElement(GoSearch, {
207
+ onClick: function onClick() {
208
+ toggleClass('search-bar-desktop', 'id', 'show');
209
+ toggleClass('search-btn-desktop', 'class', 'active-search');
210
+ }
211
+ })
212
+ ),
213
+ website && website.siteSettingCache && website.siteSettingCache.socialLinks && website.siteSettingCache.socialLinks.length !== 0 && React__default.createElement(
214
+ 'div',
215
+ { id: 'social-tab-desktop' },
216
+ website.siteSettingCache.socialLinks && website.siteSettingCache.socialLinks.map(function (row, index) {
217
+ return React__default.createElement(reactSocialIcons_1, {
218
+ target: row.blank ? '_blank' : '_self',
219
+ rel: 'noopener noreferrer',
220
+ key: index,
221
+ index: index,
222
+ url: row.url,
223
+ style: { width: 25, height: 25, marginRight: 3 }
224
+ });
225
+ })
226
+ ),
227
+ React__default.createElement(
228
+ 'style',
229
+ { jsx: 'true' },
230
+ '\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 '
231
+ )
232
+ );
233
+ }
234
+ };
235
+
44
236
  return React__default.createElement(
45
237
  'section',
46
238
  { ref: ref },
@@ -64,11 +256,37 @@ var NavNormal = function NavNormal(props) {
64
256
  ),
65
257
  React__default.createElement(
66
258
  Navbar,
67
- { variant: 'dark', expand: 'lg', bg: 'primary' },
259
+ { id: 'navbar-normal', variant: 'dark', expand: 'lg', bg: 'primary', ref: navRef },
68
260
  React__default.createElement(
69
261
  Container,
70
262
  null,
71
- React__default.createElement(Navbar.Toggle, { 'aria-controls': 'basic-navbar-nav' }),
263
+ React__default.createElement(Navbar.Toggle, {
264
+ 'aria-controls': 'basic-navbar-nav',
265
+ onClick: function onClick() {
266
+ var searchBar = document.getElementById('search-bar-mobile');
267
+ var searchBtn = document.getElementsByClassName('search-btn-mobile');
268
+ if (searchBar && searchBar.classList) {
269
+ searchBar.classList.remove('show');
270
+ }
271
+ if (searchBtn && searchBtn[0].classList) {
272
+ searchBtn[0].classList.remove('active-search');
273
+ }
274
+ }
275
+ }),
276
+ React__default.createElement(
277
+ 'div',
278
+ { className: 'site-logo-wrapper', style: { display: 'none' } },
279
+ React__default.createElement(
280
+ 'a',
281
+ { href: '/' },
282
+ React__default.createElement('img', { src: logo })
283
+ ),
284
+ React__default.createElement(
285
+ 'style',
286
+ { jsx: 'true' },
287
+ '\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 '
288
+ )
289
+ ),
72
290
  React__default.createElement(
73
291
  Navbar.Collapse,
74
292
  { id: 'basic-navbar-nav' },
@@ -103,7 +321,8 @@ var NavNormal = function NavNormal(props) {
103
321
  })
104
322
  )
105
323
  ),
106
- React__default.createElement(Search, null)
324
+ socialSearchComponent('mobile'),
325
+ socialSearchComponent('desktop')
107
326
  )
108
327
  ),
109
328
  React__default.createElement(
@@ -2,9 +2,9 @@ import './_commonjsHelpers-0c4b6f40.js';
2
2
  import React__default from 'react';
3
3
  import { m as moment } from './moment-12415288.js';
4
4
  import { i as imageUrlBuilder } from './index-51a80699.js';
5
- import './iconBase-6ee2f2fb.js';
5
+ import './iconBase-602d52fe.js';
6
6
  import 'react-bootstrap/Badge';
7
- import './index.esm-a7ad65ba.js';
7
+ import './index.esm-9a4c8813.js';
8
8
 
9
9
  var OncliveHero = function OncliveHero(props) {
10
10
  var client = props.client;
@@ -1,6 +1,6 @@
1
1
  import React__default from 'react';
2
- import './iconBase-6ee2f2fb.js';
3
- import { b as MdPictureAsPdf } from './index.esm-9d6faf80.js';
2
+ import './iconBase-602d52fe.js';
3
+ import { b as MdPictureAsPdf } from './index.esm-b08f4b04.js';
4
4
 
5
5
  var PdfDownload = function PdfDownload(props) {
6
6
  return React__default.createElement(
@@ -24,8 +24,8 @@ import './_arrayMap-64cbe0e4.js';
24
24
  import './get-0eb56363.js';
25
25
  import './react-social-icons-a7d5c5c7.js';
26
26
  import 'react-bootstrap';
27
- import './iconBase-6ee2f2fb.js';
28
- import './index.esm-b97cf389.js';
27
+ import './iconBase-602d52fe.js';
28
+ import './index.esm-4b1d94b7.js';
29
29
  import 'react-bootstrap/Button';
30
30
  import { Column1 } from './Column1.js';
31
31
  import './SideFooter.js';
@@ -42,12 +42,12 @@ import Header from './Header.js';
42
42
  import 'react-bootstrap/Nav';
43
43
  import 'react-bootstrap/Navbar';
44
44
  import 'react-bootstrap/NavDropdown';
45
- import './index.esm-9d6faf80.js';
46
- import 'react-bootstrap/Form';
47
- import 'react-bootstrap/FormControl';
48
- import './Search.js';
45
+ import './index.esm-b08f4b04.js';
49
46
  import './NavFooter-e27bd93b.js';
50
47
  import './SocialNavFooter-4fb16720.js';
48
+ import './index.esm-16536e81.js';
49
+ import 'react-bootstrap/Form';
50
+ import 'react-bootstrap/FormControl';
51
51
  import MagazineNav from './NavMagazine.js';
52
52
  import { NavNative } from './NavNative.js';
53
53
  import { NavNormal } from './NavNormal.js';
@@ -92,7 +92,7 @@ var TemplateNormal = function TemplateNormal(props) {
92
92
  var navigation = function navigation() {
93
93
  switch (config.navComponent) {
94
94
  case 'normal':
95
- return React__default.createElement(NavNormal, { logo: website.logo, dataObject: config.navItems });
95
+ return React__default.createElement(NavNormal, { logo: website.logo, dataObject: config.navItems, website: website });
96
96
  case 'magazine':
97
97
  return React__default.createElement(MagazineNav, { logo: website.logo, mobileLogo: website.mobileLogo, dataObject: config.navItems, subNav: config.leftItems, website: website });
98
98
  case 'native':
@@ -5,9 +5,9 @@ import './web.dom.iterable-46c95e52.js';
5
5
  import React__default, { useState, useRef, useEffect } from 'react';
6
6
  import { m as main_39 } from './main-7255814e.js';
7
7
  import { _ as _slicedToArray } from './slicedToArray-f1e40361.js';
8
- import './iconBase-6ee2f2fb.js';
9
- import { d as IoIosOpen } from './index.esm-b97cf389.js';
10
- import { F as FaRegWindowClose } from './index.esm-a7ad65ba.js';
8
+ import './iconBase-602d52fe.js';
9
+ import { d as IoIosOpen } from './index.esm-4b1d94b7.js';
10
+ import { F as FaRegWindowClose } from './index.esm-9a4c8813.js';
11
11
 
12
12
  var Ustream = function Ustream(_ref) {
13
13
  var _ref$width = _ref.width,