@mjhls/mjh-framework 1.0.233 → 1.0.234

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/dist/esm/index.js CHANGED
@@ -1,21 +1,21 @@
1
- import React__default, { useState, useRef, useEffect } from 'react';
1
+ import React__default, { useState, useEffect, useRef } from 'react';
2
2
  import { c as createCommonjsModule, u as unwrapExports, a as commonjsGlobal } from './_commonjsHelpers-ae1b5db5.js';
3
3
  import { l as lib_3, a as lib_1 } from './index-70f7c966.js';
4
4
  import PropTypes from 'prop-types';
5
5
  import Container from 'react-bootstrap/Container';
6
6
  import Row from 'react-bootstrap/Row';
7
7
  import Col from 'react-bootstrap/Col';
8
- import Card from 'react-bootstrap/Card';
9
- import { I as InfiniteScroll, V as VisibilitySensor, m as moment } from './visibility-sensor-675d3fa1.js';
8
+ import 'react-bootstrap/Card';
9
+ import { m as moment, I as InfiniteScroll, V as VisibilitySensor } from './visibility-sensor-675d3fa1.js';
10
10
  import Link from 'next/link';
11
- import Router, { withRouter, useRouter } from 'next/router';
11
+ import Router, { useRouter } from 'next/router';
12
12
  import { d as debounce_1 } from './debounce-dc0c02e5.js';
13
13
  import 'react-dom';
14
14
  import { i as imageUrlBuilder } from './index-ca4ff5cb.js';
15
15
  import './index-3c1ee9ab.js';
16
16
  import { m as main_36, a as main_35 } from './main-cd81c243.js';
17
17
  import { h as html_decode_1, c as clean_html_1 } from './entities-e85d3a4a.js';
18
- import { i as inherits$2, c as createClass, a as classCallCheck, p as possibleConstructorReturn, _ as _extends$2, t as toConsumableArray, s as slicedToArray } from './_babelHelpers-67c05996.js';
18
+ import { s as slicedToArray, _ as _extends$2, t as toConsumableArray, i as inherits$2, c as createClass, a as classCallCheck, p as possibleConstructorReturn } from './_babelHelpers-67c05996.js';
19
19
  import { D as DFPAdSlot } from './AdSlot-0ea49f7e.js';
20
20
  export { D as AdSlot } from './AdSlot-0ea49f7e.js';
21
21
  export { default as DeckContent } from './DeckContent.js';
@@ -30,7 +30,7 @@ import GroupDeck from './GroupDeck.js';
30
30
  export { default as GroupDeck } from './GroupDeck.js';
31
31
  import { g as getYoutubeId } from './YoutubeGroup-1368335c.js';
32
32
  export { Y as YoutubeGroup } from './YoutubeGroup-1368335c.js';
33
- import { Figure, Carousel, Table, Button as Button$1, ProgressBar, Card as Card$1 } from 'react-bootstrap';
33
+ import { Figure, Carousel, Table, Button as Button$1, ProgressBar, Card } from 'react-bootstrap';
34
34
  export { default as QueueDeckExpanded } from './QueueDeckExpanded.js';
35
35
  import { I as IoMdArrowDropdown } from './index.esm-536609db.js';
36
36
  export { default as VideoSeriesListing } from './VideoSeriesListing.js';
@@ -40,6 +40,7 @@ export { default as PublicationDeck } from './PublicationDeck.js';
40
40
  export { default as IssueDeck } from './IssueDeck.js';
41
41
  import 'react-bootstrap/Badge';
42
42
  export { default as IssueContentDeck } from './IssueContentDeck.js';
43
+ import Spinner from 'react-bootstrap/Spinner';
43
44
  import { M as MdPictureAsPdf, T as TemplateNormal } from './Normal-20ff5bf5.js';
44
45
  export { A as AD728x90, C as Column1, a as Column2, b as Column3, f as HamMagazine, H as Header, L as LeftNav, e as NavDvm, c as NavMagazine, N as NavNative, d as NavNormal, P as PageFilter, S as Search, g as SideFooter, T as TemplateNormal } from './Normal-20ff5bf5.js';
45
46
  import 'react-bootstrap/ListGroup';
@@ -60,376 +61,431 @@ import Dropdown from 'react-bootstrap/Dropdown';
60
61
  import { F as FaLongArrowAltRight } from './Ustream-6bb45fe7.js';
61
62
  export { U as Ustream } from './Ustream-6bb45fe7.js';
62
63
 
63
- var EventsDeck = function (_React$Component) {
64
- inherits$2(EventsDeck, _React$Component);
65
-
66
- function EventsDeck() {
67
- var _ref;
64
+ var clientId = process.env.CVENT_CLIENT_ID;
65
+ var clientSecret = process.env.CVENT_CLIENT_SECRET;
66
+ var corsProxy = 'https://cors-anywhere.herokuapp.com/';
67
+ var currentTime = moment().toISOString();
68
+
69
+ var EventsDeck = function EventsDeck(_ref) {
70
+ var _ref$autoScroll = _ref.autoScroll,
71
+ autoScroll = _ref$autoScroll === undefined ? true : _ref$autoScroll,
72
+ rightItems = _ref.rightItems,
73
+ _ref$seoPaginate = _ref.seoPaginate,
74
+ seoPaginate = _ref$seoPaginate === undefined ? true : _ref$seoPaginate,
75
+ pageview = _ref.pageview,
76
+ _ref$filter = _ref.filter,
77
+ filter = _ref$filter === undefined ? 'start gt \'' + currentTime + '\' and status eq \'Active\'' : _ref$filter;
68
78
 
69
- var _temp, _this, _ret;
79
+ var router = useRouter();
70
80
 
71
- classCallCheck(this, EventsDeck);
81
+ var _useState = useState(true),
82
+ _useState2 = slicedToArray(_useState, 2),
83
+ isLoading = _useState2[0],
84
+ setIsLoading = _useState2[1];
72
85
 
73
- for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
74
- args[_key] = arguments[_key];
75
- }
86
+ var _useState3 = useState(null),
87
+ _useState4 = slicedToArray(_useState3, 2),
88
+ accessToken = _useState4[0],
89
+ setAccessToken = _useState4[1];
76
90
 
77
- return _ret = (_temp = (_this = possibleConstructorReturn(this, (_ref = EventsDeck.__proto__ || Object.getPrototypeOf(EventsDeck)).call.apply(_ref, [this].concat(args))), _this), _this.data = _this.props.dataRecord || [], _this.params = _this.props.params, _this.state = {
78
- data: _this.data,
79
- dataKeptToCompareNewDatarecord: _this.data,
80
- page: _this.props.currentPage || 1,
81
- scrolling: true,
82
- currentPage: _this.props.currentPage || 1,
83
- params: _this.params
84
- }, _this.loadMore = debounce_1(function () {
85
- _this.setState(function (prevState) {
86
- return {
87
- page: prevState.page + 1
88
- };
89
- }, _this.loadData);
90
- }, 0), _this.loadData = function () {
91
- var _this$state = _this.state,
92
- data = _this$state.data,
93
- page = _this$state.page,
94
- params = _this$state.params;
95
- var dataHandler = _this.props.dataHandler;
91
+ var _useState5 = useState([]),
92
+ _useState6 = slicedToArray(_useState5, 2),
93
+ data = _useState6[0],
94
+ setData = _useState6[1];
96
95
 
96
+ var _useState7 = useState(null),
97
+ _useState8 = slicedToArray(_useState7, 2),
98
+ nextPagingToken = _useState8[0],
99
+ setNextPagingToken = _useState8[1];
97
100
 
98
- var dataHandlerPromise = new Promise(function (resolve, reject) {
99
- try {
100
- var result = dataHandler(params);
101
- resolve(result);
102
- } catch (e) {
103
- reject(e);
104
- }
105
- });
106
- dataHandlerPromise.then(function (newData) {
107
- _this.loadDataFinished(data, newData, page);
108
- });
109
- }, _this.loadDataFinished = function (data, newData, page) {
110
- var newDataArray = newData.data.map(function (item) {
101
+ var _useState9 = useState(true),
102
+ _useState10 = slicedToArray(_useState9, 2),
103
+ scrolling = _useState10[0],
104
+ setScrolling = _useState10[1];
105
+
106
+ var _useState11 = useState(1),
107
+ _useState12 = slicedToArray(_useState11, 2),
108
+ page = _useState12[0],
109
+ setPage = _useState12[1];
110
+
111
+ var _useState13 = useState(1),
112
+ _useState14 = slicedToArray(_useState13, 2),
113
+ currentPage = _useState14[0],
114
+ setCurrentPage = _useState14[1];
115
+
116
+ var getEvents = function getEvents() {
117
+ var itemsPerPage = 10;
118
+ var url = corsProxy + 'https://api-platform.cvent.com/event/v1/events/filter?limit=' + itemsPerPage;
119
+ fetch(url, {
120
+ headers: {
121
+ Accept: 'application/json',
122
+ 'x-api-key': clientId,
123
+ Authorization: 'Bearer ' + accessToken
124
+ },
125
+ body: JSON.stringify({ filter: filter }),
126
+ method: 'POST'
127
+ }).then(function (response) {
128
+ return response.json();
129
+ }).then(function (events) {
130
+ setIsLoading(false);
131
+ var newData = events.data.map(function (item) {
111
132
  return _extends$2({}, item, {
112
133
  pageNumber: page
113
134
  });
114
135
  });
115
- var newParams = _extends$2({}, _this.state.params, { nextPagingToken: newData.paging.nextToken });
116
- _this.setState(function () {
117
- if (newDataArray.length > 0) {
118
- return {
119
- data: [].concat(toConsumableArray(data), toConsumableArray(newDataArray)),
120
- params: newParams,
121
- scrolling: true
122
- };
136
+ console.log(events.paging);
137
+ if (newData.length > 0) {
138
+ setData(function (prevData) {
139
+ return [].concat(toConsumableArray(prevData), toConsumableArray(newData));
140
+ });
141
+ setNextPagingToken(events.paging.nextToken ? events.paging.nextToken : null);
142
+ setScrolling(true);
143
+ } else {
144
+ setScrolling(false);
145
+ }
146
+ });
147
+ };
148
+
149
+ useEffect(function () {
150
+ // load initial data
151
+ if (accessToken && page === 1 && currentPage === 1) {
152
+ getEvents();
153
+ }
154
+ }, [accessToken, filter, page, currentPage]);
155
+
156
+ useEffect(function () {
157
+ // reset state when filter changes
158
+ setIsLoading(true);
159
+ setData([]);
160
+ setPage(1);
161
+ setCurrentPage(1);
162
+ }, [filter]);
163
+
164
+ useEffect(function () {
165
+ // get access token
166
+ var encodedData = window.btoa(clientId + ':' + clientSecret);
167
+ var url = corsProxy + 'https://api-platform.cvent.com/ea/oauth2/token';
168
+ fetch(url, {
169
+ headers: {
170
+ 'Content-Type': 'application/x-www-form-urlencoded',
171
+ Authorization: 'Basic ' + encodedData
172
+ },
173
+ method: 'POST',
174
+ body: 'grant_type=client_credentials&client_id=' + clientId
175
+ }).then(function (response) {
176
+ return response.json();
177
+ }).then(function (json) {
178
+ return setAccessToken(json.access_token);
179
+ }).catch(function (e) {
180
+ return console.log(e);
181
+ });
182
+ }, []);
183
+
184
+ var loadMore = debounce_1(function () {
185
+ setPage(function (prevPage) {
186
+ return prevPage + 1;
187
+ });
188
+ }, 0);
189
+
190
+ useEffect(function () {
191
+ // load more events
192
+ page !== 1 && page !== currentPage && loadMoreEvents();
193
+ }, [page]);
194
+
195
+ var loadMoreEvents = function loadMoreEvents() {
196
+ console.log(nextPagingToken, 'nextPagingToken');
197
+ if (nextPagingToken) {
198
+ var url = corsProxy + 'https://api-platform.cvent.com/event/v1/events/filter?token=' + nextPagingToken;
199
+ fetch(url, {
200
+ headers: {
201
+ Accept: 'application/json',
202
+ 'x-api-key': clientId,
203
+ Authorization: 'Bearer ' + accessToken
204
+ },
205
+ body: JSON.stringify({ filter: filter }),
206
+ method: 'POST'
207
+ }).then(function (response) {
208
+ return response.json();
209
+ }).then(function (events) {
210
+ var newData = events.data.map(function (item) {
211
+ return _extends$2({}, item, {
212
+ pageNumber: page
213
+ });
214
+ });
215
+ console.log(events.paging);
216
+ if (newData.length > 0) {
217
+ setData(function (prevData) {
218
+ return [].concat(toConsumableArray(prevData), toConsumableArray(newData));
219
+ });
220
+ setNextPagingToken(events.paging.nextToken ? events.paging.nextToken : null);
221
+ setScrolling(true);
123
222
  } else {
124
- return {
125
- scrolling: false
126
- };
223
+ setScrolling(false);
127
224
  }
128
225
  });
129
- }, _this.changePageNumber = function (pageNumber) {
130
- var _this$props = _this.props,
131
- seoPaginate = _this$props.seoPaginate,
132
- pageview = _this$props.pageview,
133
- router = _this$props.router;
134
- var currentPage = _this.state.currentPage;
135
-
136
- if (seoPaginate) {
137
- var path = router.asPath;
138
- var qrIndex = path.indexOf('?');
139
- var pathname = router.pathname;
140
- var queryString = '';
141
-
142
- if (qrIndex > 0) {
143
- path = path.substring(1, qrIndex);
144
-
145
- var partialQS = router.asPath.substring(qrIndex + 1);
146
- var partialQSArr = partialQS.split('&');
147
-
148
- // exclude page=xxx from query string
149
- partialQSArr.map(function (item) {
150
- var itemArr = item.split('=');
151
- var key = itemArr[0];
152
- var val = itemArr[1];
153
-
154
- if (key !== 'page') {
155
- queryString += (queryString.length === 0 ? '' : '&') + key + '=' + val;
156
- }
157
- });
158
- }
226
+ }
227
+ };
159
228
 
160
- if (queryString.length > 0) {
161
- path += '?' + queryString;
162
- }
229
+ var changePageNumber = function changePageNumber(pageNumber) {
230
+ if (seoPaginate) {
231
+ var path = router.asPath;
232
+ var qrIndex = path.indexOf('?');
233
+ var pathname = router.pathname;
234
+ var queryString = '';
163
235
 
164
- pageNumber = parseInt(pageNumber);
236
+ if (qrIndex > 0) {
237
+ path = path.substring(1, qrIndex);
165
238
 
166
- if (currentPage !== pageNumber) {
167
- lib_3.refresh();
239
+ var partialQS = router.asPath.substring(qrIndex + 1);
240
+ var partialQSArr = partialQS.split('&');
168
241
 
169
- _this.setState({
170
- currentPage: pageNumber
171
- }, function () {
172
- if (path[0] !== '/') {
173
- path = '/' + path;
174
- }
242
+ // exclude page=xxx from query string
243
+ partialQSArr.map(function (item) {
244
+ var itemArr = item.split('=');
245
+ var key = itemArr[0];
246
+ var val = itemArr[1];
175
247
 
176
- var newPath = pageNumber === 1 ? '' + path : path + '?page=' + pageNumber;
177
-
178
- // please leave this for later debug purpose : Yong Jun.
179
- /* console.log('page change reported', {
180
- currentPage: currentPage,
181
- pageNumber: pageNumber,
182
- pathname: pathname,
183
- path: path,
184
- newPath: newPath,
185
- firstPage: pageNumber === 1,
186
- queryString: queryString
187
- }) */
188
-
189
- if (pageview) {
190
- pageview(newPath);
191
- }
248
+ if (key !== 'page') {
249
+ queryString += (queryString.length === 0 ? '' : '&') + key + '=' + val;
250
+ }
251
+ });
252
+ }
192
253
 
193
- router.push(pathname, newPath, {
194
- shallow: true
195
- });
196
- });
254
+ if (queryString.length > 0) {
255
+ path += '?' + queryString;
256
+ }
257
+
258
+ pageNumber = parseInt(pageNumber);
259
+
260
+ if (currentPage !== pageNumber) {
261
+ lib_3.refresh();
262
+
263
+ setCurrentPage(pageNumber);
264
+ if (path[0] !== '/') {
265
+ path = '/' + path;
266
+ }
267
+ var newPath = pageNumber === 1 ? '' + path : path + '?page=' + pageNumber;
268
+
269
+ if (pageview) {
270
+ pageview(newPath);
197
271
  }
272
+
273
+ router.push(pathname, newPath, {
274
+ shallow: true
275
+ });
198
276
  }
199
- }, _this.registrationButton = function (registrationLink) {
200
- return React__default.createElement(
201
- 'a',
202
- { href: registrationLink, target: '_blank' },
203
- React__default.createElement(
204
- Button,
205
- { className: 'event-registration-button' },
206
- 'Register Now'
207
- )
208
- );
209
- }, _this.renderVenue = function (venue, index) {
210
- return React__default.createElement(
211
- Col,
212
- { xs: 12, sm: 6, md: 6, xl: 6 },
213
- React__default.createElement(
214
- 'div',
215
- { className: 'venue-card', style: { width: '18rem' } },
277
+ }
278
+ };
279
+
280
+ var renderRegisterButton = function renderRegisterButton(registrationLink) {
281
+ return React__default.createElement(
282
+ 'a',
283
+ { href: registrationLink, target: '_blank' },
284
+ React__default.createElement(
285
+ Button,
286
+ { size: 'sm', className: 'event-registration-button' },
287
+ 'Register Now'
288
+ )
289
+ );
290
+ };
291
+
292
+ var cardLoader = function cardLoader() {
293
+ var numberOfItemsBeforeAd = 5;
294
+ return React__default.createElement(
295
+ Row,
296
+ null,
297
+ data && data.map(function (row, index) {
298
+ var title = row.title,
299
+ description = row.description,
300
+ start = row.start,
301
+ venues = row.venues,
302
+ _links = row._links,
303
+ virtual = row.virtual;
304
+
305
+ var pageNumber = row.pageNumber || 1;
306
+ return React__default.createElement(
307
+ React__default.Fragment,
308
+ { key: index },
216
309
  React__default.createElement(
217
- Card.Body,
218
- null,
219
- React__default.createElement(
220
- Card.Title,
221
- null,
222
- venue.name
223
- ),
224
- React__default.createElement(
225
- Card.Subtitle,
226
- { className: 'mb-2 text-muted' },
227
- venue.address.address1
228
- ),
229
- React__default.createElement(
230
- Card.Subtitle,
231
- { className: 'mb-2 text-muted' },
232
- venue.address.city
233
- ),
234
- React__default.createElement(
235
- Card.Subtitle,
236
- { className: 'mb-2 text-muted' },
237
- venue.address.country
238
- ),
239
- React__default.createElement(
240
- Card.Subtitle,
241
- { className: 'mb-2 text-muted' },
242
- venue.address.postalCode
243
- )
244
- )
245
- )
246
- );
247
- }, _this.cardLoader = function () {
248
- var numberOfItemsBeforeAd = 5;
249
- return React__default.createElement(
250
- Row,
251
- null,
252
- _this.state.data && _this.state.data.map(function (row, index) {
253
- var title = row.title,
254
- description = row.description,
255
- start = row.start,
256
- venues = row.venues,
257
- _links = row._links;
258
-
259
- var pageNumber = row.pageNumber || _this.state.page;
260
- return React__default.createElement(
261
- React__default.Fragment,
262
- { key: index },
310
+ VisibilitySensor,
311
+ {
312
+ onChange: function onChange(isVisible) {
313
+ isVisible && changePageNumber(pageNumber);
314
+ } },
263
315
  React__default.createElement(
264
- VisibilitySensor,
265
- {
266
- onChange: function onChange(isVisible) {
267
- isVisible && _this.changePageNumber(pageNumber);
268
- } },
316
+ Col,
317
+ { xl: 12, style: { paddingTop: '10px', marginBottom: '20px', borderTop: '1px solid #D3D3D3' } },
269
318
  React__default.createElement(
270
- Col,
271
- { xl: 12, style: { marginBottom: '1rem' } },
319
+ Row,
320
+ null,
272
321
  React__default.createElement(
273
- Row,
274
- null,
275
- React__default.createElement(
276
- Col,
277
- { xs: 12, style: { paddingTop: '10px', marginBottom: '20px', borderTop: '1px solid #EEE' } },
278
- !main_36 && React__default.createElement(
279
- 'div',
280
- { style: { float: 'right' } },
281
- _this.registrationButton(_links.registration.href)
322
+ Col,
323
+ { xs: 12, sm: 4 },
324
+ venues && venues.length > 0 && React__default.createElement(
325
+ 'div',
326
+ null,
327
+ React__default.createElement(
328
+ 'h5',
329
+ null,
330
+ venues[0].name
282
331
  ),
283
- React__default.createElement('h4', { className: 'mb-1', style: { fontWeight: '500', fontSize: '22px' }, dangerouslySetInnerHTML: { __html: title } }),
284
332
  React__default.createElement(
285
333
  'p',
286
- { className: 'mb-2' },
287
- 'Sarting at ',
288
- moment(start).format('MMMM Do YYYY, h:mma')
334
+ { style: { padding: 0, margin: 0 } },
335
+ moment(start).format('LL')
289
336
  ),
290
- description && React__default.createElement('p', { dangerouslySetInnerHTML: { __html: description } }),
291
337
  React__default.createElement(
292
- Row,
293
- null,
294
- venues && venues.length > 0 && venues.map(function (venue, index) {
295
- return _this.renderVenue(venue, index);
296
- })
297
- ),
298
- main_36 && _this.registrationButton(_links.registration.href)
338
+ 'p',
339
+ { style: { padding: 0, margin: 0 } },
340
+ moment(start).format('LT')
341
+ )
299
342
  )
343
+ ),
344
+ React__default.createElement(
345
+ Col,
346
+ { xs: 12, sm: 5 },
347
+ React__default.createElement('h6', { className: 'mb-1', dangerouslySetInnerHTML: { __html: title } }),
348
+ virtual && React__default.createElement(
349
+ 'h5',
350
+ null,
351
+ 'VIRTUAL MEETING'
352
+ )
353
+ ),
354
+ React__default.createElement(
355
+ Col,
356
+ { xs: 12, sm: 3 },
357
+ renderRegisterButton(_links.registration.href)
358
+ )
359
+ ),
360
+ description && React__default.createElement(
361
+ Row,
362
+ { style: { marginTop: '8px' } },
363
+ React__default.createElement(
364
+ Col,
365
+ null,
366
+ React__default.createElement('p', { dangerouslySetInnerHTML: { __html: description } })
300
367
  )
301
368
  )
302
- ),
303
- main_36 && _this.rightItems && (index + 1) % numberOfItemsBeforeAd === 0 && React__default.createElement(
304
- 'div',
305
- { style: { margin: '0 auto' } },
306
- _this.renderMobileAd(index, numberOfItemsBeforeAd, _this.rightItems)
307
369
  )
308
- );
309
- })
310
- );
311
- }, _this.renderMobileAd = function (index, numberOfItemsBeforeAd) {
312
- var rightItems = _this.props.rightItems;
370
+ ),
371
+ main_36 && rightItems && (index + 1) % numberOfItemsBeforeAd === 0 && React__default.createElement(
372
+ 'div',
373
+ { style: { margin: '0 auto' } },
374
+ renderMobileAd(index, numberOfItemsBeforeAd)
375
+ )
376
+ );
377
+ })
378
+ );
379
+ };
313
380
 
314
- var i = ((index + 1) / numberOfItemsBeforeAd - 1) % rightItems.length;
315
- return React__default.createElement(
316
- Col,
317
- { md: 12, style: { display: 'flex', flex: '1 0 auto' } },
318
- rightItems[i].component
319
- );
320
- }, _this.renderManualPagination = function () {
321
- var currentPage = _this.state.currentPage;
381
+ var renderMobileAd = function renderMobileAd(index, numberOfItemsBeforeAd) {
382
+ var i = ((index + 1) / numberOfItemsBeforeAd - 1) % rightItems.length;
383
+ return React__default.createElement(
384
+ Col,
385
+ { md: 12, style: { display: 'flex', flex: '1 0 auto' } },
386
+ rightItems[i].component
387
+ );
388
+ };
322
389
 
323
- return React__default.createElement(
324
- 'div',
325
- { className: 'd-flex justify-content-between' },
326
- currentPage && currentPage > 1 && React__default.createElement(
327
- 'a',
328
- { href: '?page=' + (currentPage - 1) },
329
- '<< Previous'
330
- ),
390
+ var renderManualPagination = function renderManualPagination() {
391
+ var currentPage = 1;
392
+ return React__default.createElement(
393
+ 'div',
394
+ { className: 'd-flex justify-content-between' },
395
+ currentPage > 1 ,
396
+ React__default.createElement(
397
+ 'a',
398
+ { href: '?page=' + (currentPage + 1) },
399
+ 'Next >>'
400
+ )
401
+ );
402
+ };
403
+
404
+ if (isLoading) {
405
+ return React__default.createElement(
406
+ 'div',
407
+ { style: { display: 'flex', justifyContent: 'center', marginTop: '48px' } },
408
+ React__default.createElement(
409
+ Spinner,
410
+ { animation: 'border', role: 'status' },
331
411
  React__default.createElement(
332
- 'a',
333
- { href: '?page=' + (currentPage + 1) },
334
- 'Next >>'
412
+ 'span',
413
+ { className: 'sr-only' },
414
+ 'Loading...'
335
415
  )
336
- );
337
- }, _temp), possibleConstructorReturn(_this, _ret);
416
+ )
417
+ );
338
418
  }
339
419
 
340
- createClass(EventsDeck, [{
341
- key: 'componentDidUpdate',
342
- value: function componentDidUpdate(prevProps, prevState) {
343
- if (this.state.dataKeptToCompareNewDatarecord !== this.props.dataRecord) {
344
- // eslint-disable-next-line react/no-did-update-set-state
345
- this.setState({
346
- data: this.props.dataRecord,
347
- dataKeptToCompareNewDatarecord: this.props.dataRecord,
348
- page: 1,
349
- scrolling: true
350
- });
351
- }
352
- }
353
- }, {
354
- key: 'componentDidMount',
355
- value: function componentDidMount() {
356
- // this.loadData();
357
- }
358
- }, {
359
- key: 'render',
360
- value: function render() {
361
- var _this2 = this;
362
-
363
- var autoScroll = this.props.autoScroll;
364
-
365
- console.log(this.state.data);
366
- return React__default.createElement(
367
- 'div',
368
- { className: 'contentDeck' },
369
- autoScroll ? React__default.createElement(
370
- React__default.Fragment,
371
- null,
372
- React__default.createElement(
373
- InfiniteScroll,
374
- { dataLength: this.state.data.length, next: this.loadMore, hasMore: this.state.scrolling, scrollThreshold: 0.9 },
375
- React__default.createElement(
376
- Container,
377
- null,
378
- this.cardLoader()
379
- )
380
- ),
420
+ if (data.length > 0) {
421
+ return React__default.createElement(
422
+ 'div',
423
+ { className: 'contentDeck' },
424
+ autoScroll ? React__default.createElement(
425
+ React__default.Fragment,
426
+ null,
427
+ React__default.createElement(
428
+ InfiniteScroll,
429
+ { dataLength: data.length, next: loadMore, hasMore: scrolling, scrollThreshold: 0.9 },
381
430
  React__default.createElement(
382
- 'noscript',
431
+ Container,
383
432
  null,
384
- this.renderManualPagination()
433
+ cardLoader()
385
434
  )
386
- ) : React__default.createElement(
387
- React__default.Fragment,
435
+ ),
436
+ React__default.createElement(
437
+ 'noscript',
388
438
  null,
389
- React__default.createElement(
390
- Container,
391
- null,
392
- this.cardLoader()
393
- ),
394
- React__default.createElement(
395
- 'div',
396
- { style: { padding: '0px 10px' } },
397
- this.state.scrolling ? React__default.createElement(
398
- 'button',
399
- {
400
- style: { margin: 'auto', width: '100%' },
401
- onClick: function onClick(e) {
402
- _this2.loadMore();
403
- } },
404
- 'Load More'
405
- ) : React__default.createElement(
406
- 'p',
407
- { style: { textAlign: 'center' } },
408
- React__default.createElement(
409
- 'b',
410
- null,
411
- 'End of data'
412
- )
439
+ renderManualPagination()
440
+ )
441
+ ) : React__default.createElement(
442
+ React__default.Fragment,
443
+ null,
444
+ React__default.createElement(
445
+ Container,
446
+ null,
447
+ cardLoader()
448
+ ),
449
+ React__default.createElement(
450
+ 'div',
451
+ { style: { padding: '0px 10px' } },
452
+ scrolling ? React__default.createElement(
453
+ 'button',
454
+ {
455
+ style: { margin: 'auto', width: '100%' },
456
+ onClick: function onClick(e) {
457
+ loadMore();
458
+ } },
459
+ 'Load More'
460
+ ) : React__default.createElement(
461
+ 'p',
462
+ { style: { textAlign: 'center' } },
463
+ React__default.createElement(
464
+ 'b',
465
+ null,
466
+ 'End of data'
413
467
  )
414
- ),
415
- React__default.createElement(
416
- 'noscript',
417
- null,
418
- this.renderManualPagination()
419
468
  )
420
469
  ),
421
470
  React__default.createElement(
422
- 'style',
423
- { jsx: 'true' },
424
- '\n .venue-card {\n border: 1px solid #c0c0c0;\n border-radius: 6px;\n padding: 2px;\n }\n '
471
+ 'noscript',
472
+ null,
473
+ renderManualPagination()
425
474
  )
426
- );
427
- }
428
- }]);
429
- return EventsDeck;
430
- }(React__default.Component);
431
-
432
- var EventsDeck$1 = withRouter(EventsDeck);
475
+ )
476
+ );
477
+ } else {
478
+ return React__default.createElement(
479
+ 'div',
480
+ null,
481
+ React__default.createElement(
482
+ 'div',
483
+ null,
484
+ 'No events found '
485
+ )
486
+ );
487
+ }
488
+ };
433
489
 
434
490
  var AccordionPanel = function AccordionPanel(props) {
435
491
  var accordionClassName = props.accordionClassName,
@@ -11408,16 +11464,16 @@ var Hero = function Hero(_ref) {
11408
11464
  'a',
11409
11465
  { href: '/view/' + url.current },
11410
11466
  React__default.createElement(
11411
- Card$1,
11467
+ Card,
11412
11468
  { bsPrefix: 'hero-card' },
11413
11469
  title && React__default.createElement(
11414
- Card$1.Header,
11470
+ Card.Header,
11415
11471
  { className: 'h4' },
11416
11472
  title
11417
11473
  ),
11418
- thumbnail && client && React__default.createElement(Card$1.Img, { src: renderCardImage(thumbnail, client, imageHeight, imageWidth) }),
11474
+ thumbnail && client && React__default.createElement(Card.Img, { src: renderCardImage(thumbnail, client, imageHeight, imageWidth) }),
11419
11475
  summary && React__default.createElement(
11420
- Card$1.Footer,
11476
+ Card.Footer,
11421
11477
  { className: 'h6' },
11422
11478
  clean_html_1(summary)
11423
11479
  )
@@ -13041,4 +13097,4 @@ var _initialiseProps = function _initialiseProps() {
13041
13097
  };
13042
13098
  };
13043
13099
 
13044
- export { AD300x250, AD300x250x600, ADFooter, AccordionPanel, AdSlotsProvider, AlphabeticList, ArticleDetailDropdown, ArticleQueue, Breadcrumbs$1 as Breadcrumbs, ConferenceArticleCard, EventsDeck$1 as EventsDeck, Feature, fbsHero as ForbesHero, Hero, HorizontalHero, OncliveHero, OncliveLargeHero, PdfDownload, RelatedContent, RelatedTopicsDropdown, SetCookie, SocialShare$1 as SocialShare, VerticalHero, YahooHero, getSerializers };
13100
+ export { AD300x250, AD300x250x600, ADFooter, AccordionPanel, AdSlotsProvider, AlphabeticList, ArticleDetailDropdown, ArticleQueue, Breadcrumbs$1 as Breadcrumbs, ConferenceArticleCard, EventsDeck, Feature, fbsHero as ForbesHero, Hero, HorizontalHero, OncliveHero, OncliveLargeHero, PdfDownload, RelatedContent, RelatedTopicsDropdown, SetCookie, SocialShare$1 as SocialShare, VerticalHero, YahooHero, getSerializers };