@mjhls/mjh-framework 1.0.195 → 1.0.196

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/index.js CHANGED
@@ -11772,6 +11772,88 @@ function get$1(object, path, defaultValue) {
11772
11772
 
11773
11773
  var get_1 = get$1;
11774
11774
 
11775
+ var AD = function AD(_ref) {
11776
+ var networkID = _ref.networkID,
11777
+ adUnit = _ref.adUnit,
11778
+ sizeMapping = _ref.sizeMapping,
11779
+ className = _ref.className,
11780
+ slotId = _ref.slotId,
11781
+ sizes = _ref.sizes,
11782
+ minInViewPercent = _ref.minInViewPercent,
11783
+ _ref$targeting = _ref.targeting,
11784
+ targeting = _ref$targeting === undefined ? {} : _ref$targeting;
11785
+
11786
+ var _useState = React.useState(false),
11787
+ _useState2 = slicedToArray(_useState, 2),
11788
+ adRendered = _useState2[0],
11789
+ setAdRendered = _useState2[1];
11790
+
11791
+ var _useState3 = React.useState(false),
11792
+ _useState4 = slicedToArray(_useState3, 2),
11793
+ showPlaceholder = _useState4[0],
11794
+ setShowPlaceholder = _useState4[1];
11795
+
11796
+ var handleVisibilityChange = debounce_1(function (_ref2) {
11797
+ var event = _ref2.event;
11798
+
11799
+ if (event.inViewPercentage <= 0) {
11800
+ setShowPlaceholder(true);
11801
+ }
11802
+ }, 500);
11803
+
11804
+ return React__default.createElement(
11805
+ React__default.Fragment,
11806
+ null,
11807
+ !showPlaceholder && React__default.createElement(
11808
+ lib_1,
11809
+ {
11810
+ dfpNetworkId: networkID,
11811
+ targetingArguments: targeting,
11812
+ sizeMapping: sizeMapping,
11813
+ lazyLoad: { fetchMarginPercent: 500, renderMarginPercent: 200, mobileScaling: 2.0 } },
11814
+ React__default.createElement(
11815
+ 'div',
11816
+ { className: className },
11817
+ React__default.createElement(lib_2, {
11818
+ slotId: slotId,
11819
+ sizes: sizes,
11820
+ adUnit: adUnit,
11821
+ sizeMapping: sizeMapping,
11822
+ onSlotRender: function onSlotRender(eventData) {
11823
+ setAdRendered(true);
11824
+ },
11825
+ onSlotVisibilityChanged: handleVisibilityChange
11826
+ })
11827
+ )
11828
+ ),
11829
+ adRendered && showPlaceholder && React__default.createElement(
11830
+ VisibilitySensor,
11831
+ {
11832
+ partialVisibility: true,
11833
+ onChange: function onChange(isVisible) {
11834
+ if (isVisible) {
11835
+ setShowPlaceholder(false);
11836
+ }
11837
+ } },
11838
+ React__default.createElement(
11839
+ 'div',
11840
+ { style: { height: 'auto' } },
11841
+ '\xA0'
11842
+ )
11843
+ )
11844
+ );
11845
+ };
11846
+
11847
+ AD.propTypes = {
11848
+ networkID: PropTypes.string.isRequired,
11849
+ adUnit: PropTypes.string.isRequired,
11850
+ slotId: PropTypes.string,
11851
+ className: PropTypes.string,
11852
+ sizeMapping: PropTypes.array,
11853
+ sizes: PropTypes.array,
11854
+ minInViewPercent: PropTypes.number
11855
+ };
11856
+
11775
11857
  var GridContent = function (_React$Component) {
11776
11858
  inherits(GridContent, _React$Component);
11777
11859
 
@@ -11990,7 +12072,7 @@ var GridContent = function (_React$Component) {
11990
12072
 
11991
12073
  createClass(GridContent, [{
11992
12074
  key: 'cardLoader',
11993
- value: function cardLoader(page, columns, variant, showVideo, VideoPlayer) {
12075
+ value: function cardLoader(page, columns, variant, showVideo, VideoPlayer, showBI, brandInsight) {
11994
12076
  var _this2 = this;
11995
12077
 
11996
12078
  var lgVar = Math.floor(12 / columns);
@@ -12065,13 +12147,33 @@ var GridContent = function (_React$Component) {
12065
12147
  })
12066
12148
  );
12067
12149
  }
12150
+
12151
+ var insert = function insert(arr, index$$1, newElement) {
12152
+ return [].concat(toConsumableArray(arr.slice(0, index$$1)), [newElement], toConsumableArray(arr.slice(index$$1)));
12153
+ };
12154
+ var posts = [];
12155
+ if (showBI) {
12156
+ var interval = brandInsight.interval;
12157
+ var data = this.state.data;
12158
+ posts = data;
12159
+ var i = 1;
12160
+ for (var pos = interval; pos <= posts.length;) {
12161
+ brandInsight.targeting.pos = 'article' + i;
12162
+ posts = insert(posts, pos, brandInsight);
12163
+ pos += interval + 1;
12164
+ i++;
12165
+ }
12166
+ } else {
12167
+ posts = this.state.data;
12168
+ }
12169
+
12068
12170
  return React__default.createElement(
12069
12171
  'div',
12070
12172
  { className: 'grid-container' },
12071
- this.state.data && this.state.data.map(function (row, index$$1) {
12173
+ posts && posts.map(function (row, index$$1) {
12072
12174
  var pageNumber = row.pageNumber || _this2.state.page;
12073
12175
  var contentCategoryName = row.contentCategory && row.contentCategory.name && _this2.mapping[row.contentCategory.name] ? row.contentCategory.name : 'Articles';
12074
- var linkHref = _this2.mapping[contentCategoryName] + '/' + row.url.current;
12176
+ var linkHref = row.url && row.url.current ? _this2.mapping[contentCategoryName] + '/' + row.url.current : '';
12075
12177
  if (row._type === 'feature') {
12076
12178
  if (row.blank || _this2.checkExternalUrl(row.url.current)) {
12077
12179
  return React__default.createElement(
@@ -12131,7 +12233,7 @@ var GridContent = function (_React$Component) {
12131
12233
  )
12132
12234
  )
12133
12235
  ),
12134
- showVideo && (_this2.state.data.length < numberOfItemsBeforeVideo || index$$1 + 1 === numberOfItemsBeforeVideo) && React__default.createElement(VideoPlayer, null),
12236
+ showVideo && (posts.length < numberOfItemsBeforeVideo || index$$1 + 1 === numberOfItemsBeforeVideo) && React__default.createElement(VideoPlayer, null),
12135
12237
  main_36 && _this2.props.rightItems && (index$$1 + 1) % numberOfItemsBeforeAd === 0 && _this2.renderMobileAd(index$$1, numberOfItemsBeforeAd)
12136
12238
  );
12137
12239
  } else {
@@ -12192,10 +12294,24 @@ var GridContent = function (_React$Component) {
12192
12294
  )
12193
12295
  )
12194
12296
  ),
12195
- showVideo && (_this2.state.data.length < numberOfItemsBeforeVideo || index$$1 + 1 === numberOfItemsBeforeVideo) && React__default.createElement(VideoPlayer, null),
12297
+ showVideo && (posts.length < numberOfItemsBeforeVideo || index$$1 + 1 === numberOfItemsBeforeVideo) && React__default.createElement(VideoPlayer, null),
12196
12298
  main_36 && _this2.props.rightItems && (index$$1 + 1) % numberOfItemsBeforeAd === 0 && _this2.renderMobileAd(index$$1, numberOfItemsBeforeAd)
12197
12299
  );
12198
12300
  }
12301
+ } else if (row._type === 'BrandInsight' && row.adUnit) {
12302
+ return React__default.createElement(
12303
+ React__default.Fragment,
12304
+ { key: itemCounter, className: 'brand-insight-wrapper' },
12305
+ React__default.createElement(
12306
+ 'div',
12307
+ { counter: itemCounter++, style: { display: 'flex', flex: '1 0 auto' } },
12308
+ React__default.createElement(
12309
+ Card,
12310
+ { className: 'content-card ad-wrapper', style: { flexDirection: index$$1 === 0 || index$$1 % 4 === 0 ? 'top' : 'row' } },
12311
+ React__default.createElement(AD, { networkID: row.networkID, adUnit: row.adUnit, targeting: row.targeting, className: row.className, sizes: row.sizes, slotId: row.slotId })
12312
+ )
12313
+ )
12314
+ );
12199
12315
  }
12200
12316
  return React__default.createElement(
12201
12317
  React__default.Fragment,
@@ -12254,7 +12370,7 @@ var GridContent = function (_React$Component) {
12254
12370
  )
12255
12371
  )
12256
12372
  ),
12257
- showVideo && (_this2.state.data.length < numberOfItemsBeforeVideo || index$$1 + 1 === numberOfItemsBeforeVideo) && React__default.createElement(VideoPlayer, null),
12373
+ showVideo && (posts.length < numberOfItemsBeforeVideo || index$$1 + 1 === numberOfItemsBeforeVideo) && React__default.createElement(VideoPlayer, null),
12258
12374
  main_36 && _this2.props.rightItems && (index$$1 + 1) % numberOfItemsBeforeAd === 0 && _this2.renderMobileAd(index$$1, numberOfItemsBeforeAd)
12259
12375
  );
12260
12376
  })
@@ -12271,7 +12387,9 @@ var GridContent = function (_React$Component) {
12271
12387
  autoScroll = _props.autoScroll,
12272
12388
  page = _props.page,
12273
12389
  showVideo = _props.showVideo,
12274
- VideoPlayer = _props.VideoPlayer;
12390
+ VideoPlayer = _props.VideoPlayer,
12391
+ showBI = _props.showBI,
12392
+ brandInsight = _props.brandInsight;
12275
12393
 
12276
12394
 
12277
12395
  return React__default.createElement(
@@ -12283,7 +12401,7 @@ var GridContent = function (_React$Component) {
12283
12401
  React__default.createElement(
12284
12402
  Container,
12285
12403
  null,
12286
- this.cardLoader(page, columns, variant, showVideo, VideoPlayer)
12404
+ this.cardLoader(page, columns, variant, showVideo, VideoPlayer, showBI, brandInsight)
12287
12405
  )
12288
12406
  ) : React__default.createElement(
12289
12407
  React__default.Fragment,
@@ -12291,7 +12409,7 @@ var GridContent = function (_React$Component) {
12291
12409
  React__default.createElement(
12292
12410
  Container,
12293
12411
  null,
12294
- this.cardLoader(page, columns, variant, showVideo, VideoPlayer)
12412
+ this.cardLoader(page, columns, variant, showVideo, VideoPlayer, showBI, brandInsight)
12295
12413
  ),
12296
12414
  React__default.createElement(
12297
12415
  'div',
@@ -16896,88 +17014,6 @@ var HamMagazine = function HamMagazine(props) {
16896
17014
  );
16897
17015
  };
16898
17016
 
16899
- var AD = function AD(_ref) {
16900
- var networkID = _ref.networkID,
16901
- adUnit = _ref.adUnit,
16902
- sizeMapping = _ref.sizeMapping,
16903
- className = _ref.className,
16904
- slotId = _ref.slotId,
16905
- sizes = _ref.sizes,
16906
- minInViewPercent = _ref.minInViewPercent,
16907
- _ref$targeting = _ref.targeting,
16908
- targeting = _ref$targeting === undefined ? {} : _ref$targeting;
16909
-
16910
- var _useState = React.useState(false),
16911
- _useState2 = slicedToArray(_useState, 2),
16912
- adRendered = _useState2[0],
16913
- setAdRendered = _useState2[1];
16914
-
16915
- var _useState3 = React.useState(false),
16916
- _useState4 = slicedToArray(_useState3, 2),
16917
- showPlaceholder = _useState4[0],
16918
- setShowPlaceholder = _useState4[1];
16919
-
16920
- var handleVisibilityChange = debounce_1(function (_ref2) {
16921
- var event = _ref2.event;
16922
-
16923
- if (event.inViewPercentage <= 0) {
16924
- setShowPlaceholder(true);
16925
- }
16926
- }, 500);
16927
-
16928
- return React__default.createElement(
16929
- React__default.Fragment,
16930
- null,
16931
- !showPlaceholder && React__default.createElement(
16932
- lib_1,
16933
- {
16934
- dfpNetworkId: networkID,
16935
- targetingArguments: targeting,
16936
- sizeMapping: sizeMapping,
16937
- lazyLoad: { fetchMarginPercent: 500, renderMarginPercent: 200, mobileScaling: 2.0 } },
16938
- React__default.createElement(
16939
- 'div',
16940
- { className: className },
16941
- React__default.createElement(lib_2, {
16942
- slotId: slotId,
16943
- sizes: sizes,
16944
- adUnit: adUnit,
16945
- sizeMapping: sizeMapping,
16946
- onSlotRender: function onSlotRender(eventData) {
16947
- setAdRendered(true);
16948
- },
16949
- onSlotVisibilityChanged: handleVisibilityChange
16950
- })
16951
- )
16952
- ),
16953
- adRendered && showPlaceholder && React__default.createElement(
16954
- VisibilitySensor,
16955
- {
16956
- partialVisibility: true,
16957
- onChange: function onChange(isVisible) {
16958
- if (isVisible) {
16959
- setShowPlaceholder(false);
16960
- }
16961
- } },
16962
- React__default.createElement(
16963
- 'div',
16964
- { style: { height: 'auto' } },
16965
- '\xA0'
16966
- )
16967
- )
16968
- );
16969
- };
16970
-
16971
- AD.propTypes = {
16972
- networkID: PropTypes.string.isRequired,
16973
- adUnit: PropTypes.string.isRequired,
16974
- slotId: PropTypes.string,
16975
- className: PropTypes.string,
16976
- sizeMapping: PropTypes.array,
16977
- sizes: PropTypes.array,
16978
- minInViewPercent: PropTypes.number
16979
- };
16980
-
16981
17017
  var AD728x90 = function AD728x90(_ref) {
16982
17018
  var networkID = _ref.networkID,
16983
17019
  adUnit = _ref.adUnit,