@times-components/article-comments 0.45.1-e8bf85bb27ab227814fc74c9bbfefb70e779fcf8.6 → 0.45.2

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/CHANGELOG.md CHANGED
@@ -3,6 +3,28 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [0.45.2](https://github.com/newsuk/times-components/compare/@times-components/article-comments@0.45.1...@times-components/article-comments@0.45.2) (2025-03-25)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **TMW-000:** Commenting entitlement logic ([#4108](https://github.com/newsuk/times-components/issues/4108)) ([9e136a6](https://github.com/newsuk/times-components/commit/9e136a6b8f4be12831aac7a5545cb7450ff2745f))
12
+
13
+
14
+
15
+
16
+
17
+ ## [0.45.1](https://github.com/newsuk/times-components/compare/@times-components/article-comments@0.45.0...@times-components/article-comments@0.45.1) (2025-03-24)
18
+
19
+
20
+ ### Bug Fixes
21
+
22
+ * **TMW-000:** Commenting entitlement logic ([#4107](https://github.com/newsuk/times-components/issues/4107)) ([06d1764](https://github.com/newsuk/times-components/commit/06d17648fe0817a1952746b0de95b172967cdf31))
23
+
24
+
25
+
26
+
27
+
6
28
  # [0.45.0](https://github.com/newsuk/times-components/compare/@times-components/article-comments@0.44.44...@times-components/article-comments@0.45.0) (2025-03-21)
7
29
 
8
30
 
@@ -9,8 +9,6 @@ var _react = _interopRequireWildcard(require("react"));
9
9
 
10
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
11
11
 
12
- var _userState = _interopRequireDefault(require("@times-components/user-state"));
13
-
14
12
  var _utils = require("@times-components/utils");
15
13
 
16
14
  var _comments = _interopRequireDefault(require("./comments"));
@@ -37,101 +35,51 @@ function _iterableToArrayLimit(arr, i) { var _i = arr && (typeof Symbol !== "und
37
35
 
38
36
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
39
37
 
38
+ const COOKIE_NAME = "access-decisions";
39
+ const ENTITLEMENT_SLUG = "functionalCommentingFull";
40
+ const FEATURE_FLAG_NAME = "entitlements";
41
+
40
42
  const ArticleComments = _ref => {
41
43
  let articleId = _ref.articleId,
42
44
  isEnabled = _ref.isEnabled,
43
45
  isReadOnly = _ref.isReadOnly,
44
46
  commentingConfig = _ref.commentingConfig,
45
- isCommentEnabled = _ref.isCommentEnabled,
46
47
  storefrontConfig = _ref.storefrontConfig,
47
48
  domainSpecificUrl = _ref.domainSpecificUrl;
48
49
 
49
50
  const _useState = (0, _react.useState)(undefined),
50
51
  _useState2 = _slicedToArray(_useState, 2),
51
- zephrEntitlementResponse = _useState2[0],
52
- setZephrEntitlementResponse = _useState2[1];
52
+ isEntitled = _useState2[0],
53
+ setIsEntitled = _useState2[1];
53
54
 
54
- const urlParams = new URLSearchParams(window.location.search);
55
- const entitlementsFF = !!urlParams.get("entitlements");
56
55
  (0, _react.useEffect)(() => {
57
- const convertBase64JSONCookie = cookieValue => {
58
- try {
59
- return cookieValue ? JSON.parse(atob(cookieValue)) : undefined;
60
- } catch (e) {
61
- return undefined;
62
- }
63
- };
64
-
65
- const fetchClientSideCookie = () => {
66
- const cookies = document.cookie.split("; ");
67
- const authDecisionCookie = cookies.find(row => row.startsWith("access-decisions="));
68
- const cookieValue = authDecisionCookie ? authDecisionCookie.split("=")[1] : null;
69
-
70
- if (cookieValue) {
71
- try {
72
- const jsonValue = convertBase64JSONCookie(cookieValue);
73
- const entitlementChecker = (0, _utils.hasEntitlement)(jsonValue);
74
- const entitlements = entitlementChecker("functionalCommentingFull");
75
- setZephrEntitlementResponse(entitlements);
76
- } catch (error) {
77
- setZephrEntitlementResponse(false);
78
- }
79
- } else {
80
- setZephrEntitlementResponse(false);
81
- }
82
- };
56
+ const search = new URLSearchParams(window.location.search);
83
57
 
84
- if (entitlementsFF) {
85
- // Fetched client side cookie if FF is true
86
- fetchClientSideCookie();
58
+ if (search.get(FEATURE_FLAG_NAME)) {
59
+ const decisions = (0, _utils.getBase64CookieValue)(COOKIE_NAME);
60
+
61
+ if (decisions) {
62
+ setIsEntitled((0, _utils.hasEntitlement)(decisions, ENTITLEMENT_SLUG));
63
+ }
87
64
  }
88
- }, [entitlementsFF]); // Returns null until the client side cookie is fetched and FF is true
65
+ }, []);
89
66
 
90
- if (entitlementsFF && zephrEntitlementResponse === undefined) {
67
+ if (isEntitled === undefined) {
91
68
  return null;
92
69
  }
93
70
 
94
- const FallbackContent = () => isEnabled && isCommentEnabled ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_userState.default, {
95
- state: _userState.default.showJoinTheConversationDialog
96
- }, /*#__PURE__*/_react.default.createElement(_joinTheConversationDialog.default, {
97
- storefrontConfig: storefrontConfig
98
- })), /*#__PURE__*/_react.default.createElement(_userState.default, {
99
- state: _userState.default.showCommentingModule
100
- }, /*#__PURE__*/_react.default.createElement(_comments.default, {
71
+ if (!isEnabled === undefined) {
72
+ return /*#__PURE__*/_react.default.createElement(_disabledComments.default, null);
73
+ }
74
+
75
+ return isEntitled ? /*#__PURE__*/_react.default.createElement(_comments.default, {
101
76
  articleId: articleId,
102
77
  isReadOnly: isReadOnly,
103
78
  commentingConfig: commentingConfig,
104
79
  domainSpecificUrl: domainSpecificUrl
105
- }))) : /*#__PURE__*/_react.default.createElement(_disabledComments.default, null);
106
-
107
- const RenderZephrBasedContent = () => {
108
- let content;
109
-
110
- if (!(isEnabled && isCommentEnabled)) {
111
- content = /*#__PURE__*/_react.default.createElement(_disabledComments.default, null);
112
- } else if (zephrEntitlementResponse) {
113
- content = /*#__PURE__*/_react.default.createElement(_comments.default, {
114
- articleId: articleId,
115
- isReadOnly: isReadOnly,
116
- commentingConfig: commentingConfig,
117
- domainSpecificUrl: domainSpecificUrl
118
- });
119
- } else {
120
- content = /*#__PURE__*/_react.default.createElement(_joinTheConversationDialog.default, {
121
- storefrontConfig: storefrontConfig
122
- });
123
- }
124
-
125
- return /*#__PURE__*/_react.default.createElement(_userState.default, {
126
- state: _userState.default.showArticleComments
127
- }, content);
128
- };
129
-
130
- if (entitlementsFF) {
131
- return RenderZephrBasedContent();
132
- }
133
-
134
- return FallbackContent();
80
+ }) : /*#__PURE__*/_react.default.createElement(_joinTheConversationDialog.default, {
81
+ storefrontConfig: storefrontConfig
82
+ });
135
83
  };
136
84
 
137
85
  ArticleComments.propTypes = {
@@ -142,12 +90,10 @@ ArticleComments.propTypes = {
142
90
  account: _propTypes.default.string.isRequired
143
91
  }).isRequired,
144
92
  storefrontConfig: _propTypes.default.string.isRequired,
145
- isCommentEnabled: _propTypes.default.bool,
146
93
  domainSpecificUrl: _propTypes.default.string.isRequired
147
94
  };
148
95
  ArticleComments.defaultProps = {
149
- isReadOnly: false,
150
- isCommentEnabled: true
96
+ isReadOnly: false
151
97
  };
152
98
  var _default = ArticleComments;
153
99
  exports.default = _default;
@@ -7,22 +7,31 @@ exports.default = void 0;
7
7
 
8
8
  var _react = _interopRequireDefault(require("react"));
9
9
 
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+
10
12
  var _tsComponents = require("@times-components/ts-components");
11
13
 
12
14
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
15
 
14
16
  /* eslint-env browser */
17
+ const JoinTheConversationDialog = _ref => {
18
+ let storefrontConfig = _ref.storefrontConfig;
19
+ const isLightPackUser = window.nuk && window.nuk.user && window.nuk.user.isLightPackUser;
20
+ const href = isLightPackUser ? null : storefrontConfig; // temp solution until the modal is moved out to a proper UI repo
21
+ // this event triggers cps-content-render/packages/components-global/src/FreeArticlePromotion/FreeArticleBottomBanner/FreeArticleBottomBanner.tsx
22
+ // todo: remove this event dispatching and implement the modal from the shared UI component repo
15
23
 
16
- /* eslint no-underscore-dangle: 0 */
17
- const JoinTheConversationDialog = () => {
18
- const href = window.__TIMES_CONFIG__ && window.__TIMES_CONFIG__.account && window.__TIMES_CONFIG__.account.url;
24
+ const onClick = isLightPackUser ? () => document && document.dispatchEvent(new Event("show::upgrade::modal")) : null;
19
25
  return /*#__PURE__*/_react.default.createElement(_tsComponents.InlineDialog, {
20
26
  title: "Join the conversation",
21
- buttonText: "Go to My account",
27
+ buttonText: "View offers",
22
28
  href: href,
23
- onClick: () => {}
29
+ onClick: onClick
24
30
  }, "Commenting is only available to unlimited access subscribers. Upgrade your subscription to have your say.");
25
31
  };
26
32
 
33
+ JoinTheConversationDialog.propTypes = {
34
+ storefrontConfig: _propTypes.default.string.isRequired
35
+ };
27
36
  var _default = JoinTheConversationDialog;
28
37
  exports.default = _default;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@times-components/article-comments",
3
- "version": "0.45.1-e8bf85bb27ab227814fc74c9bbfefb70e779fcf8.6+e8bf85bb27",
3
+ "version": "0.45.2",
4
4
  "description": "Article Comments",
5
5
  "main": "dist/article-comments",
6
6
  "dev": "src/article-comments",
@@ -33,12 +33,12 @@
33
33
  },
34
34
  "homepage": "https://github.com/newsuk/times-components#readme",
35
35
  "dependencies": {
36
- "@times-components/link": "^3.17.39",
37
- "@times-components/tracking": "^2.22.39",
38
- "@times-components/ts-components": "^1.124.1",
39
- "@times-components/ts-styleguide": "^1.51.1",
40
- "@times-components/user-state": "^0.6.0",
41
- "@times-components/utils": "^6.30.0",
36
+ "@times-components/link": "3.17.41",
37
+ "@times-components/tracking": "2.22.41",
38
+ "@times-components/ts-components": "1.124.3",
39
+ "@times-components/ts-styleguide": "1.51.3",
40
+ "@times-components/user-state": "0.6.2",
41
+ "@times-components/utils": "6.30.1",
42
42
  "prop-types": "15.7.2",
43
43
  "styled-components": "4.3.2"
44
44
  },
@@ -46,10 +46,10 @@
46
46
  "@babel/core": "7.4.4",
47
47
  "@testing-library/jest-dom": "^5.12.0",
48
48
  "@testing-library/react": "^12.1.2",
49
- "@times-components/eslint-config-thetimes": "^0.8.18",
50
- "@times-components/jest-configurator-web": "^0.8.2",
51
- "@times-components/storybook": "^4.12.39",
52
- "@times-components/webpack-configurator": "^2.1.1",
49
+ "@times-components/eslint-config-thetimes": "0.8.18",
50
+ "@times-components/jest-configurator-web": "0.8.2",
51
+ "@times-components/storybook": "4.12.41",
52
+ "@times-components/webpack-configurator": "2.1.1",
53
53
  "babel-jest": "24.8.0",
54
54
  "eslint": "5.9.0",
55
55
  "jest": "24.8.0",
@@ -71,5 +71,5 @@
71
71
  "publishConfig": {
72
72
  "access": "public"
73
73
  },
74
- "gitHead": "e8bf85bb27ab227814fc74c9bbfefb70e779fcf8"
74
+ "gitHead": "fc21f9f88cea05ceb5f60ecb723f0f39ab911dea"
75
75
  }
package/rnw.js CHANGED
@@ -1 +1 @@
1
- module.exports=function(e){var t={};function n(o){if(t[o])return t[o].exports;var i=t[o]={i:o,l:!1,exports:{}};return e[o].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(o,i,function(t){return e[t]}.bind(null,i));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=9)}([function(e,t){e.exports=require("@times-components/ts-styleguide/rnw")},function(e,t){e.exports=require("react")},function(e,t){e.exports=require("@times-components/user-state/rnw")},function(e,t){e.exports=require("styled-components")},function(e,t){e.exports=require("prop-types")},function(e,t){e.exports=require("@times-components/utils/rnw")},function(e,t){e.exports=require("@times-components/tracking/rnw")},function(e,t){e.exports=require("@times-components/link/rnw")},function(e,t){e.exports=require("@times-components/ts-components/rnw")},function(e,t,n){"use strict";n.r(t);var o=n(1),i=n.n(o),r=(n(4),n(2)),a=n.n(r),m=n(5),c=n(3),s=n.n(c),l=n(0);const u=s.a.div.withConfig({displayName:"responsive__CommentContainer",componentId:"sc-2j1dkf-0"})(["margin-left:auto;margin-right:auto;@media (min-width:","px){width:80.8%;}@media (min-width:","px){width:56.2%;}"],l.breakpoints.medium,l.breakpoints.wide),d=(s.a.p.withConfig({displayName:"responsive__CommentEnabledGuidelines",componentId:"sc-2j1dkf-1"})(["color:",";font-family:",";font-size:","px;margin:0 0 "," 0;padding-left:7px;padding-top:",";"],l.colours.functional.secondary,l.fontsWithFallback.supporting,l.fontSizes.commentsGuidelines,Object(l.spacing)(-2),Object(l.spacing)(6)),s.a.p.withConfig({displayName:"responsive__CommentDisabledGuidelines",componentId:"sc-2j1dkf-2"})(["color:",";font-family:",";font-size:","px;margin:0;padding-bottom:",";padding-top:",";text-align:center;"],l.colours.functional.secondary,l.fontsWithFallback.supporting,l.fontSizes.commentsGuidelines,Object(l.spacing)(6),Object(l.spacing)(1))),p=s.a.p.withConfig({displayName:"responsive__CommentDisabledHeadline",componentId:"sc-2j1dkf-3"})(["color:",";font-family:",";font-size:","px;margin:0;padding-bottom:",";padding-top:",";text-align:center;"],l.colours.functional.primary,l.fontsWithFallback.headline,l.fontSizes.commentsHeadline,Object(l.spacing)(1),Object(l.spacing)(6));function f(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=e&&("undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"]);if(null==n)return;var o,i,r=[],a=!0,m=!1;try{for(n=n.call(e);!(a=(o=n.next()).done)&&(r.push(o.value),!t||r.length!==t);a=!0);}catch(e){m=!0,i=e}finally{try{a||null==n.return||n.return()}finally{if(m)throw i}}return r}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return g(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return g(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function g(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}var C=e=>e?(e=>e.split("&").reduce((e,t)=>{const n=f(t.split("="),2),o=n[0],i=n[1];return e[o]=i,e},{}))(e).eid:void 0;const b=(e,t)=>((e,t)=>{const n=new XMLHttpRequest;n.addEventListener("load",()=>{const e=(200===n.status?JSON.parse(n.response):{}).spotimCodeB;e&&t(e)}),n.open("GET",e),n.send()})("/api/comments/loginv2?codeA=".concat(encodeURIComponent(e)),t);var y=()=>{if(window.SPOTIM&&window.SPOTIM.startSSO){const e=window&&window.nuk&&window.nuk.getCookieValue&&window.nuk.getCookieValue("acs_tnl"),t="".concat(C(e),"_v2");window.SPOTIM.startSSO({callback:b,userId:t})}},h=n(6);class v extends o.Component{constructor(){super(),this.container=null}componentDidMount(){this.initialiseComments()}componentWillUnmount(){this.disposeComments()}initialiseComments(){const e=this.props,t=e.articleId,n=e.isReadOnly,o=e.commentingConfig,i=e.onCommentStart,r=e.onCommentPost,a=e.onCommentNotification,m=e.onCommentFilterNewest,c=e.onCommentFilterMostRecommended,s=e.onCommentFilterOldest,l=e.onCommentReplyClick,u=e.onCommentShareLink,d=e.onCommentShareTwitter,p=e.onCommentShareEmail,f=e.onCommentShareFacebook,g=e.onCommentRecommend,C=e.onCommentNotificationClicked,b=e.onCommentUsernameClicked,h=e.onCommentSettingsClicked,v=e.domainSpecificUrl;if(!this.container||!t||!o)return;document.addEventListener("spot-im-current-user-typing-start",i),document.addEventListener("spot-im-current-user-sent-message",r),document.addEventListener("spot-im-notification-drop-down-link",a),document.addEventListener("spot-im-user-up-vote-click",g),document.addEventListener("spot-im-sort-by-select",e=>(e=>{switch(e.detail.sortedBy){case"best":return c(e);case"oldest":return s(e);case"newest":return m(e);default:return null}})(e)),document.addEventListener("spot-im-user-clicked-reply",l),document.addEventListener("spot-im-clicked-settings",h),document.addEventListener("spot-im-user-notifications-click",C),document.addEventListener("spot-im-open-user-profile",b),document.addEventListener("spot-im-share-type",e=>(e=>{switch(e.detail.type){case"link":return u(e);case"email":return p(e);case"twitter":return d(e);case"facebook":return f(e);default:return null}})(e)),n||(window.SPOTIM&&window.SPOTIM.startSSO?y():document.addEventListener("spot-im-api-ready",()=>{y()})),document.addEventListener("spot-im-renew-sso",()=>{y()});const w=document.createElement("script");w.setAttribute("async","async"),w.setAttribute("src","https://launcher.spot.im/spot/".concat(o.account)),w.setAttribute("data-spotim-module","spotim-launcher"),w.setAttribute("data-post-id",t),w.setAttribute("data-post-url","".concat(v,"/article/").concat(t)),w.setAttribute("data-seo-enabled",!0),w.setAttribute("data-livefyre-url",t),this.container.appendChild(w)}disposeComments(){this.container&&(this.container.innerHTML="")}render(){const e=this.props,t=e.onCommentStart,n=e.onCommentPost,o=e.onCommentNotification,r=e.onCommentFilterNewest,a=e.onCommentFilterMostRecommended,m=e.onCommentFilterOldest,c=e.onCommentReplyClick,s=e.onCommentShareLink,l=e.onCommentShareTwitter,d=e.onCommentShareEmail,p=e.onCommentShareFacebook,f=e.onCommentRecommend,g=e.onCommentNotificationClicked,C=e.onCommentUsernameClicked,b=e.onCommentSettingsClicked;return i.a.createElement(u,{id:"comments-container",onCommentStart:t,onCommentPost:n,onCommentNotification:o,onCommentReplyClick:c,onCommentFilterNewest:r,onCommentFilterMostRecommended:a,onCommentFilterOldest:m,onCommentShareLink:s,onCommentShareTwitter:l,onCommentShareEmail:d,onCommentShareFacebook:p,onCommentRecommend:f,onCommentNotificationClicked:g,onCommentUsernameClicked:C,onCommentSettingsClicked:b},i.a.createElement("div",{ref:e=>{this.container=e}}))}}v.defaultProps={onCommentStart:()=>{},onCommentPost:()=>{},onCommentNotification:()=>{},onCommentReplyClick:()=>{},onCommentFilterNewest:()=>{},onCommentFilterMostRecommended:()=>{},onCommentFilterOldest:()=>{},onCommentShareLink:()=>{},onCommentShareTwitter:()=>{},onCommentShareEmail:()=>{},onCommentShareFacebook:()=>{},onCommentRecommend:()=>{},onCommentNotificationClicked:()=>{},onCommentUsernameClicked:()=>{},onCommentSettingsClicked:()=>{}};var w,O=(w=v,Object(h.withTrackEvents)(w,{analyticsEvents:[{actionName:"navigation",eventName:"onCommentStart",trackingName:"spot im : comment : start"},{actionName:"navigation",eventName:"onCommentPost",trackingName:"spot im : comment : complete"},{actionName:"navigation",eventName:"onCommentNotification",trackingName:"spot im : notification"},{actionName:"navigation",eventName:"onCommentFilterNewest",trackingName:"spot im : sort : newest"},{actionName:"navigation",eventName:"onCommentFilterMostRecommended",trackingName:"spot im : sort : best"},{actionName:"navigation",eventName:"onCommentFilterOldest",trackingName:"spot im : sort : oldest"},{actionName:"navigation",eventName:"onCommentReplyClick",trackingName:"spot im : reply"},{actionName:"navigation",eventName:"onCommentSettingsClicked",trackingName:"spot im : settings button clicked"},{actionName:"navigation",eventName:"onCommentShareLink",trackingName:"spot im : comment : share : copy link"},{actionName:"navigation",eventName:"onCommentShareEmail",trackingName:"spot im : comment : share : email"},{actionName:"navigation",eventName:"onCommentShareTwitter",trackingName:"spot im : comment : share : twitter"},{actionName:"navigation",eventName:"onCommentShareFacebook",trackingName:"spot im : comment : share : facebook"},{actionName:"navigation",eventName:"onCommentRecommend",trackingName:"spot im : vote up"},{actionName:"navigation",eventName:"onCommentUsernameClicked",trackingName:"spot im : username clicked"},{actionName:"navigation",eventName:"onCommentNotificationClicked",trackingName:"spot im : notification clicked"}]})),k=n(7);function S(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function N(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?S(Object(n),!0).forEach((function(t){j(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):S(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function j(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var E={button:{marginBottom:Object(l.spacing)(0),marginTop:Object(l.spacing)(5),maxWidth:215},container:{alignItems:"center",borderStyle:"solid",borderTopColor:l.colours.functional.keyline,borderTopWidth:1,marginBottom:Object(l.spacing)(10),width:"100%"},headline:N(N({color:l.colours.functional.primary},Object(l.fontFactory)({font:"headline",fontSize:"commentsHeadline"})),{},{maxWidth:315,paddingBottom:Object(l.spacing)(2),paddingTop:Object(l.spacing)(6),textAlign:"center"}),link:{color:l.colours.functional.action},supporting:N(N({},Object(l.fontFactory)({font:"supporting",fontSize:"tertiary"})),{},{color:l.colours.functional.secondary,maxWidth:280,textAlign:"center"})};function P(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function x(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?P(Object(n),!0).forEach((function(t){F(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):P(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function F(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var _=x(x({},E),{},{link:x(x({},E.link),{},{fontFamily:l.fontsWithFallback.supporting,fontSize:l.fontSizes.commentsGuidelines})});var I=()=>i.a.createElement(u,null,i.a.createElement(p,null,"Comments for this article have been turned off"),i.a.createElement(d,null,"Comments are subject to our community guidelines, which can be viewed"," ",i.a.createElement(k.TextLink,{style:_.link,url:"/article/f4024fbe-d989-11e6-9063-500e6740fc32"},"here"),".")),T=n(8);var M=()=>{const e=window.__TIMES_CONFIG__&&window.__TIMES_CONFIG__.account&&window.__TIMES_CONFIG__.account.url;return i.a.createElement(T.InlineDialog,{title:"Join the conversation",buttonText:"Go to My account",href:e,onClick:()=>{}},"Commenting is only available to unlimited access subscribers. Upgrade your subscription to have your say.")};function A(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=e&&("undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"]);if(null==n)return;var o,i,r=[],a=!0,m=!1;try{for(n=n.call(e);!(a=(o=n.next()).done)&&(r.push(o.value),!t||r.length!==t);a=!0);}catch(e){m=!0,i=e}finally{try{a||null==n.return||n.return()}finally{if(m)throw i}}return r}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return R(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return R(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function R(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}const L=e=>{let t=e.articleId,n=e.isEnabled,r=e.isReadOnly,c=e.commentingConfig,s=e.isCommentEnabled,l=e.storefrontConfig,u=e.domainSpecificUrl;const d=A(Object(o.useState)(void 0),2),p=d[0],f=d[1],g=!!new URLSearchParams(window.location.search).get("entitlements");if(Object(o.useEffect)(()=>{g&&(()=>{const e=document.cookie.split("; ").find(e=>e.startsWith("access-decisions=")),t=e?e.split("=")[1]:null;if(t)try{const e=(e=>{try{return e?JSON.parse(atob(e)):void 0}catch(e){return}})(t),n=Object(m.hasEntitlement)(e)("functionalCommentingFull");f(n)}catch(e){f(!1)}else f(!1)})()},[g]),g&&void 0===p)return null;return g?(()=>{let e;return e=n&&s?p?i.a.createElement(O,{articleId:t,isReadOnly:r,commentingConfig:c,domainSpecificUrl:u}):i.a.createElement(M,{storefrontConfig:l}):i.a.createElement(I,null),i.a.createElement(a.a,{state:a.a.showArticleComments},e)})():n&&s?i.a.createElement(i.a.Fragment,null,i.a.createElement(a.a,{state:a.a.showJoinTheConversationDialog},i.a.createElement(M,{storefrontConfig:l})),i.a.createElement(a.a,{state:a.a.showCommentingModule},i.a.createElement(O,{articleId:t,isReadOnly:r,commentingConfig:c,domainSpecificUrl:u}))):i.a.createElement(I,null)};L.defaultProps={isReadOnly:!1,isCommentEnabled:!0};t.default=L}]);
1
+ module.exports=function(e){var t={};function n(o){if(t[o])return t[o].exports;var i=t[o]={i:o,l:!1,exports:{}};return e[o].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(o,i,function(t){return e[t]}.bind(null,i));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=8)}([function(e,t){e.exports=require("@times-components/ts-styleguide/rnw")},function(e,t){e.exports=require("react")},function(e,t){e.exports=require("styled-components")},function(e,t){e.exports=require("prop-types")},function(e,t){e.exports=require("@times-components/utils/rnw")},function(e,t){e.exports=require("@times-components/tracking/rnw")},function(e,t){e.exports=require("@times-components/link/rnw")},function(e,t){e.exports=require("@times-components/ts-components/rnw")},function(e,t,n){"use strict";n.r(t);var o=n(1),i=n.n(o),r=(n(3),n(4)),a=n(2),m=n.n(a),c=n(0);const s=m.a.div.withConfig({displayName:"responsive__CommentContainer",componentId:"sc-2j1dkf-0"})(["margin-left:auto;margin-right:auto;@media (min-width:","px){width:80.8%;}@media (min-width:","px){width:56.2%;}"],c.breakpoints.medium,c.breakpoints.wide),l=(m.a.p.withConfig({displayName:"responsive__CommentEnabledGuidelines",componentId:"sc-2j1dkf-1"})(["color:",";font-family:",";font-size:","px;margin:0 0 "," 0;padding-left:7px;padding-top:",";"],c.colours.functional.secondary,c.fontsWithFallback.supporting,c.fontSizes.commentsGuidelines,Object(c.spacing)(-2),Object(c.spacing)(6)),m.a.p.withConfig({displayName:"responsive__CommentDisabledGuidelines",componentId:"sc-2j1dkf-2"})(["color:",";font-family:",";font-size:","px;margin:0;padding-bottom:",";padding-top:",";text-align:center;"],c.colours.functional.secondary,c.fontsWithFallback.supporting,c.fontSizes.commentsGuidelines,Object(c.spacing)(6),Object(c.spacing)(1))),u=m.a.p.withConfig({displayName:"responsive__CommentDisabledHeadline",componentId:"sc-2j1dkf-3"})(["color:",";font-family:",";font-size:","px;margin:0;padding-bottom:",";padding-top:",";text-align:center;"],c.colours.functional.primary,c.fontsWithFallback.headline,c.fontSizes.commentsHeadline,Object(c.spacing)(1),Object(c.spacing)(6));function d(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=e&&("undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"]);if(null==n)return;var o,i,r=[],a=!0,m=!1;try{for(n=n.call(e);!(a=(o=n.next()).done)&&(r.push(o.value),!t||r.length!==t);a=!0);}catch(e){m=!0,i=e}finally{try{a||null==n.return||n.return()}finally{if(m)throw i}}return r}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return p(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return p(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function p(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}var f=e=>e?(e=>e.split("&").reduce((e,t)=>{const n=d(t.split("="),2),o=n[0],i=n[1];return e[o]=i,e},{}))(e).eid:void 0;const g=(e,t)=>((e,t)=>{const n=new XMLHttpRequest;n.addEventListener("load",()=>{const e=(200===n.status?JSON.parse(n.response):{}).spotimCodeB;e&&t(e)}),n.open("GET",e),n.send()})("/api/comments/loginv2?codeA=".concat(encodeURIComponent(e)),t);var b=()=>{if(window.SPOTIM&&window.SPOTIM.startSSO){const e=window&&window.nuk&&window.nuk.getCookieValue&&window.nuk.getCookieValue("acs_tnl"),t="".concat(f(e),"_v2");window.SPOTIM.startSSO({callback:g,userId:t})}},C=n(5);class y extends o.Component{constructor(){super(),this.container=null}componentDidMount(){this.initialiseComments()}componentWillUnmount(){this.disposeComments()}initialiseComments(){const e=this.props,t=e.articleId,n=e.isReadOnly,o=e.commentingConfig,i=e.onCommentStart,r=e.onCommentPost,a=e.onCommentNotification,m=e.onCommentFilterNewest,c=e.onCommentFilterMostRecommended,s=e.onCommentFilterOldest,l=e.onCommentReplyClick,u=e.onCommentShareLink,d=e.onCommentShareTwitter,p=e.onCommentShareEmail,f=e.onCommentShareFacebook,g=e.onCommentRecommend,C=e.onCommentNotificationClicked,y=e.onCommentUsernameClicked,v=e.onCommentSettingsClicked,h=e.domainSpecificUrl;if(!this.container||!t||!o)return;document.addEventListener("spot-im-current-user-typing-start",i),document.addEventListener("spot-im-current-user-sent-message",r),document.addEventListener("spot-im-notification-drop-down-link",a),document.addEventListener("spot-im-user-up-vote-click",g),document.addEventListener("spot-im-sort-by-select",e=>(e=>{switch(e.detail.sortedBy){case"best":return c(e);case"oldest":return s(e);case"newest":return m(e);default:return null}})(e)),document.addEventListener("spot-im-user-clicked-reply",l),document.addEventListener("spot-im-clicked-settings",v),document.addEventListener("spot-im-user-notifications-click",C),document.addEventListener("spot-im-open-user-profile",y),document.addEventListener("spot-im-share-type",e=>(e=>{switch(e.detail.type){case"link":return u(e);case"email":return p(e);case"twitter":return d(e);case"facebook":return f(e);default:return null}})(e)),n||(window.SPOTIM&&window.SPOTIM.startSSO?b():document.addEventListener("spot-im-api-ready",()=>{b()})),document.addEventListener("spot-im-renew-sso",()=>{b()});const k=document.createElement("script");k.setAttribute("async","async"),k.setAttribute("src","https://launcher.spot.im/spot/".concat(o.account)),k.setAttribute("data-spotim-module","spotim-launcher"),k.setAttribute("data-post-id",t),k.setAttribute("data-post-url","".concat(h,"/article/").concat(t)),k.setAttribute("data-seo-enabled",!0),k.setAttribute("data-livefyre-url",t),this.container.appendChild(k)}disposeComments(){this.container&&(this.container.innerHTML="")}render(){const e=this.props,t=e.onCommentStart,n=e.onCommentPost,o=e.onCommentNotification,r=e.onCommentFilterNewest,a=e.onCommentFilterMostRecommended,m=e.onCommentFilterOldest,c=e.onCommentReplyClick,l=e.onCommentShareLink,u=e.onCommentShareTwitter,d=e.onCommentShareEmail,p=e.onCommentShareFacebook,f=e.onCommentRecommend,g=e.onCommentNotificationClicked,b=e.onCommentUsernameClicked,C=e.onCommentSettingsClicked;return i.a.createElement(s,{id:"comments-container",onCommentStart:t,onCommentPost:n,onCommentNotification:o,onCommentReplyClick:c,onCommentFilterNewest:r,onCommentFilterMostRecommended:a,onCommentFilterOldest:m,onCommentShareLink:l,onCommentShareTwitter:u,onCommentShareEmail:d,onCommentShareFacebook:p,onCommentRecommend:f,onCommentNotificationClicked:g,onCommentUsernameClicked:b,onCommentSettingsClicked:C},i.a.createElement("div",{ref:e=>{this.container=e}}))}}y.defaultProps={onCommentStart:()=>{},onCommentPost:()=>{},onCommentNotification:()=>{},onCommentReplyClick:()=>{},onCommentFilterNewest:()=>{},onCommentFilterMostRecommended:()=>{},onCommentFilterOldest:()=>{},onCommentShareLink:()=>{},onCommentShareTwitter:()=>{},onCommentShareEmail:()=>{},onCommentShareFacebook:()=>{},onCommentRecommend:()=>{},onCommentNotificationClicked:()=>{},onCommentUsernameClicked:()=>{},onCommentSettingsClicked:()=>{}};var v,h=(v=y,Object(C.withTrackEvents)(v,{analyticsEvents:[{actionName:"navigation",eventName:"onCommentStart",trackingName:"spot im : comment : start"},{actionName:"navigation",eventName:"onCommentPost",trackingName:"spot im : comment : complete"},{actionName:"navigation",eventName:"onCommentNotification",trackingName:"spot im : notification"},{actionName:"navigation",eventName:"onCommentFilterNewest",trackingName:"spot im : sort : newest"},{actionName:"navigation",eventName:"onCommentFilterMostRecommended",trackingName:"spot im : sort : best"},{actionName:"navigation",eventName:"onCommentFilterOldest",trackingName:"spot im : sort : oldest"},{actionName:"navigation",eventName:"onCommentReplyClick",trackingName:"spot im : reply"},{actionName:"navigation",eventName:"onCommentSettingsClicked",trackingName:"spot im : settings button clicked"},{actionName:"navigation",eventName:"onCommentShareLink",trackingName:"spot im : comment : share : copy link"},{actionName:"navigation",eventName:"onCommentShareEmail",trackingName:"spot im : comment : share : email"},{actionName:"navigation",eventName:"onCommentShareTwitter",trackingName:"spot im : comment : share : twitter"},{actionName:"navigation",eventName:"onCommentShareFacebook",trackingName:"spot im : comment : share : facebook"},{actionName:"navigation",eventName:"onCommentRecommend",trackingName:"spot im : vote up"},{actionName:"navigation",eventName:"onCommentUsernameClicked",trackingName:"spot im : username clicked"},{actionName:"navigation",eventName:"onCommentNotificationClicked",trackingName:"spot im : notification clicked"}]})),k=n(6);function w(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function O(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?w(Object(n),!0).forEach((function(t){S(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):w(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function S(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var N={button:{marginBottom:Object(c.spacing)(0),marginTop:Object(c.spacing)(5),maxWidth:215},container:{alignItems:"center",borderStyle:"solid",borderTopColor:c.colours.functional.keyline,borderTopWidth:1,marginBottom:Object(c.spacing)(10),width:"100%"},headline:O(O({color:c.colours.functional.primary},Object(c.fontFactory)({font:"headline",fontSize:"commentsHeadline"})),{},{maxWidth:315,paddingBottom:Object(c.spacing)(2),paddingTop:Object(c.spacing)(6),textAlign:"center"}),link:{color:c.colours.functional.action},supporting:O(O({},Object(c.fontFactory)({font:"supporting",fontSize:"tertiary"})),{},{color:c.colours.functional.secondary,maxWidth:280,textAlign:"center"})};function j(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function E(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?j(Object(n),!0).forEach((function(t){P(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):j(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function P(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var x=E(E({},N),{},{link:E(E({},N.link),{},{fontFamily:c.fontsWithFallback.supporting,fontSize:c.fontSizes.commentsGuidelines})});var F=()=>i.a.createElement(s,null,i.a.createElement(u,null,"Comments for this article have been turned off"),i.a.createElement(l,null,"Comments are subject to our community guidelines, which can be viewed"," ",i.a.createElement(k.TextLink,{style:x.link,url:"/article/f4024fbe-d989-11e6-9063-500e6740fc32"},"here"),".")),L=n(7);var T=e=>{let t=e.storefrontConfig;const n=window.nuk&&window.nuk.user&&window.nuk.user.isLightPackUser,o=n?null:t,r=n?()=>document&&document.dispatchEvent(new Event("show::upgrade::modal")):null;return i.a.createElement(L.InlineDialog,{title:"Join the conversation",buttonText:"View offers",href:o,onClick:r},"Commenting is only available to unlimited access subscribers. Upgrade your subscription to have your say.")};function A(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=e&&("undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"]);if(null==n)return;var o,i,r=[],a=!0,m=!1;try{for(n=n.call(e);!(a=(o=n.next()).done)&&(r.push(o.value),!t||r.length!==t);a=!0);}catch(e){m=!0,i=e}finally{try{a||null==n.return||n.return()}finally{if(m)throw i}}return r}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return I(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return I(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function I(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}const R=e=>{let t=e.articleId,n=e.isEnabled,a=e.isReadOnly,m=e.commentingConfig,c=e.storefrontConfig,s=e.domainSpecificUrl;const l=A(Object(o.useState)(void 0),2),u=l[0],d=l[1];return Object(o.useEffect)(()=>{if(new URLSearchParams(window.location.search).get("entitlements")){const e=Object(r.getBase64CookieValue)("access-decisions");e&&d(Object(r.hasEntitlement)(e,"functionalCommentingFull"))}},[]),void 0===u?null:void 0===!n?i.a.createElement(F,null):u?i.a.createElement(h,{articleId:t,isReadOnly:a,commentingConfig:m,domainSpecificUrl:s}):i.a.createElement(T,{storefrontConfig:c})};R.defaultProps={isReadOnly:!1};t.default=R}]);