@mjhls/mjh-framework 1.0.967-socialicon-fix-v2 → 1.0.968-test-D4S-1910

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 (38) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/AlgoliaSearch.js +2 -0
  3. package/dist/cjs/ArticleProgramLandingPage.js +1 -1
  4. package/dist/cjs/ExternalResources.js +1 -1
  5. package/dist/cjs/HorizontalArticleListing.js +1 -1
  6. package/dist/cjs/IssueLanding.js +1 -1
  7. package/dist/cjs/{MediaSeriesCard-200d270d.js → MediaSeriesCard-94ff4d11.js} +1 -1
  8. package/dist/cjs/MediaSeriesLanding.js +3 -3
  9. package/dist/cjs/MediaSeriesLandingPaginated.js +3 -3
  10. package/dist/cjs/PartnerDetailListing.js +7 -23
  11. package/dist/cjs/PartnerDetailListingPaginated.js +3 -3
  12. package/dist/cjs/PixelTracking.js +165 -0
  13. package/dist/cjs/TaxonomyDescription.js +2 -2
  14. package/dist/cjs/VideoProgramLandingPage.js +1 -1
  15. package/dist/cjs/View.js +7 -5
  16. package/dist/cjs/getQuery.js +2 -2
  17. package/dist/cjs/getSerializers.js +1 -1
  18. package/dist/cjs/{index-6bab3b25.js → index-eb1c583d.js} +11 -1
  19. package/dist/cjs/index.js +4 -1
  20. package/dist/esm/AlgoliaSearch.js +2 -0
  21. package/dist/esm/ArticleProgramLandingPage.js +1 -1
  22. package/dist/esm/ExternalResources.js +1 -1
  23. package/dist/esm/HorizontalArticleListing.js +1 -1
  24. package/dist/esm/IssueLanding.js +1 -1
  25. package/dist/esm/{MediaSeriesCard-0f93cf68.js → MediaSeriesCard-4f07fac6.js} +1 -1
  26. package/dist/esm/MediaSeriesLanding.js +3 -3
  27. package/dist/esm/MediaSeriesLandingPaginated.js +3 -3
  28. package/dist/esm/PartnerDetailListing.js +7 -23
  29. package/dist/esm/PartnerDetailListingPaginated.js +3 -3
  30. package/dist/esm/PixelTracking.js +156 -0
  31. package/dist/esm/TaxonomyDescription.js +2 -2
  32. package/dist/esm/VideoProgramLandingPage.js +1 -1
  33. package/dist/esm/View.js +7 -5
  34. package/dist/esm/getQuery.js +2 -2
  35. package/dist/esm/getSerializers.js +1 -1
  36. package/dist/esm/{index-0074586c.js → index-264bbd3c.js} +11 -1
  37. package/dist/esm/index.js +2 -1
  38. package/package.json +1 -1
@@ -3,7 +3,7 @@ import { _ as _slicedToArray } from './slicedToArray-6ebcbfea.js';
3
3
  import { _ as _extends } from './extends-6d8e3924.js';
4
4
  import React__default from 'react';
5
5
  import { B as BlockContent } from './BlockContent-1e73bd2c.js';
6
- import { g as getSerializers } from './index-0074586c.js';
6
+ import { g as getSerializers } from './index-264bbd3c.js';
7
7
  import ArticleSeriesListing from './ArticleSeriesListing.js';
8
8
  import './_commonjsHelpers-0c4b6f40.js';
9
9
  import './core.get-iterator-method-ea258bb1.js';
@@ -2,7 +2,7 @@ import { _ as _extends } from './extends-6d8e3924.js';
2
2
  import { _ as _slicedToArray } from './slicedToArray-6ebcbfea.js';
3
3
  import React__default, { useState, useEffect } from 'react';
4
4
  import { B as BlockContent } from './BlockContent-1e73bd2c.js';
5
- import { g as getSerializers } from './index-0074586c.js';
5
+ import { g as getSerializers } from './index-264bbd3c.js';
6
6
  import { m as momentTimezone } from './index-79cfd25c.js';
7
7
  import { useRouter } from 'next/router';
8
8
  import Button from 'react-bootstrap/Button';
@@ -3,7 +3,7 @@ import React__default from 'react';
3
3
  import ArticleCarousel from './ArticleCarousel.js';
4
4
  import { I as IoIosArrowForward } from './index.esm-eb1e8e80.js';
5
5
  import { B as BlockContent } from './BlockContent-1e73bd2c.js';
6
- import { g as getSerializers } from './index-0074586c.js';
6
+ import { g as getSerializers } from './index-264bbd3c.js';
7
7
  import './_commonjsHelpers-0c4b6f40.js';
8
8
  import './core.get-iterator-method-ea258bb1.js';
9
9
  import './_object-pie-133f504a.js';
@@ -3,7 +3,7 @@ import React__default from 'react';
3
3
  import QueueDeckExpanded from './QueueDeckExpanded.js';
4
4
  import Breadcrumbs from './Breadcrumbs.js';
5
5
  import { B as BlockContent } from './BlockContent-1e73bd2c.js';
6
- import { g as getSerializers } from './index-0074586c.js';
6
+ import { g as getSerializers } from './index-264bbd3c.js';
7
7
  import './_commonjsHelpers-0c4b6f40.js';
8
8
  import './core.get-iterator-method-ea258bb1.js';
9
9
  import './_object-pie-133f504a.js';
@@ -9,7 +9,7 @@ import urlFor from './urlFor.js';
9
9
  import { m as moment } from './moment-bc12cb97.js';
10
10
  import { s as styleInject } from './style-inject.es-1f59c1d0.js';
11
11
  import { B as BlockContent } from './BlockContent-1e73bd2c.js';
12
- import { g as getSerializers } from './index-0074586c.js';
12
+ import { g as getSerializers } from './index-264bbd3c.js';
13
13
 
14
14
  /**
15
15
  * Copyright (c) 2013-present, Facebook, Inc.
@@ -3,13 +3,13 @@ import { _ as _typeof } from './typeof-e9fc0c5d.js';
3
3
  import { _ as _extends } from './extends-6d8e3924.js';
4
4
  import { _ as _slicedToArray } from './slicedToArray-6ebcbfea.js';
5
5
  import React__default, { useState, useEffect } from 'react';
6
- import { M as MediaSeriesCard, D as DropdownButton, a as Dropdown } from './MediaSeriesCard-0f93cf68.js';
6
+ import { M as MediaSeriesCard, D as DropdownButton, a as Dropdown } from './MediaSeriesCard-4f07fac6.js';
7
7
  import './index-98ca9cec.js';
8
8
  import 'react-dom';
9
9
  import Link from 'next/link';
10
10
  import MasterDeck from './MasterDeck.js';
11
11
  import { B as BlockContent } from './BlockContent-1e73bd2c.js';
12
- import { g as getSerializers } from './index-0074586c.js';
12
+ import { g as getSerializers } from './index-264bbd3c.js';
13
13
  import './_commonjsHelpers-0c4b6f40.js';
14
14
  import './core.get-iterator-method-ea258bb1.js';
15
15
  import './web.dom.iterable-ab4dea5c.js';
@@ -396,7 +396,7 @@ MediaSeriesLanding.getInitialData = function () {
396
396
  itemsPerPage: itemsPerPage
397
397
  };
398
398
  _context2.next = 9;
399
- return client.fetch('*[_type == \'documentGroup\' && identifier.current == \'' + identifier + '\'][0]{\n _id, \n isGated,\n name,\n description\n }');
399
+ return client.fetch('*[_type == \'documentGroup\' && identifier.current == \'' + identifier + '\'][0]{\n _id, \n isGated,\n name,\n description,\n pixelTrackingCode->\n }');
400
400
 
401
401
  case 9:
402
402
  docGroupID = _context2.sent;
@@ -3,13 +3,13 @@ import { _ as _typeof } from './typeof-e9fc0c5d.js';
3
3
  import { _ as _extends } from './extends-6d8e3924.js';
4
4
  import { _ as _slicedToArray } from './slicedToArray-6ebcbfea.js';
5
5
  import React__default, { useState, useEffect } from 'react';
6
- import { M as MediaSeriesCard, D as DropdownButton, a as Dropdown } from './MediaSeriesCard-0f93cf68.js';
6
+ import { M as MediaSeriesCard, D as DropdownButton, a as Dropdown } from './MediaSeriesCard-4f07fac6.js';
7
7
  import './index-98ca9cec.js';
8
8
  import 'react-dom';
9
9
  import Link from 'next/link';
10
10
  import { B as BlockContent } from './BlockContent-1e73bd2c.js';
11
11
  import MasterDeck from './MasterDeckPaginated.js';
12
- import { g as getSerializers } from './index-0074586c.js';
12
+ import { g as getSerializers } from './index-264bbd3c.js';
13
13
  import './_commonjsHelpers-0c4b6f40.js';
14
14
  import './core.get-iterator-method-ea258bb1.js';
15
15
  import './web.dom.iterable-ab4dea5c.js';
@@ -416,7 +416,7 @@ MediaSeriesLanding.getInitialData = function () {
416
416
  itemsPerPage: itemsPerPage
417
417
  };
418
418
  _context2.next = 9;
419
- return client.fetch('*[_type == \'documentGroup\' && identifier.current == \'' + identifier + '\'][0]{\n _id, \n isGated,\n name,\n description\n }');
419
+ return client.fetch('*[_type == \'documentGroup\' && identifier.current == \'' + identifier + '\'][0]{\n _id, \n isGated,\n name,\n description,\n pixelTrackingCode->\n }');
420
420
 
421
421
  case 9:
422
422
  docGroupID = _context2.sent;
@@ -11,7 +11,7 @@ import QueueDeckExpanded from './QueueDeckExpanded.js';
11
11
  import Breadcrumbs from './Breadcrumbs.js';
12
12
  import Feature from './Feature.js';
13
13
  import urlFor from './urlFor.js';
14
- import { g as getSerializers } from './index-0074586c.js';
14
+ import { g as getSerializers } from './index-264bbd3c.js';
15
15
  import { B as BlockContent } from './BlockContent-1e73bd2c.js';
16
16
  import './_commonjsHelpers-0c4b6f40.js';
17
17
  import './core.get-iterator-method-ea258bb1.js';
@@ -145,11 +145,11 @@ var PartnerDetails = function PartnerDetails(_ref) {
145
145
  { jsx: 'true' },
146
146
  '\n @media screen and (max-width: 768px) {\n .partners-logo {\n width: 100%;\n min-width: 100%;\n }\n .partner-logo-wrap {\n flex-wrap: wrap;\n }\n .block-content-partners {\n padding-left: 0 !important;\n }\n }\n '
147
147
  ),
148
- (partnerDetails.description || partnerDetails.linkedin || partnerDetails.instagram || partnerDetails.youtube && partnerDetails.youtubeIcon || partnerDetails.twitter && partnerDetails.twitterIcon || partnerDetails.facebook && !partnerDetails.twitterIcon) && React__default.createElement(
148
+ (partnerDetails.description || partnerDetails.linkedin || partnerDetails.instagram || partnerDetails.youtube || partnerDetails.twitter && partnerDetails.facebook || !partnerDetails.twitter && partnerDetails.facebook && checkIsFacebookGroup(partnerDetails.facebook)) && React__default.createElement(
149
149
  'div',
150
150
  { className: 'block-content-partners my-4', style: { maxWidth: '100%', paddingLeft: '2rem', flex: '1 1 auto' } },
151
151
  partnerDetails.description && React__default.createElement(BlockContent, _extends({ serializers: getSerializers(client), blocks: description, imageOptions: { w: 320, h: 240, fit: 'max' } }, client.config())),
152
- (partnerDetails.linkedin || partnerDetails.instagram || partnerDetails.youtube && partnerDetails.youtubeIcon || partnerDetails.twitter && partnerDetails.twitterIcon || partnerDetails.facebook && !partnerDetails.twitterIcon) && React__default.createElement(
152
+ (partnerDetails.linkedin || partnerDetails.instagram || partnerDetails.youtube || partnerDetails.twitter && partnerDetails.facebook || !partnerDetails.twitter && partnerDetails.facebook && checkIsFacebookGroup(partnerDetails.facebook)) && React__default.createElement(
153
153
  'div',
154
154
  null,
155
155
  React__default.createElement(
@@ -170,24 +170,8 @@ var PartnerDetails = function PartnerDetails(_ref) {
170
170
  rel: 'noopener noreferrer',
171
171
  style: { height: 30, width: 30 }
172
172
  }),
173
- partnerDetails.youtube && partnerDetails.youtubeIcon && React__default.createElement(reactSocialIcons_1, {
174
- url: partnerDetails.youtube,
175
- target: '_blank',
176
- rel: 'noopener noreferrer',
177
- style: { height: 30, width: 30, marginLeft: '0.25rem' }
178
- }),
179
- partnerDetails.twitter && partnerDetails.twitterIcon && React__default.createElement(reactSocialIcons_1, {
180
- url: partnerDetails.twitter,
181
- target: '_blank',
182
- rel: 'noopener noreferrer',
183
- style: { height: 30, width: 30, marginLeft: '0.25rem' }
184
- }),
185
- partnerDetails.facebook && !partnerDetails.twitterIcon && React__default.createElement(reactSocialIcons_1, {
186
- url: partnerDetails.facebook,
187
- target: '_blank',
188
- rel: 'noopener noreferrer',
189
- style: { height: 30, width: 30, marginLeft: '0.25rem' }
190
- })
173
+ partnerDetails.youtube && partnerDetails.youtubeIcon && React__default.createElement(reactSocialIcons_1, { url: partnerDetails.youtube, target: '_blank', rel: 'noopener noreferrer', style: { height: 30, width: 30, marginLeft: '0.25rem' } }),
174
+ (partnerDetails.twitter && partnerDetails.facebook || !partnerDetails.twitter && partnerDetails.facebook && checkIsFacebookGroup(partnerDetails.facebook)) && (partnerDetails.twitterIcon ? React__default.createElement(reactSocialIcons_1, { url: partnerDetails.twitter, target: '_blank', rel: 'noopener noreferrer', style: { height: 30, width: 30, marginLeft: '0.25rem' } }) : React__default.createElement(reactSocialIcons_1, { url: partnerDetails.facebook, target: '_blank', rel: 'noopener noreferrer', style: { height: 30, width: 30, marginLeft: '0.25rem' } }))
191
175
  )
192
176
  )
193
177
  ),
@@ -263,14 +247,14 @@ PartnerDetails.returnGetInitialProps = function () {
263
247
  case 0:
264
248
  today = moment().utc().format();
265
249
  featureQuery = '*[_type == \'feature\' && is_active == true && feature_url == \'/' + partnerPageUrl + '/' + (category ? category + '/' : null) + identifier + '\'] | order(_updatedAt asc)[0..5]{\n ...,\n \'feature_img\' : feature_img.asset->\n }';
266
- partnerQuery = '*[_type == \'documentGroup\' \n && !(_id in path("drafts.**"))\n && references(\'' + partnerDocumentGroupID + '\')\n && identifier.current == \'' + identifier + '\'] | order(name asc) [0] {\n description,\n name,\n identifier,\n thumbnail{ ..., asset-> },\n twitter,\n facebook,\n linkedin,\n instagram,\n twitterIcon,\n youtube,\n youtubeIcon,\n "affiliates": description[_type==\'slideshows\']{\n ...,\n slides->{...}\n }\n }';
250
+ partnerQuery = '*[_type == \'documentGroup\' \n && !(_id in path("drafts.**"))\n && references(\'' + partnerDocumentGroupID + '\')\n && identifier.current == \'' + identifier + '\'] | order(name asc) [0] {\n pixelTrackingCode->,\n description,\n name,\n identifier,\n thumbnail{ ..., asset-> },\n twitter,\n facebook,\n linkedin,\n instagram,\n twitterIcon,\n youtube,\n youtubeIcon,\n "affiliates": description[_type==\'slideshows\']{\n ...,\n slides->{...}\n }\n }';
267
251
 
268
252
 
269
253
  if (category) {
270
254
  // if partners page has a sub category such as onclive
271
255
  // e.g. /sap-partner/[category]/[partner]
272
256
 
273
- partnerQuery = '*[_type == \'documentGroup\' && !(_id in path("drafts.**")) && identifier.current == \'' + category + '\' && references(\'' + partnerDocumentGroupID + '\')] [0] {\n ...,\n \'partner\': *[_type == \'documentGroup\' && identifier.current == \'' + identifier + '\' && references(^._id)] [0] {\n description,\n name,\n identifier,\n thumbnail{ ..., asset-> },\n twitter,\n facebook,\n linkedin,\n instagram,\n twitterIcon,\n youtube,\n youtubeIcon,\n "affiliates": description[_type==\'slideshows\']{\n ...,\n slides->{...}\n }\n \n }\n }';
257
+ partnerQuery = '*[_type == \'documentGroup\' && !(_id in path("drafts.**")) && identifier.current == \'' + category + '\' && references(\'' + partnerDocumentGroupID + '\')] [0] {\n ...,\n \'partner\': *[_type == \'documentGroup\' && identifier.current == \'' + identifier + '\' && references(^._id)] [0] {\n pixelTrackingCode->,\n description,\n name,\n identifier,\n thumbnail{ ..., asset-> },\n twitter,\n facebook,\n linkedin,\n twitterIcon,\n youtube,\n youtubeIcon,\n "affiliates": description[_type==\'slideshows\']{\n ...,\n slides->{...}\n }\n \n }\n }';
274
258
  }
275
259
 
276
260
  taxonomyQuery = '*[_type == \'documentGroup\' \n && !(_id in path("drafts.**"))\n && references(\'' + partnerDocumentGroupID + '\')\n && isShow != false\n && identifier.current == \'' + identifier + '\'] [0] {\n \'id\': _id,\n \'title\': name\n }';
@@ -11,7 +11,7 @@ import QueueDeckExpanded from './QueueDeckExpandedPaginated.js';
11
11
  import Breadcrumbs from './Breadcrumbs.js';
12
12
  import Feature from './Feature.js';
13
13
  import urlFor from './urlFor.js';
14
- import { g as getSerializers } from './index-0074586c.js';
14
+ import { g as getSerializers } from './index-264bbd3c.js';
15
15
  import { B as BlockContent } from './BlockContent-1e73bd2c.js';
16
16
  import './_commonjsHelpers-0c4b6f40.js';
17
17
  import './core.get-iterator-method-ea258bb1.js';
@@ -239,14 +239,14 @@ PartnerDetails.returnGetInitialProps = function () {
239
239
  switch (_context.prev = _context.next) {
240
240
  case 0:
241
241
  featureQuery = '*[_type == \'feature\' && is_active == true && feature_url == \'/' + partnerPageUrl + '/' + (category ? category + '/' : null) + identifier + '\'] | order(_updatedAt asc)[0..5]{\n ...,\n \'feature_img\' : feature_img.asset->\n }';
242
- partnerQuery = '*[_type == \'documentGroup\' \n && !(_id in path("drafts.**"))\n && references(\'' + partnerDocumentGroupID + '\')\n && identifier.current == \'' + identifier + '\'] | order(name asc) [0] {\n description,\n name,\n identifier,\n thumbnail{ ..., asset-> },\n twitter,\n facebook,\n linkedin,\n "affiliates": description[_type==\'slideshows\']{\n ...,\n slides->{...}\n }\n }';
242
+ partnerQuery = '*[_type == \'documentGroup\' \n && !(_id in path("drafts.**"))\n && references(\'' + partnerDocumentGroupID + '\')\n && identifier.current == \'' + identifier + '\'] | order(name asc) [0] {\n pixelTrackingCode->,\n description,\n name,\n identifier,\n thumbnail{ ..., asset-> },\n twitter,\n facebook,\n linkedin,\n "affiliates": description[_type==\'slideshows\']{\n ...,\n slides->{...}\n }\n }';
243
243
 
244
244
 
245
245
  if (category) {
246
246
  // if partners page has a sub category such as onclive
247
247
  // e.g. /sap-partner/[category]/[partner]
248
248
 
249
- partnerQuery = '*[_type == \'documentGroup\' && !(_id in path("drafts.**")) && identifier.current == \'' + category + '\' && references(\'' + partnerDocumentGroupID + '\')] [0] {\n ...,\n \'partner\': *[_type == \'documentGroup\' && identifier.current == \'' + identifier + '\' && references(^._id)] [0] {\n description,\n name,\n identifier,\n thumbnail{ ..., asset-> },\n twitter,\n facebook,\n linkedin,\n "affiliates": description[_type==\'slideshows\']{\n ...,\n slides->{...}\n }\n \n }\n }';
249
+ partnerQuery = '*[_type == \'documentGroup\' && !(_id in path("drafts.**")) && identifier.current == \'' + category + '\' && references(\'' + partnerDocumentGroupID + '\')] [0] {\n ...,\n \'partner\': *[_type == \'documentGroup\' && identifier.current == \'' + identifier + '\' && references(^._id)] [0] {\n pixelTrackingCode->,\n description,\n name,\n identifier,\n thumbnail{ ..., asset-> },\n twitter,\n facebook,\n linkedin,\n "affiliates": description[_type==\'slideshows\']{\n ...,\n slides->{...}\n }\n \n }\n }';
250
250
  }
251
251
 
252
252
  taxonomyQuery = '*[_type == \'documentGroup\' \n && !(_id in path("drafts.**"))\n && references(\'' + partnerDocumentGroupID + '\')\n && isShow != false\n && identifier.current == \'' + identifier + '\'] [0] {\n \'id\': _id,\n \'title\': name\n }';
@@ -0,0 +1,156 @@
1
+ import { _ as _slicedToArray } from './slicedToArray-6ebcbfea.js';
2
+ import React__default, { useState, useEffect } from 'react';
3
+ import { useRouter } from 'next/router';
4
+ import { V as VisibilitySensor } from './visibility-sensor-72fd8f8b.js';
5
+ import './_commonjsHelpers-0c4b6f40.js';
6
+ import './web.dom.iterable-ab4dea5c.js';
7
+ import './core.get-iterator-method-ea258bb1.js';
8
+ import 'react-dom';
9
+
10
+ var PixelTrackingLandingPages = React__default.memo(function (_ref) {
11
+ var pixelTracking = _ref.pixelTracking;
12
+
13
+ var _useState = useState(false),
14
+ _useState2 = _slicedToArray(_useState, 2),
15
+ needTracking = _useState2[0],
16
+ setNeedTracking = _useState2[1];
17
+
18
+ var _useState3 = useState(pixelTracking && pixelTracking.trackingCode ? pixelTracking.trackingCode : null),
19
+ _useState4 = _slicedToArray(_useState3, 2),
20
+ trackingCode = _useState4[0];
21
+ _useState4[1];
22
+
23
+ if (!pixelTracking) return null;
24
+
25
+ var router = useRouter();
26
+
27
+ useEffect(function () {
28
+ if (trackingCode && pixelTracking.is_active) {
29
+ setNeedTracking(true);
30
+ }
31
+ }, [trackingCode]);
32
+
33
+ useEffect(function () {
34
+ router.events.on('routeChangeComplete', function () {
35
+ handleReload();
36
+ });
37
+ return function () {
38
+ router.events.off('routeChangeComplete', function () {});
39
+ };
40
+ }, [router.events]);
41
+
42
+ var handleReload = function handleReload() {
43
+ setNeedTracking(false);
44
+ setTimeout(function () {
45
+ setNeedTracking(true);
46
+ }, 100);
47
+ };
48
+
49
+ return React__default.createElement(
50
+ React__default.Fragment,
51
+ null,
52
+ needTracking && React__default.createElement('div', { style: { height: '0', opacity: 0 }, key: trackingCode, dangerouslySetInnerHTML: { __html: trackingCode } })
53
+ );
54
+ });
55
+
56
+ // Article page tracking
57
+
58
+ var PixelTrackingArticle = React__default.memo(function (_ref2) {
59
+ var article = _ref2.article,
60
+ infiniteScroll = _ref2.infiniteScroll;
61
+
62
+ var _useState5 = useState(false),
63
+ _useState6 = _slicedToArray(_useState5, 2),
64
+ needTracking = _useState6[0],
65
+ setNeedTracking = _useState6[1];
66
+
67
+ var _useState7 = useState([]),
68
+ _useState8 = _slicedToArray(_useState7, 2),
69
+ trackingCode = _useState8[0],
70
+ setTrackingCode = _useState8[1];
71
+
72
+ var _useState9 = useState(false),
73
+ _useState10 = _slicedToArray(_useState9, 2),
74
+ inView = _useState10[0],
75
+ setInView = _useState10[1];
76
+
77
+ var _useState11 = useState(0),
78
+ _useState12 = _slicedToArray(_useState11, 2),
79
+ containerHeight = _useState12[0],
80
+ setContainerHeight = _useState12[1];
81
+
82
+ if (!article) return null;
83
+
84
+ useEffect(function () {
85
+ setContainerHeight(window.innerHeight);
86
+ var trackingArray = [];
87
+
88
+ //content_placement
89
+ if (article.content_placement && article.content_placement.length) {
90
+ article.content_placement.forEach(function (cp) {
91
+ if (cp.pixelTrackingCode && cp.pixelTrackingCode.trackingCode && cp.pixelTrackingCode.is_active) {
92
+ // console.log('has pixel code: content placement :', cp.pixelTrackingCode.trackingCode)
93
+ if (!trackingArray.includes(cp.pixelTrackingCode.trackingCode)) {
94
+ trackingArray.push(cp.pixelTrackingCode.trackingCode);
95
+ }
96
+ }
97
+ });
98
+ }
99
+
100
+ //documentGroup
101
+ if (article.documentGroup && article.documentGroup.pixelTrackingCode) {
102
+ if (article.documentGroup.pixelTrackingCode.trackingCode && article.documentGroup.pixelTrackingCode.is_active) {
103
+ // console.log('has pixel code: docGroup :', article.documentGroup.pixelTrackingCode.trackingCode)
104
+ if (!trackingArray.includes(article.documentGroup.pixelTrackingCode.trackingCode)) {
105
+ trackingArray.push(article.documentGroup.pixelTrackingCode.trackingCode);
106
+ }
107
+ }
108
+ }
109
+
110
+ //documentGroupMapping
111
+ if (article.documentGroupMapping && article.documentGroupMapping.length) {
112
+ article.documentGroupMapping.forEach(function (dg) {
113
+ if (dg.pixelTrackingCode && dg.pixelTrackingCode.trackingCode && dg.pixelTrackingCode.is_active) {
114
+ // console.log('has pixel code: DG Mapping :', dg.pixelTrackingCode.trackingCode)
115
+ if (!trackingArray.includes(dg.pixelTrackingCode.trackingCode)) {
116
+ trackingArray.push(dg.pixelTrackingCode.trackingCode);
117
+ }
118
+ }
119
+ });
120
+ }
121
+ if (trackingArray.length > 0) {
122
+ setTrackingCode(trackingArray);
123
+ }
124
+ }, []);
125
+
126
+ useEffect(function () {
127
+ if (trackingCode && trackingCode.length > 0) {
128
+ setNeedTracking(true);
129
+ }
130
+ }, [trackingCode]);
131
+
132
+ var triggerOffset = 20;
133
+ return React__default.createElement(
134
+ VisibilitySensor,
135
+ {
136
+ partialVisibility: true,
137
+ offset: { bottom: triggerOffset, top: containerHeight && containerHeight },
138
+ onChange: function onChange(isVisible) {
139
+
140
+ if (isVisible && !inView) {
141
+ setInView(true);
142
+ } else if (infiniteScroll) {
143
+ if (inView) setInView(false);
144
+ }
145
+ } },
146
+ React__default.createElement(
147
+ 'div',
148
+ { style: { height: '100%', position: 'absolute', width: '1px', opacity: 0 } },
149
+ needTracking && inView && trackingCode && trackingCode.map(function (code, index) {
150
+ return React__default.createElement('span', { key: code, id: 'pixel-' + (index + 1), dangerouslySetInnerHTML: { __html: code } });
151
+ })
152
+ )
153
+ );
154
+ });
155
+
156
+ export { PixelTrackingArticle, PixelTrackingLandingPages };
@@ -5,7 +5,7 @@ import React__default, { useState, useEffect } from 'react';
5
5
  import { useRouter } from 'next/router';
6
6
  import Head from 'next/head';
7
7
  import { B as BlockContent } from './BlockContent-1e73bd2c.js';
8
- import { g as getSerializers } from './index-0074586c.js';
8
+ import { g as getSerializers } from './index-264bbd3c.js';
9
9
  import './_commonjsHelpers-0c4b6f40.js';
10
10
  import './core.get-iterator-method-ea258bb1.js';
11
11
  import './_object-pie-133f504a.js';
@@ -160,7 +160,7 @@ TaxonomyDescription.getDescription = function () {
160
160
  while (1) {
161
161
  switch (_context2.prev = _context2.next) {
162
162
  case 0:
163
- query = '*[_type == \'taxonomy\' && identifier == \'' + url + '\'][0].summary';
163
+ query = '*[_type == \'taxonomy\' && identifier == \'' + url + '\'][0]{summary,pixelTrackingCode->}';
164
164
  summary = [];
165
165
  _context2.prev = 2;
166
166
  _context2.next = 5;
@@ -5,7 +5,7 @@ import { B as BlockContent } from './BlockContent-1e73bd2c.js';
5
5
  import Col from 'react-bootstrap/Col';
6
6
  import Form from 'react-bootstrap/Form';
7
7
  import Button from 'react-bootstrap/Button';
8
- import { g as getSerializers } from './index-0074586c.js';
8
+ import { g as getSerializers } from './index-264bbd3c.js';
9
9
  import VideoSeriesListing from './VideoSeriesListing.js';
10
10
  import './_commonjsHelpers-0c4b6f40.js';
11
11
  import './core.get-iterator-method-ea258bb1.js';
package/dist/esm/View.js CHANGED
@@ -15,7 +15,7 @@ import FormControl from 'react-bootstrap/FormControl';
15
15
  import Button from 'react-bootstrap/Button';
16
16
  import { V as VisibilitySensor } from './visibility-sensor-72fd8f8b.js';
17
17
  import SocialShare from './SocialShare.js';
18
- import { r as renderAuthor, g as getSerializers } from './index-0074586c.js';
18
+ import { r as renderAuthor, g as getSerializers } from './index-264bbd3c.js';
19
19
  import DFPAdSlot from './AdSlot.js';
20
20
  import { S as SeriesSlider } from './SeriesSlider-f771e20d.js';
21
21
  import { a as getContentPlacementUrl, g as getTargeting } from './getTargeting-42f9b439.js';
@@ -29,6 +29,7 @@ import './index-755f2cc2.js';
29
29
  import { DiscussionEmbed } from 'disqus-react';
30
30
  import Schema from './Schema.js';
31
31
  import { c as createCommonjsModule, a as commonjsGlobal } from './_commonjsHelpers-0c4b6f40.js';
32
+ import { PixelTrackingArticle } from './PixelTracking.js';
32
33
  import { _ as _Object$keys } from './keys-31dcdb31.js';
33
34
  import { I as InfiniteScroll } from './index.es-a6137319.js';
34
35
  import { l as lib_3 } from './index-f0fc23eb.js';
@@ -666,7 +667,7 @@ var Recommended = function Recommended(props) {
666
667
 
667
668
  return React__default.createElement(
668
669
  'div',
669
- { id: 'recommended' },
670
+ { id: 'recommended', style: { minHeight: '150px' } },
670
671
  loaded === 'loaded' && React__default.createElement(
671
672
  React__default.Fragment,
672
673
  null,
@@ -1199,7 +1200,7 @@ var Article = React__default.memo(forwardRef(function (props, ref) {
1199
1200
  return null;
1200
1201
  };
1201
1202
 
1202
- var RelatedContent = function RelatedContent() {
1203
+ var RelatedContent = React__default.memo(function () {
1203
1204
  return React__default.createElement(
1204
1205
  'div',
1205
1206
  null,
@@ -1235,7 +1236,7 @@ var Article = React__default.memo(forwardRef(function (props, ref) {
1235
1236
  )
1236
1237
  )
1237
1238
  );
1238
- };
1239
+ });
1239
1240
 
1240
1241
  var form = function form() {
1241
1242
  return React__default.createElement(
@@ -1575,7 +1576,8 @@ var Article = React__default.memo(forwardRef(function (props, ref) {
1575
1576
  } },
1576
1577
  React__default.createElement(
1577
1578
  'div',
1578
- { id: 'article__block', ref: ref },
1579
+ { id: 'article__block', style: { position: 'relative' }, ref: ref },
1580
+ React__default.createElement(PixelTrackingArticle, { article: article, infiniteScroll: props.infiniteScroll }),
1579
1581
  React__default.createElement(
1580
1582
  'div',
1581
1583
  { className: 'video-detail', style: { marginBottom: isCutomPage(props.article) || showIsi && Array.isArray(isi) && isi.length > 0 ? '15rem' : 0 } },
@@ -9,9 +9,9 @@ var getQuery = function getQuery(type) {
9
9
  switch (type) {
10
10
  // quiz video series and slideshow
11
11
  case 'related':
12
- return '*[\n _type == "article"\n && defined(title)\n && defined(url)\n && !(_id in path("drafts.**"))\n && is_visible == true\n && defined(published) \n && dateTime(published) <= dateTime(now())\n && passwordLock!=true\n && isHealthcareProfessional != true\n && taxonomyMapping[]._ref in $taxonomy\n && taxonomyMapping[].disableAds != \'true\'\n && contentCategory->.name != \'Poll\'\n && contentCategory->.name != \'Slideshows\'\n && contentCategory->.disableAds != \'true\'\n && ExcludeFromInfiniteScroll !=true\n && url.current != $url\n && !defined(body[].videos)\n && !defined(body[].quizzes)\n && !defined(body[].slides)\n && !defined(body[].articles)\n ' + conditions + '\n ]| order(published desc)[' + (articleCount ? articleCount : '$index') + ']{\n ' + params + '\n title,\n published,\n summary,\n thumbnail,\n fieldAbstract,\n ...,\n passwordLock,\n password,\n "authorDetails": authorMapping[]->{ displayName, url, profileImage, biography, showSocialShare },\n body[] {\n ...,\n asset->,\n images[]{\n ...,\n asset->\n },\n content[]{\n ...,\n asset->\n },\n videos[]{\n ...,\n thumbnail{\n _type,\n asset->\n }\n },\n response[]{\n ...,\n asset->\n },\n quizzes[]{\n ...,\n answer[]{\n ...,\n asset->\n },\n question[]{\n ...,\n asset->\n }\n },\n poster {\n _type,\n asset->\n },\n slides[]{\n ...,\n slideshowImage{\n ...,\n asset->\n }\n },\n upload_doc {\n _type,\n asset->\n },\n uploadAudio {\n _type,\n asset->\n }\n },\n \'category\':contentCategory->{\n name,\n disableAds\n },\n \'content_placement\': taxonomyMapping[]-> {\n _id,\n \'ancestor\': parent->parent->identifier,\n \'parent\': parent->identifier,\n \'name\': name,\n \'path\': identifier,\n disableAds,\n showSocialShare\n },\n documentGroup-> {\n name,\n thumbnail,\n parent->{...,parent->},\n isShow,\n showSocialShare,\n \'path\': identifier.current,\n adTargetingURL,\n hideSeriesSlider\n },\n documentGroupMapping[]-> {\n _id,\n name,\n thumbnail,\n parent->{...,parent->},\n isShow,\n showSocialShare,\n \'path\': identifier.current,\n adTargetingURL,\n hideSeriesSlider\n },\n \'issue\' : *[_type == \'publication\' && !(_id in path("drafts.**")) && is_visible == true && _id == ^.issueGroup._ref][0] {\n name,\n \'path\': identifier.current,\n show_download_ris_button,\n \'publication\' : *[_type == \'publication\' && !(_id in path("drafts.**")) && is_visible == true && _id == ^.parent._ref][0] {\n name,\n \'path\': identifier.current,\n show_download_ris_button,\n },\n \'url\' : pdf.asset-> url,\n \'pdf\': pdf.asset->,\n isbn_issn,\n abbreviatedJournal,\n }\n }';
12
+ return '*[\n _type == "article"\n && defined(title)\n && defined(url)\n && !(_id in path("drafts.**"))\n && is_visible == true\n && defined(published) \n && dateTime(published) <= dateTime(now())\n && passwordLock!=true\n && isHealthcareProfessional != true\n && taxonomyMapping[]._ref in $taxonomy\n && taxonomyMapping[].disableAds != \'true\'\n && contentCategory->.name != \'Poll\'\n && contentCategory->.name != \'Slideshows\'\n && contentCategory->.disableAds != \'true\'\n && ExcludeFromInfiniteScroll !=true\n && url.current != $url\n && !defined(body[].videos)\n && !defined(body[].quizzes)\n && !defined(body[].slides)\n && !defined(body[].articles)\n ' + conditions + '\n ]| order(published desc)[' + (articleCount ? articleCount : '$index') + ']{\n ' + params + '\n title,\n published,\n summary,\n thumbnail,\n fieldAbstract,\n ...,\n passwordLock,\n password,\n "authorDetails": authorMapping[]->{ displayName, url, profileImage, biography, showSocialShare },\n body[] {\n ...,\n asset->,\n images[]{\n ...,\n asset->\n },\n content[]{\n ...,\n asset->\n },\n videos[]{\n ...,\n thumbnail{\n _type,\n asset->\n }\n },\n response[]{\n ...,\n asset->\n },\n quizzes[]{\n ...,\n answer[]{\n ...,\n asset->\n },\n question[]{\n ...,\n asset->\n }\n },\n poster {\n _type,\n asset->\n },\n slides[]{\n ...,\n slideshowImage{\n ...,\n asset->\n }\n },\n upload_doc {\n _type,\n asset->\n },\n uploadAudio {\n _type,\n asset->\n }\n },\n \'category\':contentCategory->{\n name,\n disableAds\n },\n \'content_placement\': taxonomyMapping[]-> {\n _id,\n \'ancestor\': parent->parent->identifier,\n \'parent\': parent->identifier,\n \'name\': name,\n \'path\': identifier,\n disableAds,\n showSocialShare,\n pixelTrackingCode->\n },\n documentGroup-> {\n name,\n thumbnail,\n parent->{...,parent->},\n isShow,\n showSocialShare,\n \'path\': identifier.current,\n adTargetingURL,\n hideSeriesSlider,\n pixelTrackingCode->\n },\n documentGroupMapping[]-> {\n _id,\n name,\n thumbnail,\n parent->{...,parent->},\n isShow,\n showSocialShare,\n \'path\': identifier.current,\n adTargetingURL,\n hideSeriesSlider,\n pixelTrackingCode->\n },\n \'issue\' : *[_type == \'publication\' && !(_id in path("drafts.**")) && is_visible == true && _id == ^.issueGroup._ref][0] {\n name,\n \'path\': identifier.current,\n show_download_ris_button,\n \'publication\' : *[_type == \'publication\' && !(_id in path("drafts.**")) && is_visible == true && _id == ^.parent._ref][0] {\n name,\n \'path\': identifier.current,\n show_download_ris_button,\n },\n \'url\' : pdf.asset-> url,\n \'pdf\': pdf.asset->,\n isbn_issn,\n abbreviatedJournal,\n }\n }';
13
13
  case 'article':
14
- return '*[\n _type == "article"\n && !(_id in path("drafts.**"))\n && defined(title)\n && defined(url)\n && is_visible != false\n && url.current == $url\n ' + conditions + '\n ][0]{\n ' + params + '\n title,\n published,\n summary,\n thumbnail,\n fieldAbstract,\n ...,\n passwordLock,\n password,\n issueGroup-> { _id, name, identifier, parent-> },\n "authorDetails": authorMapping[]->{ displayName, url, profileImage, biography, showSocialShare },\n body[] {\n ...,\n asset->,\n images[]{\n ...,\n asset->\n },\n content[]{\n ...,\n asset->\n },\n videos[]{\n ...,\n thumbnail{\n _type,\n asset->\n }\n },\n response[]{\n ...,\n asset->\n },\n quizzes[]{\n ...,\n answer[]{\n ...,\n asset->\n },\n question[]{\n ...,\n asset->\n }\n },\n poster {\n _type,\n asset->\n },\n slides[]{\n ...,\n slideshowImage{\n ...,\n asset->\n }\n },\n upload_doc {\n _type,\n asset->\n },\n uploadAudio {\n _type,\n asset->\n },\n medias[]{\n ...,\n upload_doc {\n _type,\n asset-> \n },\n poster {\n _type,\n asset-> \n }\n },\n articles[]{\n ...,\n thumbnail{\n ...,\n asset-> \n },\n "authorDetails": authorMapping[]->{ displayName, url, profileImage, biography, showSocialShare },\n text[]{\n ...,\n upload_doc {\n _type,\n asset->\n },\n uploadAudio {\n _type,\n asset->\n },\n }\n }\n },\n \'content_placement\': taxonomyMapping[]-> {\n ...,\n \'ancestor\': parent->parent->identifier,\n \'parent\': parent->identifier,\n \'name\': name,\n \'path\': identifier,\n showSocialShare\n },\n documentGroup-> {\n _id,\n name,\n thumbnail,\n parent->{...,parent->},\n isShow,\n isSeries,\n disableEpisodeNumber,\n excludeRelatedContents,\n showSocialShare,\n \'path\': identifier.current,\n adTargetingURL,\n hideSeriesSlider\n },\n documentGroupMapping[]-> {\n _id,\n name,\n thumbnail,\n parent->{...,parent->},\n isShow,\n showSocialShare,\n excludeRelatedContents,\n \'path\': identifier.current,\n hideSeriesSlider\n },\n \'category\':contentCategory->{\n name,\n disableAds\n },\n \'issue\' : *[_type == \'publication\' && !(_id in path("drafts.**")) && is_visible == true && _id == ^.issueGroup._ref][0] {\n name,\n volume,\n year,\n \'issueNumber\': number,\n \'articleSource\': source,\n \'path\': identifier.current,\n show_download_ris_button,\n \'publication\' : *[_type == \'publication\' && !(_id in path("drafts.**")) && is_visible == true && _id == ^.parent._ref][0] {\n name,\n \'path\': identifier.current,\n show_download_ris_button,\n },\n \'url\' : pdf.asset-> url,\n \'pdf\': pdf.asset->,\n isbn_issn,\n abbreviatedJournal,\n }\n\n }';
14
+ return '*[\n _type == "article"\n && !(_id in path("drafts.**"))\n && defined(title)\n && defined(url)\n && is_visible != false\n && url.current == $url\n ' + conditions + '\n ][0]{\n ' + params + '\n title,\n published,\n summary,\n thumbnail,\n fieldAbstract,\n ...,\n passwordLock,\n password,\n issueGroup-> { _id, name, identifier, parent-> },\n "authorDetails": authorMapping[]->{ displayName, url, profileImage, biography, showSocialShare },\n body[] {\n ...,\n asset->,\n images[]{\n ...,\n asset->\n },\n content[]{\n ...,\n asset->\n },\n videos[]{\n ...,\n thumbnail{\n _type,\n asset->\n }\n },\n response[]{\n ...,\n asset->\n },\n quizzes[]{\n ...,\n answer[]{\n ...,\n asset->\n },\n question[]{\n ...,\n asset->\n }\n },\n poster {\n _type,\n asset->\n },\n slides[]{\n ...,\n slideshowImage{\n ...,\n asset->\n }\n },\n upload_doc {\n _type,\n asset->\n },\n uploadAudio {\n _type,\n asset->\n },\n medias[]{\n ...,\n upload_doc {\n _type,\n asset-> \n },\n poster {\n _type,\n asset-> \n }\n },\n articles[]{\n ...,\n thumbnail{\n ...,\n asset-> \n },\n "authorDetails": authorMapping[]->{ displayName, url, profileImage, biography, showSocialShare },\n text[]{\n ...,\n upload_doc {\n _type,\n asset->\n },\n uploadAudio {\n _type,\n asset->\n },\n }\n }\n },\n \'content_placement\': taxonomyMapping[]-> {\n ...,\n \'ancestor\': parent->parent->identifier,\n \'parent\': parent->identifier,\n \'name\': name,\n \'path\': identifier,\n showSocialShare,\n pixelTrackingCode->\n },\n documentGroup-> {\n _id,\n name,\n thumbnail,\n parent->{...,parent->},\n isShow,\n isSeries,\n disableEpisodeNumber,\n excludeRelatedContents,\n showSocialShare,\n \'path\': identifier.current,\n adTargetingURL,\n hideSeriesSlider,\n pixelTrackingCode->\n },\n documentGroupMapping[]-> {\n _id,\n name,\n thumbnail,\n parent->{...,parent->},\n isShow,\n showSocialShare,\n excludeRelatedContents,\n \'path\': identifier.current,\n hideSeriesSlider,\n pixelTrackingCode->\n },\n \'category\':contentCategory->{\n name,\n disableAds\n },\n \'issue\' : *[_type == \'publication\' && !(_id in path("drafts.**")) && is_visible == true && _id == ^.issueGroup._ref][0] {\n name,\n volume,\n year,\n \'issueNumber\': number,\n \'articleSource\': source,\n \'path\': identifier.current,\n show_download_ris_button,\n \'publication\' : *[_type == \'publication\' && !(_id in path("drafts.**")) && is_visible == true && _id == ^.parent._ref][0] {\n name,\n \'path\': identifier.current,\n show_download_ris_button,\n },\n \'url\' : pdf.asset-> url,\n \'pdf\': pdf.asset->,\n isbn_issn,\n abbreviatedJournal,\n }\n\n }';
15
15
  case 'publication':
16
16
  return '*[_type == \'publication\'\n && identifier.current == $publication\n ' + conditions + '][0] {\n ' + params + '\n ...,\n \'issues\': *[_type == \'publication\'\n && is_visible\n && references(^._id)\n && defined(identifier)] {\n ...,\n thumbnail{ ..., asset-> },\n taxonomyMapping[]->,\n pdf{asset->},\n } | order(year desc, month desc)\n }';
17
17
  case 'issue':
@@ -1,6 +1,6 @@
1
1
  import './extends-6d8e3924.js';
2
2
  import 'react';
3
- export { g as default } from './index-0074586c.js';
3
+ export { g as default } from './index-264bbd3c.js';
4
4
  import './BlockContent-1e73bd2c.js';
5
5
  import './entities-6d9154b4.js';
6
6
  import './_commonjsHelpers-0c4b6f40.js';
@@ -7486,7 +7486,7 @@ var ReactPlayer = unwrapExports(ReactPlayer_1);
7486
7486
  var Audio = function Audio(_ref) {
7487
7487
  var node = _ref.node;
7488
7488
 
7489
- var audioSource = node.uploadAudio.asset.url;
7489
+ var audioSource = node && node.uploadAudio ? node.uploadAudio.asset.url : '';
7490
7490
  var reportPlay = function reportPlay() {
7491
7491
  console.log('Reporting audio playback play to GA');
7492
7492
  ReactGA.event({
@@ -10362,6 +10362,15 @@ var BlockTable = function BlockTable(props) {
10362
10362
  );
10363
10363
  };
10364
10364
 
10365
+ var DigiohSmartTag = function DigiohSmartTag(props) {
10366
+ var _props$node = props.node,
10367
+ FormID = _props$node.FormID;
10368
+ _props$node.needSegmentSupport;
10369
+
10370
+
10371
+ return React__default.createElement('div', { id: FormID });
10372
+ };
10373
+
10365
10374
  var ScrollToElement = function ScrollToElement(elementId) {
10366
10375
  var element = document.getElementById(elementId);
10367
10376
  if (element) {
@@ -10580,6 +10589,7 @@ var getSerializers = function getSerializers() {
10580
10589
  return React__default.createElement(Formstack, { FormID: FormID, Caption: Caption, needSegmentSupport: needSegmentSupport });
10581
10590
  },
10582
10591
  formassembly: FormAssembly,
10592
+ digiohSmartTag: DigiohSmartTag,
10583
10593
  multimedia: function multimedia(_ref21) {
10584
10594
  var node = _ref21.node;
10585
10595
 
package/dist/esm/index.js CHANGED
@@ -78,6 +78,7 @@ import { _ as _slicedToArray } from './slicedToArray-6ebcbfea.js';
78
78
  import PropTypes from 'prop-types';
79
79
  import { m as momentTimezone } from './index-79cfd25c.js';
80
80
  import ProgressBar from 'react-bootstrap/ProgressBar';
81
+ export { PixelTrackingArticle, PixelTrackingLandingPages } from './PixelTracking.js';
81
82
  export { default as ForbesHero } from './ForbesHero.js';
82
83
  export { default as HorizontalHero } from './HorizontalHero.js';
83
84
  export { default as OncliveHero } from './OncliveHero.js';
@@ -86,7 +87,7 @@ export { default as VerticalHero } from './VerticalHero.js';
86
87
  export { default as YahooHero } from './YahooHero.js';
87
88
  export { default as GridHero } from './GridHero.js';
88
89
  export { default as ConferenceArticleCard } from './ConferenceArticleCard.js';
89
- export { g as getSerializers } from './index-0074586c.js';
90
+ export { g as getSerializers } from './index-264bbd3c.js';
90
91
  export { default as Beam } from './Beam.js';
91
92
  export { default as Segment } from './Segment.js';
92
93
  export { default as KMTracker } from './KMTracker.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mjhls/mjh-framework",
3
- "version": "1.0.967-socialicon-fix-v2",
3
+ "version": "1.0.968-test-D4S-1910",
4
4
  "description": "Foundation Framework",
5
5
  "author": "mjh-framework",
6
6
  "license": "MIT",